Trapper 监控项 接收传入的数据而不是主动查询数据。
这对于任何你想要发送到 Zabbix 的数据都非常有用。
配置一个 trapper 监控项:
所有必填字段都用红色星号标记。
需要为 trapper 监控项 提供特定信息的字段如下:
类型 | 选择 "Zabbix trapper"。 |
键值 | 输入一个键值,用于在发送数据到 Zabbix server 时识别该 监控项。 |
信息类型 | 选择将要发送数据的类型,以匹配其格式。 |
允许的 主机 | 逗号分隔的 IP 地址列表(可选 CIDR 格式)或 DNS 名称。 如果指定,仅接受来自此处列出的 主机 的入站连接。 如果启用了 IPv6 支持,则 '127. 0.0.1'、'::127. 0.0.1' 和 '::ffff:127. 0.0.1' 将被视为等价,'::/0' 将允许任何 IPv4 或 IPv6 地址。'0.0.0.0/0' 可用于允许任何 IPv4 地址。 注意:"IPv4 兼容的 IPv6 地址"(0000::/96 前缀)是受支持的,但根据 RFC4291 已被弃用。 示例:127. 0.0.1, 192. 168. 1. 0/24, 192. 168. 3. 1-255, 192. 168. 1-10. 1-255, ::1,2001:db8::/32, mysqlserver1, zabbix.example.com, {HOST.HOST} 支持空格、user macros 和 主机宏 {HOST.HOST}, {HOST.NAME}, {HOST.IP}, {HOST.DNS}, {HOST.CONN}。 |
在发送值之前,保存 监控项 后可能需要等待最多 60 秒,直到 Zabbix server 从 configuration cache 更新中获取更改。
使用 Zabbix sender 实用程序或 Zabbix sender protocol,可以将数据发送到 Zabbix server 或 proxy。 使用 history.push
的 API 方法,也可以将数据发送到 Zabbix server。
Zabbix sender
要使用Zabbix sender工具向Zabbix server或proxy发送数据,您可以run以下命令来发送"test value":
发送"test value"时使用以下命令选项:
-z
用于指定Zabbix server IP地址-p
用于指定Zabbix server端口号(默认为10051)-s
用于指定主机(确保使用技术名称而非可见的host name)-k
用于指定在trapper 监控项中配置的监控项键值-o
用于指定要发送的值Zabbix trapper进程不会展开监控项键值中使用的宏来检查目标主机对应的监控项键值是否存在.
有关Zabbix sender与Zabbix server或proxy之间通信的更多信息,请参阅Zabbix sender protocol.
history.push
要将数据发送到Zabbix server,您可以使用history.push
API方法发起以下包含测试值的HTTP POST请求:
curl --request POST \
--url 'https://example.com/zabbix/api_jsonrpc.php' \
--header 'Authorization: Bearer 0424bd59b807674191e7d77572075f33' \
--header 'Content-Type: application/json-rpc' \
--data '{"jsonrpc":"2.0","method":"history.push","params":[{"itemid":10600,"value":"test value 1"},{"itemid":10601,"value":"test value 2"},{"itemid":99999,"value":"test value 3"}],"id":1}'
如果请求正确,API返回的响应可能如下所示:
{
"jsonrpc": "2.0",
"result": {
"response": "success",
"data": [
{
"itemid": "10600"
},
{
"itemid": "10601",
"error": "Item is disabled."
},
{
"error": "No permissions to referred object or it does not exist."
}
]
},
"id": 1
}
响应数据中的错误表明特定监控项的数据发送未能通过Zabbix server的验证。这可能由以下原因导致:
没有错误表明发送的值已被接受进行处理,包括预处理(如果有)、触发器处理以及保存到数据库。请注意,已接受的值在处理过程中也可能失败(例如在preprocessing期间),导致该值被丢弃。
有关如何使用Zabbix API的更多信息,请参阅API。
一旦数据被发送,您可以导航至 监控 → Latest data 查看结果:
如果发送的是单个数值,数据 graph 将在该值的时间点左右显示一条水平线。