2015-10-27 76 views
0

我是服務器管理icinga和nagios使用的初學者。我在機器上安裝了icinga,並設置了所有的基礎知識。我嘗試的下一步是檢查某些服務是否在端口8080, 8081 and 8082上運行。我爲此寫了一個快速的Python腳本。我將該文件放在/usr/local/lib/myscript.py之下。我做的下一步是在/etc/nagios-plugins/config/testone.cfg下創建一個命令。我的命令看起來像這樣自定義插件檢查icinga2

define command{ 
     command_name check_restarts 
     command_line python /usr/local/lib/myscript.py -w 3 -c 5 -p 8080 
     command_line python /usr/local/lib/myscript.py -w 3 -c 5 -p 8081 
     command_line python /usr/local/lib/myscript.py -w 3 -c 5 -p 8082 
     } 

然後我在/etc/icinga2/conf.d/services.conf下向services.conf添加了一個服務。但是當我重新啓動在界面上顯示消息Backend icinga not running的icinga並且當我嘗試sudo service icings2 status時錯誤指向services.conf時,這會導致錯誤。

任何人都可以請指導我圍繞這些步驟?

+0

我的歉意,它看起來像Icinga2與Nagios沒有更多的共同代碼或配置,所以我以前的建議是不正確的,所以我刪除了我的答案。我不熟悉Icinga2格式,所以不能進一步幫助,但我強烈建議你看一下:http://docs.icea.org/icinga2/latest/doc/module/icinga2/toc#!/icinga2/ latest/doc/module/icinga2/chapter/configure-icinga2-first-steps #configure-icinga2-first-steps –

+0

看起來您使用舊的Icinga1語法來定義命令。 Icinga1語法與Nagios語法兼容,但Icinga1的舊.cfg語法與Icinga2的新.conf語法不兼容。此鏈接可能會幫助您找到定義自定義命令的正確語法:http://docs.icea.org/icinga2/latest/doc/module/icinga2/toc#!/icinga2/latest/doc/module/icinga2/chapter/ monitoring-basics#命令 –

回答

1

要做到這一點,最簡單的方法如下:

一旦你nagios安裝轉到/etc/nagios/nrpe.d/commands.conf(如果你沒有一個commands.conf創建它)。在該文件中發生此

command[check_process] = /usr/bin/python /path/to/your/script

這裏check_process可以是你想保留的任何名稱。

一旦這個到位,使用check_nrpe插件檢查它。它在/usr/lib/nagios/../check_nrpe地方(不要完全記住位置)

這在你的終端類型: path/to/check_nrpe -H localhost -c check_process

考慮到這是本地主機,即你運行在同一個系統我沒有看到任何問題,突然出現的腳本。

下一步去/etc/icinga/conf.d/mychecks.conf(再次創建此文件,最好創建一個新的文件夾,並將其放在那裏)。這應該是你的文件的內容:

apply Service "My service" { 
    import "generic-service" 
    check_command = "check_process" 

    assign where host.name == NodeName 
} 

您可以檢查使用sudo /etc/init.d/icinga2 checkconfig任何問題。任何問題通常都是非常具有描述性和有益的。如果checkconfig[ok]然後重新啓動icinga並設置。

+0

謝謝回答。我完全放棄了這一點。我昨晚試了一下,它完美無瑕地運行。 – newkid101