0
点赞
收藏
分享

微信扫一扫

Zabbix7.0新功能,还可以这样推送数据!不止zabbix_sender

感谢本文作者董玉凡,ZCS Zabbix 中级认证工程师。

为了满足 agent 探针、协议等无法覆盖的监控需求,我们通常会使用 zabbix_sender 去发送数据到我们的 zabbix 服务器,除了 zabbix_sender 工具之外,在 zabbix7.0 中还推出了新的方法,它就是 history.push。

history.push 是从 Zabbix7.0.0 alpha4 版本中推出的一个 API 接口,后续将在 zabbix7.0LTS 版本中正式推出,它可以将监控项的历史数据推送到 zabbix 服务器。history.push 接口参数如下:

Parameter

Type

Description

itemid

ID

ID of the related item.  Parameter behavior: - required if host and key are not set

host

string

Technical name of the host.  Parameter behavior: - required if itemid is not set

key

string

Item key.  Parameter behavior: - required if itemid is not set

value

mixed

Item value.  Parameter behavior: - required

clock

timestamp

Time when the value was received.

ns

integer

Nanoseconds when the value was received.


今天我们使用 Zabbix 7.0.0alpha7 版本进行测试,安装包下载地址:https://cdn.zabbix.com/zabbix/sources/development/7.0/zabbix-7.0.0alpha7.tar.gz,安装过程就不再一一赘述,安装成功如下:

Zabbix7.0新功能,还可以这样推送数据!不止zabbix_sender_support


创建一个用于测试的监控主机

Zabbix7.0新功能,还可以这样推送数据!不止zabbix_sender_monitoring_02


创建一个 Zabbix trapper 类型的监控项

history.push 仅支持两种监控项类型的指标,分别是 Zabbix trapper 和 HTTP agent,我们先用 Zabbix trapper 类型指标进行测试。

Allowed hosts 配置项可以配置允许接收数据的主机,如果没有配置则它将允许接收所有主机发送的数据。

Zabbix7.0新功能,还可以这样推送数据!不止zabbix_sender_support_03


获取监控项的 itemid

打开 Monitoring > 搜索 test_item 监控项 > 点击 Graph

7.0 的版本中,在主机中点击监控项变成了一个窗口,没有办法在 item 的 url 获取它的 itemid,但是可以通过最新数据获取

Zabbix7.0新功能,还可以这样推送数据!不止zabbix_sender_开源社区_04

Zabbix7.0新功能,还可以这样推送数据!不止zabbix_sender_开源社区_05


通过调用 history.push 接口发送数据到 test_item 监控项

# vi send_zabbixapi.sh
#!/bin/bash
TOKEN=`curl --request POST \
            --url 'http://xx.xx.xx.xx:xx/api_jsonrpc.php' \    ##替换成zabbix的IP地址
            --header 'Content-Type: application/json-rpc' \
            --data '{"jsonrpc":"2.0","method":"user.login","params":{"username": "Admin","password": "zabbix"},"id":1}'|awk -F '\"' '{print $8}'  ##输入对应的账号密码,账号所在的User roles一定要开启了Access to API

`
curl --request POST \
        --url 'http://xx.xx.xx.xx:xx/api_jsonrpc.php' \   ##替换成zabbix的IP地址
        --header "Authorization: Bearer ${TOKEN}" \
        --header 'Content-Type: application/json-rpc' \
        --data '{"jsonrpc":"2.0","method":"history.push","params": {"itemid": 46319,"value": "1"},"id":1}'  ##替换itemid为自己需要测试的itemid

查看调用结果

Zabbix7.0新功能,还可以这样推送数据!不止zabbix_sender_monitoring_06

Zabbix7.0新功能,还可以这样推送数据!不止zabbix_sender_开源社区_07

添加 clock 字段发送一个数据

Zabbix7.0新功能,还可以这样推送数据!不止zabbix_sender_support_08

Zabbix7.0新功能,还可以这样推送数据!不止zabbix_sender_support_09

Zabbix7.0新功能,还可以这样推送数据!不止zabbix_sender_开源社区_10

一次发送两个数据

Zabbix7.0新功能,还可以这样推送数据!不止zabbix_sender_zabbix_11

Zabbix7.0新功能,还可以这样推送数据!不止zabbix_sender_support_12


创建一个 HTTP agent 类型的监控项

HTTP agent 类型监控项 URL 为必填项,这个随便填一个。

勾选 Enable trapping。

创建之后以同样方式获取监控项的 itemid

Zabbix7.0新功能,还可以这样推送数据!不止zabbix_sender_zabbix_13

Zabbix7.0新功能,还可以这样推送数据!不止zabbix_sender_monitoring_14

测试数据发送

Zabbix7.0新功能,还可以这样推送数据!不止zabbix_sender_zabbix_15

Zabbix7.0新功能,还可以这样推送数据!不止zabbix_sender_zabbix_16

举报

相关推荐

0 条评论