Nagios - 接口 IP 检查脚本

Nagios - Interface IP Check Script

我是 Linux 和 Nagios 插件的新手,但我需要为路由器接口丢失 IP 时设置警报(因此当它被视为 0.0.0.0 时)。我对其他人的脚本做了一些研究,并编写了以下名为 check_ip.pl:

的脚本
$snmpIfIP = '.1.3.6.1.4.1.23695.2.1.3.1.1.3.0.0';
$noip = "0.0.0.0";
if ($snmpIfIP != $noip) {
echo "Interface has an IP";
exit 0 } else { echo "No IP on Interface"; exit 2 }

在 Nagios 中,然后我将其分配给 check_command: $USER1$/check_ip.pl

分配了一个模板来使用这个检查命令,并从这个模板创建了一个服务。 Nagios 服务器和路由器之间的 SNMP 正在运行 - 但是我得到“(Return 126 代码超出范围 - 插件可能无法执行)” - 所以我对插件代码做了一些错误!

我知道以下是正确的:

谁能提供建议/插件文件需要如何编写?

非常感谢。

你的插件真的在$USER1$目录下吗? $USER1$ 在大多数情况下是 /usr/local/nagios/libexec

您需要确保您的插件不仅可执行:

chmod +x /usr/local/nagios/libexec/check_ip.pl

而且它可以由 Nagios 用户执行(并拥有):

chown nagios:nagios /usr/local/nagios/libexec/check_ip.pl

如果您已经测试了您的脚本并且在手动 运行 时它工作正常,那么这应该可以解决您的问题!

但是,您发布的代码不是完整的插件。我看到的不会 return 你要找的。关于代码,您有什么特别需要帮助的吗?

此外,请务必查看 Nagios Plugin Development Guidelines!