標籤:
原理:監控端通過check_nrpe把要監控的指令發送給被監控端,被監控端在本機執行監控任務,並把執行的結果發送回監控端。
如何擴充Nagios,以實現自訂監控?
藉助外掛程式進行的每一次有效Nagios檢查(Nagios check)都會產生一個數字表示的退出狀態。可能的狀態有:
- 0--各方面都正常,檢查成功完成。
- 1--資源處於警告狀態。某個地方不太妙。
- 2--資源處於臨界狀態。原因可能是主機宕機或服務未運行。
- 3--未知狀態,這未必表明就有問題,而是表明檢查沒有給出一個清楚明確的狀態。
外掛程式還能輸出簡訊。預設情況下,該訊息顯示在Nagios web介面和Nagios郵件警報資訊中。儘管訊息並不是硬性要求,你通常還是可以在可用外掛程式中找到它們,因為訊息告訴使用者出了什麼岔子,而不會迫使使用者查閱說明文檔。
網上的例子,我自己稍作更改實驗後可正常測試使用:
被監控端設定:
vim /usr/lib64/nagios/plugins/check_file
#!/bin/bashfilename=$1if [ ! -e $filename ];then echo "CRITICALL status -file $filename doesn‘t exist" exit 2elif [ ! -r $filename ];then echo "WARNING status -file $filename is not readable" exit 1elif [ ! -f $filename ];then echo "UNKNOWN status -file $filename is not a file" exit 3else if [ $1 ];then echo "OK status -file $filename is OK" exit 0 fifi
View Code
vim /etc/nagios/nrpe.cfg
command[check_file]=/usr/lib64/nagios/plugins/check_file /tmp/jjtest
監控端設定:
vim /usr/local/nagios/etc/objects/command.cfg
define command{ command_name check_file command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_file }
vim /usr/local/nagios/etc/objects/service.cfg
define service{
use linux-service
host_name myhost
service_description jjtest
check_interval 1 #活動訊號間隔時間,預設每5分鐘主動式偵測一次主機
retry_interval 1 #稍候再試,預設值1分鐘
check_command check_file
}
templates.cfg 模板檔案相關參數說明:(當然了也包括了上面的check_interval和retry_interval)
max_check_attempts #這一項用來定義在檢測返回結果不是OK時,nagios重試檢測命令的次數。設定這個值為1會導致nagios一次也不重試就警示
check_period #這一項用一個time period項的名字來定義在哪段時間內啟用對這台主機的主動式偵測。time period是定義在別的檔案裡的配置項,我們可以在這裡用名字來引用它
contact_groups #這是一個聯絡組列表。我們用聯絡組的名字來引用她們。多個聯絡組間用“,”來分隔。
notification_interval #這一項用來定義當一個服務仍然down或unreachable時,我們間隔多久重發一次通知給聯絡組,通告間隔,預設2小時。
notification_period #這一項用一個time period定義來標識什麼時間段內給聯絡組送通知。這裡我們用time period定義的名字來引用它。
notification_options #這一項用來決定發送通知的時機。選項有:d = 當有down狀態時發送通知,u = 當有unreachable狀態時發送通知, r = 當有服務recoveries時發送通知,f = 當主機啟動或停機時發送通知。如果你給一個n選項,那麼永遠不會發送通知。
-------------------------------------------------------------------------------------------------------------------
yum install nagios-plugins-* 產生/usr/lib64/nagios/plugins/check_*指令檔
yum install nrpe
防止tomcat進程假死
在tomcat的webapps目錄下,建立一個目錄jiankong(這個目錄隨便建),然後在其下面放一個asp檔案。然後修改commands.cfg ,在裡面添加
#tomcat1 set
define command{
command_name check_tomcat_8028
command_line /usr/local/nagios/libexec/check_http -I $HOSTADDRESS$ -p 8028 -u /jiankong/test.jsp -e 200
}
如果有多個連接埠,可以建立多個,只需要修改連接埠號碼,上面這個是8028連接埠,然後在servers.cfg中添加服務就好了。
Nagios自訂擴充