用户参数和 ZBX_NOTSUPPORTED

Ara*_*ams 3 zabbix

我想从我所有运行 zabbix 代理的服务器上 ping 一个外部 ip。

我搜索并找到了一些关于 zabbix 用户参数的文章。在/etc/zabbix/zabbix_agentd.conf.d/我创建了一个名为userparameter_ping.conf以下内容的文件:

UserParameter=checkip[*],ping -c4 8.8.8.8 && echo 0 || echo 1
Run Code Online (Sandbox Code Playgroud)

checkip在 zabbix 服务器中创建了一个带有图形的项目,但没有数据。经过另一次挖掘,我发现zabbix_get并测试了我的用户参数,但出现错误:ZBX_NOTSUPPORTED

# zabbix_get -s 172.20.4.43 -p 10050 -k checkip
Run Code Online (Sandbox Code Playgroud)

我的 zabbix 版本:

Zabbix Agent (daemon) v2.4.5 (revision 53282) (21 April 2015)
Run Code Online (Sandbox Code Playgroud)

有谁知道我能做些什么来解决这个问题?

Ara*_*ams 5

经过一些更改并与邮件列表中的人们交谈后,它终于奏效了,但是如何:

首先我在以下位置创建了一个文件:

/etc/zabbix/zabbix_agentd.conf.d/
Run Code Online (Sandbox Code Playgroud)

并添加这一行:

 UserParameter=checkip[*],ping -W1 -c2 $1 >/dev/null 2>&1 && echo 0 || echo 1
Run Code Online (Sandbox Code Playgroud)

并运行此命令:

    ./sbin/zabbix_agentd -t checkip["8.8.8.8"]
checkip[8.8.8.8]                              [t|0]
Run Code Online (Sandbox Code Playgroud)

所以一切都完成了,但超时选项对我们来说非常重要:

在 /etc/zabbix/zabbix_agentd.conf 中添加超时

Timeout=30
Run Code Online (Sandbox Code Playgroud)

超时默认为 3s 所以如果我们运行

time ping -W1 -c2 8.8.8.8
Run Code Online (Sandbox Code Playgroud)

看到可能需要超过 3 秒,所以你得到了错误:

ZBX_NOTSUPPORTED
Run Code Online (Sandbox Code Playgroud)