Zabbix:调试外部脚本

Zabbix:调试外部脚本

我制作了一个外部脚本(用 Perl 编写的 snmp_max_io)。当使用 IP 地址运行时,它会将输入记录到 syslog 并打印单个 64 位数值并将退出值设置为 0。

示例输出:

916418801

我已将其添加到 /usr/lib/zabbix/externalscripts 中,其中我有一个不同的脚本,可以正常工作。

我已经配置了一个项目:

  • 类型:外部检查
  • 密钥: snmp_max_io["{HOST.CONN}"]
  • 主机接口:ipnr 10050
  • 信息类型:数字
  • 数据类型:十进制
  • 单位:b

过了一会儿,Zabbix 将状态更改为:“不支持”和“收到的值 [] 不是数字”。

以 root 或 zabbix 身份在命令行上运行时,该命令运行良好。

但是 zabbix 服务器从未运行过该命令(没有记录任何内容)。

我如何找出为什么 Zabbix 认为命令返回 [] 但它显然从未运行过它?

解决方案在注释中:脚本必须是 bash 脚本。因此,perl 脚本必须具有 bash 包装器。

答案1

您的服务器启用了 SELinux 吗?我在使用 Zabbix 时遇到过几次类似的情况。

如果getenforce返回enabled,那么就该查看/var/log/audit目录日志并查看是什么特别阻止了 Zabbix 运行脚本。

相关内容