我想从我所有运行 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)
有谁知道我能做些什么来解决这个问题?
经过一些更改并与邮件列表中的人们交谈后,它终于奏效了,但是如何:
首先我在以下位置创建了一个文件:
/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)
| 归档时间: |
|
| 查看次数: |
16247 次 |
| 最近记录: |