头图

简介

Zabbix 是一款开源的监控工具,它能够监控网络和应用程序的健康状态。Zabbix 支持多种协议,包括 SNMP、IPMI、JMX、Telnet 等,能够监控服务器、交换机、路由器、虚拟机等多种设备和服务。

实时导出功能

Zabbix 提供了实时导出功能,允许用户将触发器事件、监控项采集值和趋势数据实时导出。这些数据以换行符分隔的 JSON 格式导出,确保了数据的及时性和机器可读性。

配置和使用

要启用实时导出,需要修改 Zabbix 的配置文件,通常位于 /etc/zabbix/zabbix_server.conf 。配置项包括:

  • ExportDir :设置实时导出数据的目录。
  • ExportFileSize :设置每个导出文件的最大字节数。
  • ExportType :通过逗号分隔的列表,控制导出实体的类型,如事件(events)、历史(history)、趋势(trends)。

与 Zabbix API 对比

Zabbix Real-time exportZabbix API
实时性数据实时写入文件,几乎无延迟需要定期调用API获取数据,存在一定延迟
资源消耗由Zabbix服务器直接写入文件,对服务器资源消耗较低API调用可能增加服务器负载,尤其是在高频率调用时
数据完整性所有数据实时导出,完整性高可能需要编写额外逻辑来确保数据的完整性,如处理分页、数据遗漏等
操作复杂度配置简单,一旦设置,无需额外操作需要编写脚本或程序来定期调用API,处理数据,操作复杂度较高
数据格式数据以换行符分隔的JSON格式导出,易于机器读取和处理数据格式可能需要额外处理才能用于分析
数据安全性数据直接写入本地文件,无需开放网络接口API调用需要开放网络接口,可能需要额外的安全措施,如认证、限流等
数据导出量可以配置导出文件的大小,适合大量数据导出大量数据导出可能会受到API速率限制或对服务器造成较大压力
适用场景适合需要实时、大量、持续导出数据的场景适合需要手动或周期性导出数据的场景
维护成本维护成本低,配置后无需太多关注需要定期检查和维护API调用脚本,处理可能的错误
扩展性可以轻松地将导出的数据集成到ELK、Kafka等日志和数据处理系统中需要额外开发来集成到其他系统
灵活性灵活性较低,所有数据都会被导出可以通过API调用来定制需要导出的数据,灵活性高

操作步骤

结合 Zabbix Real-time export 功能将实时数据发送到观测云中心。

Zabbix 从 5.0 到 7.0 版本都支持将实时数据写到文件中。实时数据中有三种数据格式:events/history/trends ,其中 history 和 trends 都是以指标形式展示。而 events 则可以通过 Webhook 方式发送到观测云。

前置准备

  • Zabbix ≥ 5.0
  • 安装最新版本 DataKit

Zabbix 配置

修改 Zabbix 配置文件,一般位于 /etc/zabbix/zabbix_server.conf

注意:不同 Zabbix 版本导出数据的配置方式有些差异,可根据对应的版本选择正确的配置方式:

### Option: ExportDir
#       Directory for real time export of events, history and trends in newline delimited JSON format.
#       If set, enables real time export.
#
# Mandatory: no
ExportDir=/data/zbx/datakit

### Option: ExportFileSize
#       Maximum size per export file in bytes.
#       Only used for rotation if ExportDir is set.
#
# Mandatory: no
# Range: 1M-1G
ExportFileSize=32M

### Option: ExportType
#       List of comma delimited types of real time export - allows to control export entities by their
#       type (events, history, trends) individually.
#       Valid only if ExportDir is set.
#
# Mandatory: no
# Default:
# ExportType=events,history,trends

修改其中的配置项:

ExportDir=/data/zbx/datakitExportFileSize=32M

修改文件的权限:

mkdir -p /data/zbx/datakit
chown zabbix:zabbix -R /data/zbx/datakit
chmod u+rw -R /data/zbx/datakit/

注意:配置文件大小时根据主机配置衡量,太大的文件容易造成磁盘空间不足。并且应当定期删除 .old 文件。这里设置成为 32M 就是考虑到文件系统的负载太大。

配置好之后,重启服务:

systemctl restart zabbix-server

采集器配置

进入 DataKit 安装目录下的 conf.d/zabbix_exporter 目录,复制 zabbix_exporter.conf.sample 并命名为 zabbix_exporter.conf 。示例如下:

[[inputs.zabbix_exporter]]
  ## zabbix server web.
  localhostAddr = "http://localhost/zabbix/api_jsonrpc.php"
  user_name = "Admin"
  user_pw = "zabbix"
  
  ## measurement yaml Dir
  measurement_config_dir = "/data/zbx/yaml"

  ## exporting object.default is item. all is <trigger,item,trends>. 
  objects = "item"

  ## update items and interface data.
  ## like this: All data is updated at 2 o'clock every day.
  crontab = "0 2 * * *"

  # [inputs.zabbix_exporter.tags]
    # key1 = "value1"
    # key2 = "value2"
    # ...

  ## mysql database:zabbix , tables: items,interface.
  [inputs.zabbix_exporter.mysql]
    db_host = "127.0.0.1"
    db_port = "3306"
    user = "zabbix"
    pw = "xxxxx" # zabbix 用户密码

  # Zabbix server version 5.x.
  [inputs.zabbix_exporter.export_v5]
    # zabbix realTime exportDir path
    export_dir = "/data/zbx/datakit/"

配置 item_type 的规范文件

由于 Zabbix 原始指标名主要以解释性说明为主,观测云根据 Zabbix 不同 Item_type 中的 Item_key 作为指标,Item_key 中的 param 作为标签,更多 Item_type 详情可查看Zabbix 官方文档

如 zabbix agent 下 Processesitem 组的 proc.mem 为例:

proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>]

- measurement: Processes
  metric: proc_mem
  key: proc.mem
  params:
    - name
    - user
    - mode
    - cmdline
    - memtype
  values:
    - ''
    - ''
    - sum
    - ''
    - ''
序号字段格式说明
1measurementstring观测云显示的指标集名称
2metricstring观测云显示的指标名
3keystringzabbix原生的itemkey
4params[]string观测云指标tagkey
5values[]string观测云指标tagvalues默认值

将上述 yaml 文件放置在 zabbix_exporter.confmeasurement_config_dir 配置的文件目录中,这里应是 /data/zbx/yaml

配置好后,重启 DataKit。

datakit service -R

效果展示

接入 Zabbix 指标后,可以在「观测云」-「指标」-「指标管理」,管理 Zabbix 相关指标。

图片

图片

在「观测云」-「场景」-「仪表板」,可以创建 Zabbix 指标相关的仪表板。

图片

在「观测云」-「监控」-「监控器」,可以创建 Zabbix 相关的监控告警。

图片


观测云
21 声望85 粉丝

云时代的系统可观测平台