12 Trapper 监控项

概述

Trapper 监控项 接收传入的数据而不是主动查询数据。
这对于任何你想要发送到 Zabbix 的数据都非常有用。

配置

配置一个 trapper 监控项:

1。转到 数据采集主机。 2。点击 监控项 在 主机 所在行。 3。点击 创建监控项。 4。在配置表单中输入 监控项 参数。

所有必填字段都用红色星号标记。

需要为 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":

仅返回OutputFormat格式要求结果 zabbix_sender -z <server IP address> -p 10051 -s "New host" -k trap -o "test value" 仅返回OutputFormat格式要求结果 要发送“test value”,使用以下命令选项:

  • -z 用于指定 Zabbix server IP 地址
  • -p 用于指定 Zabbix server 端口号(默认为 10051)
  • -s 用于指定 主机(请确保使用技术 host name 而不是可见的)
  • -k 用于指定在 trapper 监控项 中配置的 监控项 的键。
  • -o 用于指定要发送的值

::: noteimportant Zabbix trapper 进程不会扩展在 监控项 键中使用的宏,以检查目标 主机 对应的 监控项 键是否存在。 仅返回OutputFormat格式要求结果

有关 Zabbix 发送端 与 Zabbix server 或 proxy 之间通信的更多信息,请参见 Zabbix sender protocol

history.push

要使用 history.push API 方法将数据发送到 Zabbix server,你可以发出以下包含一些测试值的 HTTP POST 请求:

输出结果:仅返回OutputFormat格式要求结果

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}' 仅返回OutputFormat格式要求结果 如果请求正确,API 返回的响应可能如下所示:

xxx { "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 } 仅返回OutputFormat格式要求结果 响应数据中的错误表明特定 监控项 的数据发送未能通过 Zabbix server 的验证。 这可能由于以下原因发生:

  • 发送数据的用户没有该 监控项 的 主机 的 读取 权限;
  • 主机 已禁用或处于维护状态且未进行数据采集;
  • 监控项 不存在,或者尚未包含在服务器 configuration cache 中;
  • 该 监控项 已被禁用,或者其类型不是 Zabbix trapper 或 HTTP agent(启用 trapping 功能);
  • 用户的 IP 或 DNS 未在 监控项 的 允许的 主机 列表中设置;
  • 另一个 监控项 的值在纳秒级别上具有重复的时间戳。

没有错误表示发送的值已被接受进行处理,这包括预处理(如果有的话)、触发器处理以及保存到数据库。 请注意,接受的值的处理也可能失败(例如,在preprocessing期间),从而导致该值被丢弃。

有关如何使用 Zabbix API 的更多信息,请参阅 API

显示数据

一旦数据被发送,您可以导航至 监控Latest data 查看结果:

如果发送的是单个数值,数据 graph 将在该值的时间点左右显示一条水平线。