2016-12-07 56 views
0

我是一个Linux新手& Nagios插件,但我需要为路由器接口丢失IP时设置警报(所以当它被视为0.0.0.0)。我还做了其他民族的脚本一个小小的研究,写了下面的脚本命名check_ip.pl:Nagios - 接口IP检查脚本

$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工作正常 - 但是我收到了“(返回码126超出范围 - 插件可能无法执行)” - 所以我在插件代码上做了一些错误!

我知道下面是正确的:

  • OID拉接口的IP是正确的路由器上(测试这一点)
  • 的IP为0.0.0.0的话,它确实难挡预期的理由

任何人都可以提供意见/如何插件文件需要写出来吗?

很多谢谢。

+0

'ls -l/path/to/ProblemPlugin'你可能需要'chmod + x/path/to/ProblemPlugin'。祝你好运。 – shellter

回答

2

您的插件是否在$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

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

但是,您发布的代码不是完整的插件。我看到的将不会返回您要查找的内容。有没有特别需要关于代码的帮助?

此外,请确保您查看Nagios Plugin Development Guidelines