6 发送器

概述

Zabbix sender 是一个命令行工具,可用于将性能数据发送到 Zabbix 服务器进行处理。

该工具通常用于长时间运行的用户脚本中,以定期发送可用性和性能数据。

若要直接将结果发送到 Zabbix 服务器或 proxy,必须配置 Zabbix trapper 监控项类型。

另请参阅 Zabbix 的 Python 库,其中内置了可模拟 Zabbix sender 的功能。

运行 Zabbix sender

运行 Zabbix UNIX sender 的示例:

cd bin
./zabbix_sender -z zabbix -s "Linux DB3" -k db.connections -o 43

其中:

  • z - Zabbix 服务器主机(也可以使用 IP 地址);
  • s - 被监控主机的技术名称(在 Zabbix 前端中注册的名称);
  • k - 监控项键值;
  • o - 要发送的值。

包含空白字符的选项必须使用双引号括起来。

Zabbix sender 可用于从输入文件发送多个值。 有关更多信息,请参见 Zabbix sender 手册页

如果指定了配置文件,Zabbix sender 会使用 agent ServerActive 配置参数中定义的所有地址来发送数据。 如果向某个地址发送失败,sender 会尝试向其他地址发送。 如果向某个地址发送批量数据失败,后续批次将不会发送到该地址。

Zabbix sender 接受 UTF-8 编码的字符串(适用于类 Unix 系统和 Windows),且文件开头不带字节顺序标记(BOM)。

Windows 上的 Zabbix sender 也可以类似地运行:

zabbix_sender.exe [options]

zabbix_sender 的实时发送场景会收集在短时间内传递给它的多个值,并通过单个连接发送到服务器。 与前一个值相隔不超过 0.2 秒的值可以放入同一堆栈中,但最大轮询时间仍为 1 秒。

如果指定的配置文件中存在无效的参数条目(不符合 parameter=value 语法),Zabbix sender 将终止。

使用 low-level discovery 运行 Zabbix sender

以下是使用 Zabbix sender 发送 JSON 格式值以进行 low-level discovery 的示例:

./zabbix_sender -z 192.168.1.113 -s "Zabbix server" -k trapper.discovery.item -o '[{"{#FSNAME}":"/","{#FSTYPE}":"rootfs"},{"{#FSNAME}":"/sys","{#FSTYPE}":"sysfs"}]'

要使其正常工作,low-level discovery 规则必须使用 Zabbix trapper 监控项类型(在此示例中,使用 trapper.discovery.item 键)。