Zabbix:debugging外部脚本

我做了一个外部脚本(用Perl编写的snmp_max_io)。 使用IP地址运行时,它将inputlogging到系统日志,并输出一个64位数字值,并将退出值设置为0。

示例输出:

916418801 

我已经把它添加到/ usr / lib / zabbix / externalscripts中,我有一个不同的脚本,工作。

我已经configuration了一个项目:

  • types:外部检查
  • 键:snmp_max_io [“{HOST.CONN}”]
  • 主机接口:ipnr 10050
  • 信息types:数字
  • 数据types:十进制
  • 单位:b

一段时间后,Zabbix将状态更改为:“不支持”和“接收值[]不是数字”。

在命令行上以root用户或zabbix运行时,该命令正常工作。

但是这个命令永远不会被zabbix服务器运行(没有任何logging)。

我怎么知道为什么Zabbix认为命令返回[],而显然从来没有运行它?

解决scheme在注释中:脚本必须是bash脚本。 所以一个perl脚本必须有一个bash包装器。

你的服务器中是否启用了SELinux? 在使用Zabbix的情况下,我在相似的情况下曾多次咬过它。

如果enabled getenforce返回,那么是时候看到/var/log/audit目录日志,看看有什么特别的阻止Zabbix运行脚本。