写点什么

Zabbix 数据对接观测云最佳实践

作者:观测云
  • 2024-10-24
    上海
  • 本文字数:2045 字

    阅读完需:约 7 分钟

Zabbix 数据对接观测云最佳实践

简介

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 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: noExportDir=/data/zbx/datakit
### Option: ExportFileSize# Maximum size per export file in bytes.# Only used for rotation if ExportDir is set.## Mandatory: no# Range: 1M-1GExportFileSize=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/datakitchown zabbix:zabbix -R /data/zbx/datakitchmod 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    - ''    - ''
复制代码



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


配置好后,重启 DataKit。


datakit service -R
复制代码

效果展示

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




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



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



用户头像

观测云

关注

还未添加个人签名 2021-02-08 加入

云时代的系统可观测平台

评论

发布
暂无评论
Zabbix 数据对接观测云最佳实践_zabbix_观测云_InfoQ写作社区