我做了一个外部脚本(用Perl编写的snmp_max_io)。 使用IP地址运行时,它将inputlogging到系统日志,并输出一个64位数字值,并将退出值设置为0。
示例输出:
916418801
我已经把它添加到/ usr / lib / zabbix / externalscripts中,我有一个不同的脚本,工作。
我已经configuration了一个项目:
一段时间后,Zabbix将状态更改为:“不支持”和“接收值[]不是数字”。
在命令行上以root用户或zabbix运行时,该命令正常工作。
但是这个命令永远不会被zabbix服务器运行(没有任何logging)。
我怎么知道为什么Zabbix认为命令返回[],而显然从来没有运行它?
解决scheme在注释中:脚本必须是bash脚本。 所以一个perl脚本必须有一个bash包装器。
你的服务器中是否启用了SELinux? 在使用Zabbix的情况下,我在相似的情况下曾多次咬过它。
如果enabled
getenforce
返回,那么是时候看到/var/log/audit
目录日志,看看有什么特别的阻止Zabbix运行脚本。