Nagios被動檢測

Michael_DD發表於2014-11-10
Nagios被動檢測

 
  對某些環境下,被動檢測比主動檢測好。例如,資料備份是否成功的監控。資料備份後將備份結果寫入到檔案,
nagios客戶端檢測該檔案的資訊來確定成功與否,這就存在一個問題,就是在備份週期內,nagios檢測到備份
不成功,不停地的傳送告警通知,不勝其煩。對於這種情況,可以使用nagios被動檢測 + 新鮮度來實現。

下面來看看被動監控的配置:

1. 開啟被動監控
# vi /usr/local/nagios/etc/nagios.cfg
# accept_passive_service_checks = 1


2. 定義被動監控指令
centreon上配置

3. 定義要被動監控的主機
centreon上配置


check_dummy指令實際上不檢查任何東西,指定兩個引數,一個是狀態,一個是輸出,始終返回這兩個引數。

[root@sznagios libexec]# ./check_dummy 0
OK
[root@sznagios libexec]# ./check_dummy 1
WARNING
[root@sznagios libexec]# ./check_dummy 2
CRITICAL
[root@sznagios libexec]# ./check_dummy 3
UNKNOWN


如果在freshness_threshold時間內,被動檢測還沒提交資料,check_command將執行,即使主動檢測被禁用。

4. 外部應用程式如何提交主機檢查結果

外部應用程式可以透過編寫一個PROCESS_HOST_CHECK_RESULT外部命令外部命令檔案提交主機檢查結果給Nagios 。命令的格式如下:

[] PROCESS_HOST_CHECK_RESULT;;;

timestamp:unix時間戳

host_name:監控的主機地址

host_status:主機的狀態( 0 = OK,1 = WARNING,2 =CRITICAL,3 = UNKNOWN)

plugin_output:主機檢查的文字輸出

如:

# CHECK="[`date +%s`] PROCESS_SERVICE_CHECK_RESULT;10.0.0.166;BACKUP;0;Nightly backups were successful"
# echo $CHECK >>/usr/local/nagios/var/rw/nagios.cmd


5. 被動檢測客戶端

如果是在同一臺nagios伺服器上,可以直接透過上面的外部指令提交被動檢測結果。那如果是在遠端主機上呢,應用程式沒法做到,
為了讓遠端主機能夠傳送被動檢查結果給nagios,可以使用NSCA外掛。該外掛包含了對nagios主機和從遠端主機上執行的客戶端執行的守護程式。
該守護程式將監聽來自遠端客戶端的連線,在提交的結果進行一些基本的驗證,然後直接寫檢查結果到外部命令。



需要在nagios服務端和客戶端都安裝NSCA

服務端:

# wget http:
//downloads.sourceforge.net/project/nagios/nsca-2.x/nsca-2.7.2/nsca-2.7.2.tar.gz
# tar -xzf nsca-2.7.2.tar.gz
# cd nsca-2.7.2
# ./configure
# make
# cp src/nsca /usr/local/nagios/bin
# cp sample-config/nsca.cfg /usr/local/nagios/etc
# vi /usr/local/nagios/etc/nsca.cfg
password=
# /usr/local/nagios/bin/nsca -c  /usr/local/nagios/etc/nsca.cfg --single


客戶端:
# wget
# tar -xzf nsca-2.7.2.tar.gz
# cd nsca-2.7.2
# ./configure
# make
# mkdir -p /usr/local/bin /usr/local/etc
# cp src/send_nsca /usr/local/bin
# cp sample-config/send_nsca.cfg /usr/local/etc
# vi /usr/local/etc/send_nsca.cfg
password=
# CHECK="10.0.0.166\tBACKUP\t0\tBackup was successful, this check submitted by NSCA\n"
# echo -en $CHECK | send_nsca -c /usr/local/etc/send_nsca.cfg -H 10.0.100.125
1 data packet(s) sent to host successfully.
10.0.0.166 被監控伺服器;10.0.100.125監控伺服器。

安裝在監控伺服器上的NSCA守護程式監聽客戶端send_nsca提交的服務資訊,驗證密碼是否正確的,資料格式是否符合標準。資料格式如下:

\t\t\t\n

check_result:檢測狀態 0 = OK,1 = WARNING,2 =CRITICAL,3 = UNKNOWN

一旦收到提交的資料,就會被翻譯並寫入到外部命令檔案/usr/local/nagios/var/rw/nagios.cmd,並作為一個本地提交的被動檢查。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29500582/viewspace-1326870/,如需轉載,請註明出處,否則將追究法律責任。

相關文章