我需要通过zabbix监视特殊的服务状态。 当我在服务器上Zabbix用户定义参数
[email protected] ~ $ /etc/init.d/kannelgate zabbix
运行它打印在控制台中的号码 - 1或0(服务上/下)
我应该在ZABBIX代理写入通过代理来获得这个输出并将其发送到zabbix服务器?
我需要通过zabbix监视特殊的服务状态。 当我在服务器上Zabbix用户定义参数
[email protected] ~ $ /etc/init.d/kannelgate zabbix
运行它打印在控制台中的号码 - 1或0(服务上/下)
我应该在ZABBIX代理写入通过代理来获得这个输出并将其发送到zabbix服务器?
您可以通过编写以下行zabbix_agentd.conf这样定义一个用户参数:
UserParameter=kannelgate.state,/etc/init.d/kannelgate zabbix
请参阅Zabbix documentation有关定义用户参数的详细信息。
尝试像
UserParameter=kannelgate.state[*],/etc/init.d/kannelgate $1
所以,你可以使用各种服务的一个参数。
您的项目键两个可以关注一下:
kannelgate.state["zabbix-agent"]
和
kannelgate.state["zabbix-server"]
编辑: 感谢Selivanov铺路,为提及安全问题。但是,看看到的zabbix文档: Zabbix Userparameter
报价从该部分:
以下字符不允许:?! \'“`* [] {}〜$ &;( )<> |!#@
你应该真正关心用户参数,如果你启用了 “UnsafeUserParameter” 上的zabbix代理方
在Zabbix 3.x文档中,结构发生了一些变化,所以您必须在Zabbix Agent配置中进行搜索。
当使用带参数的UserParameter时,您应该仔细检查脚本中给定的参数。否则,对监控服务器的妥协可能会导致受监控主机的危害。 –
是的,我已经知道了 - 默认情况下zabbix代理读取stdout来发送数据,所以不需要特殊的数据重定向。 –