2015-05-29 54 views
1

我需要通过zabbix监视特殊的服务状态。 当我在服务器上Zabbix用户定义参数

[email protected] ~ $ /etc/init.d/kannelgate zabbix 

运行它打印在控制台中的号码 - 1或0(服务上/下)

我应该在ZABBIX代理写入通过代理来获得这个输出并将其发送到zabbix服务器?

回答

3

您可以通过编写以下行zabbix_agentd.conf这样定义一个用户参数:

UserParameter=kannelgate.state,/etc/init.d/kannelgate zabbix 

请参阅Zabbix documentation有关定义用户参数的详细信息。

+0

是的,我已经知道了 - 默认情况下zabbix代理读取stdout来发送数据,所以不需要特殊的数据重定向。 –

2

尝试像

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配置中进行搜索。

+0

当使用带参数的UserParameter时,您应该仔细检查脚本中给定的参数。否则,对监控服务器的妥协可能会导致受监控主机的危害。 –