nagios全攻略(五)----監控windows系統的」本地信息」

.如何監控windows系統的本地信息
nagios2.x系列裏面,文檔裏面對於windows服務器的監控相關說明較少,剛到nagios主頁上看到3.x的文檔裏面有一篇講監控windows([url]http://nagios.sourceforge.net/docs/3_0/monitoring-windows.html[/url]
),我就仿照過來,對它略做修改來應用到咱們當前的nagios2.9上去.(畢竟3.x仍是測試版,2.9是最新的穩定版,用起來放心啊)
 
細心的朋友可能注意到了,nagioslibexec下有check_nt這個插件,它就是用來檢查windows機器的服務的,其功能相似於上一章講的check_nrpe.不過還須要搭配另一個軟件NSClient,它則相似於NRPE
 
NSClient的原理以下圖
能夠看到,NSClientnrpe最大的區別就是:
--被監控機上安裝有nrpe,而且還有插件,最終的監控是由這些插件來進行的.當監控主機將監控請求發給nrpe,nrpe調用插件來完成監控.
--NSClient則不一樣,被監控機上只安裝NSClient,沒有任何的插件.當監控主機將監控請求發給NSClient,NSClient直接完成監控,全部的監控是由NSClient完成的.
這也說明了NSClient的一個很大的問題,不靈活,沒有可擴展性.它只能完成本身自己包含的監控操做,不能由一些插件來擴展.好在NSClient已經作的不錯了,基本上能夠徹底知足咱們的監控須要.
 
安裝NSClient
解壓爲C:\NSClient++
打開cmd 切換到C:\NSClient++
執行nsclient++ /install進行安裝
執行nsclient++ SysTray 注意大小寫,這一步是安裝系統托盤,時間稍微有點長
在運行裏面輸入services.msc打開服務
看到下圖就說明NSClient服務已經安裝上了
雙擊打開,登陸標籤,容許服務與桌面交互前打勾
 
編輯C:\NSClient++下的NSC.ini文件
[modules]部分的全部模塊前面的註釋都去掉,除了CheckWMI.dll and RemoteConfiguration.dll這兩個
[Settings]部分設置'password'選項來設置密碼,做用是在nagios鏈接過來時要求提供密碼.這一步是可選的,我這裏方便起見跳過它,不要密碼.
[Settings]部分'allowed_hosts'選項的註釋去掉,而且加上運行nagios的監控主機的IP.我改成以下這樣 allowed_hosts=127.0.0.1/32,192.168.0.111 以逗號相隔.這個地方是支持子網的,若是寫成 192.168.0.0/24則表示該子網內的全部機器均可以訪問.若是這個地方是空白則表示全部的主機均可以鏈接上來.注意是[Settings]部分的,由於[NSClient]部分也有這個選項.
必須保證[NSClient]'port'選項並無被註釋,而且它的值是'12489',這是NSClient的默認監聽端口
CMD中執行nsclient++ /start啓動服務,注意所在目錄是C:\NSClient++
這時在桌面右下角的系統托盤處會出現一個×××的M字樣的圖標
查看服務
已經正常啓動了.注意服務默認設的是自動」,也就是說是開機自動啓動的.
cmd裏面執行netstat –an能夠看到已經開始監聽tcp12489端口了
這樣外部就能夠訪問了嗎?!防火牆也要打開tcp12489端口,不然nagios檢查此服務的時候會報socket 超時錯誤.critical!後果很十分嚴重啊.我就犯了這個錯誤,因此特別強調一下.
這樣被監控機的配置就搞定了,它就等待nagios發出某個監控請求,而後它執行請求將監控的結果發回到nagios監控主機上.
 
對監控主機的配置
接下來就是要配置監控主機了.與以前的nrpe的過程相似,在監控主機上作的就3件事情
1.安裝監控windows的插件(已經默認安裝了,check_nt)
2.定義命令
3.定義要監控的項目
 
定義命令
vi /usr/local/nagios/etc/commands.cfg
增長下面的內容
########################################################################
#
# 2007.9.6 add by yahoon
# CHECK_NT
# check windows hosts info
#
########################################################################
define command{
        command_name    check_nt
        command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 12489  -v $ARG1$ $ARG2$
        }
若是NSClient設置了鏈接須要密碼,則應寫成以下格式
$USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s PASSWORD -v $ARG1$ $ARG2$
具體含義參考check_nt命令的用法
 
增長監控項目
vi /usr/local/nagios/etc/services.cfg
下面這個服務是監控NSClient的版本
define service{
        host_name               yahoon
        service_description     check-version
        check_command           check_nt!CLIENTVERSION
        max_check_attempts      5
        normal_check_interval   3
        retry_check_interval    2
        check_period            24x7
        notification_interval   10
        notification_period     24x7
        notification_options    w,u,c,r
        contact_groups          sagroup
        }
一樣的能夠增長以下服務(爲了篇幅,我只給出最關鍵的check_command這一項)
1)監控windows服務器運行的時間
check_command           check_nt!UPTIME
2)監控Windows服務器的CPU負載,若是5分鐘超過80%則是warning,若是5分鐘超過90%則是critical
check_command           check_nt!CPULOAD!-l 5,80,90
3)監控Windows服務器的內存使用狀況,若是超過了80%則是warning,若是超過90%則是critical .
check_command           check_nt!MEMUSE!-w 80 -c 90
4)監控Windows服務器C:\盤的使用狀況,若是超過80%已經使用則是warning,超過90%則是critical
check_command           check_nt!USEDDISKSPACE!-l c -w 80 -c 90
:-l後面接的參數用來指定盤符
5)監控Windows服務器D:\盤的使用狀況,若是超過80%已經使用則是warning,超過90%則是critical
check_command           check_nt!USEDDISKSPACE!-l d -w 80 -c 90
6)監控Windows服務器的W3SVC服務的狀態,若是服務中止了,則是critical
check_command           check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
7)監控Windows服務器的 Explorer.exe 進程的狀態,若是進程中止了,則是critical
check_command           check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
 
重啓nagios服務來生效,等一會就能夠查看頁面了
(紅色的錯誤是由於我剛把ftp給關了,等會啓動就行了)發現有三個服務的顏色是深×××,狀態是UNKNOWN,後面的信息是NSClient - ERROR: PDH Collection thread not running
這問題有點莫明其妙,由於大部分的新增服務都已經能夠正常運行了,沒關係,把這句話放到goole裏面一看,原來是因爲操做系統語言的問題,好像NSClient默認支持的語言並很少.具體信息參考下面這兩個頁面
 
查看NSClient的日誌C:\NSClient++下的nsclient.log,裏面信息以下
2007-09-06 10:38:35: error:.\PDHCollector.cpp:69: Getting counter info...
2007-09-06 10:38:35: error:.\PDHCollector.cpp:97: Detected language: 0x0804 but it could not be found in: counters.defs
2007-09-06 10:38:35: error:.\PDHCollector.cpp:98: You need to manually configure performance counters!
注意紅色部分,說是須要我手動配置.按照它的說明打開counters.defs文件,查看一下里面的內容,很容易就知道該怎麼改了.結合上面的錯誤信息知道0x0804是當前系統語言簡體中文的代碼,推測系統文件和變量應該與原始的英文版都同樣,複製文件裏面"English US"那部份內容,再作修改就行.我在counters.defs的最後加上了以下的內容:
[0x0804]
Description = "Chinese"
NT4_SystemTotalProcessorTime = "\System\% Total Processor Time"
NT4_SystemSystemUpTime = "\System\System Up Time"
NT4_MemoryCommitLimit = "\Memory\Commit Limit"
NT4_MemoryCommitByte = "\Memory\Committed Bytes"
 
W2K_SystemTotalProcessorTime = "\Processor(_total)\% Processor Time"
W2K_SystemSystemUpTime = "\System\System Up Time"
W2K_MemoryCommitLimit = "\Memory\Commit Limit"
W2K_MemoryCommitByte = "\Memory\Committed Bytes"
 
OK,再等一會看頁面,發現沒變化,看來這樣依樣畫葫蘆不行啊不甘心,看看日誌,再次打開nsclient.log發現裏面的內容沒變.新修改的那部分根本就沒起做用?至少也應該像以前那樣報個ERROR纔對啊?修改配置文件以後要幹嗎???重啓服務!!!!
mmc裏面重啓NSClient服務,以下圖右擊對應的服務選從新啓動
 
查看日誌,內容以下
2007-09-06 12:32:37: error:.\PDHCollector.cpp:69: Getting counter info...
2007-09-06 12:32:37: error:.\PDHCollector.cpp:119: Attempting to open counter...
2007-09-06 12:32:38: error:.\PDHCollector.cpp:122: Counters opend...
看起來沒什麼問題(裏面的error是引導符,開發這個程序的人下次該換換,正確了就不應是erorr了嘛),這邊看起來沒問題了,可仍是要等頁面正常才放心.耐心的等一會,獲得了下面的頁面.
 
一切搞定.我寫的累,你們也看的累吧.不過但願你們都能有收穫
整個nagios的配置過程也在此做結.多謝捧場.
 
後記:
羅唆一句,官方文檔是最好的教程.你們能夠看到個人全部操做,大部分都是按照官方文檔一步步配置的.並且按照它配置出來的也就基本知足須要了.瞭解了整個過程和原理,就能夠本身加加減減作修改知足本身的個性需求,出了問題沒關係,查文檔,google,達到活學活用也不是難事.
仍是那句話,知道了原理,一切就都簡單了.
 
最後針對nagios提煉幾個要點
對於插件要注意使用方法,多用命令名 –h」看看
修改了配置文件要重啓服務生效
碰到問題google一下,別忘記了查看日誌
 
(-- nagios全攻略 完 --)
 
附上的文檔
nagiosetc
nrpeetc
NSClientetccouters.defs
 
相關文章
相關標籤/搜索