2016-12-07 60 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