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 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 版本导出数据的配置方式有些差异,可根据对应的版本选择正确的配置方式:

ini 复制代码
### 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

修改其中的配置项:

ini 复制代码
ExportDir=/data/zbx/datakitExportFileSize=32M

修改文件的权限:

bash 复制代码
mkdir -p /data/zbx/datakit
chown zabbix:zabbix -R /data/zbx/datakit
chmod u+rw -R /data/zbx/datakit/

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

配置好之后,重启服务:

vbscript 复制代码
systemctl restart zabbix-server

采集器配置

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

ini 复制代码
[[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>]

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

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

配置好后,重启 DataKit。

datakit service -R

效果展示

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

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

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

相关推荐
连胜优佳6 天前
1.zabbix概述
前端·zabbix
小王格子6 天前
Zabbix6.0升级为7.2
zabbix·zabbix升级·zabbix 7
小王格子6 天前
Zabbix6.0升级为6.4
zabbix·zabbix 6.0·zabbix升级
海绵宝宝990017 天前
如何实现远程对主机进行关机、重启操作
运维·服务器·zabbix
zhlh_xt18 天前
Zabbix监控Oracle 19c数据库完整配置指南
数据库·oracle·zabbix·sop·监控oracle数据库
小城印象24 天前
使用zabbix监控k8s
容器·kubernetes·zabbix
胆小如鼠1 个月前
zabbix搭建教程
zabbix
zhlh_xt1 个月前
CentOS上如何离线批量自动化部署zabbix 7.0版本客户端
centos·自动化·zabbix·zabbix-agent2·自动化安装脚本
OpsEye1 个月前
Grafana插件安装并接入zabbix数据源
数据库·zabbix·grafana
乐维_lwops1 个月前
Zabbix 模板翻译自动化教程
zabbix·zabbix模板