我想从运行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
我在zabbix服务器中创建了一个名为checkip
的项目,其中有一个图形,但没有得到任何数据。经过另一次挖掘,我找到了zabbix_get
并测试了我的用户参数,但我得到了错误:ZBX_NOTSUPPORTED
# zabbix_get -s 172.20.4.43 -p 10050 -k checkip
我的zabbix版本:
Zabbix Agent (daemon) v2.4.5 (revision 53282) (21 April 2015)
有人知道我能做些什么来解决这个问题吗?
发布于 2015-11-01 16:53:11
经过一些改变,并与邮件列表中的人们讨论后,它终于起作用了,但它是如何工作的:
首先,我在中创建了一个文件:
/etc/zabbix/zabbix_agentd.conf.d/
然后添加这一行:
UserParameter=checkip[*],ping -W1 -c2 $1 >/dev/null 2>&1 && echo 0 || echo 1
然后运行以下命令:
./sbin/zabbix_agentd -t checkip["8.8.8.8"]
checkip[8.8.8.8] [t|0]
因此,除了超时选项之外,一切都完成了,这对我们来说是非常重要的:
在/etc/zabbix/zabbix_agentd.conf中添加超时
Timeout=30
超时默认值为3s,因此如果我们运行
time ping -W1 -c2 8.8.8.8
看,也许它需要超过3秒,所以你得到了错误:
ZBX_NOTSUPPORTED
发布于 2015-10-26 02:04:33
它可以是任何东西。例如,超时-默认超时为3秒,ping -c4需要至少3秒、ping的权限/路径,而不是重启的代理...
提高调试级别,重新启动代理并检查zabbix日志。您还可以直接测试zabbix_agentd:
zabbix_agentd -t checkip[]
m|ZBX_NOTSUPPORTED =>超时问题。编辑zabbix_agentd.conf并增加超时设置。默认3秒不是最适合您的ping,它需要3+秒。
发布于 2018-11-07 21:43:49
如果执行时间超过30秒,可以使用nohup (command..) &
组合来限制超时限制。
这样,如果您生成了包含结果的文件,则在下一遍中,您可以读取该文件并返回结果,而无需等待。
https://stackoverflow.com/questions/33329557
复制相似问题