Nagios監(jiān)控Windows主機(jī)的方法
Nagios監(jiān)控Windows主機(jī)
一、 介紹
本文用來說明如何監(jiān)控Windows主機(jī)的本地服務(wù)和特性,包括:
內(nèi)存占用率
CPU負(fù)載
Disk利用率
服務(wù)狀態(tài)
運(yùn)行進(jìn)程
等等
在Windows主機(jī)上的公眾化服務(wù)(如HTTP、FTP、POP3等)可以查閱監(jiān)控公眾化服務(wù)這篇文檔。
注意:如下的內(nèi)容是假定你已經(jīng)按照快速安裝指南安裝好了Nagios系統(tǒng)之后做的,下面所使用的樣例配置文件(如commands.cfg、templates.cfg等)已經(jīng)在安裝過程中安裝到位。
二、概覽
對(duì)Windows機(jī)器的監(jiān)控私有服務(wù)需要在機(jī)器上安裝代理程序。代理將會(huì)在檢測插件與Nagios服務(wù)之間起網(wǎng)關(guān)代理作用。如果沒有在機(jī)器上安裝代理的話,Nagios將無法對(duì)Windows私有服務(wù)或?qū)傩缘冗M(jìn)行監(jiān)控。
在下面例子中,將在Windows機(jī)器上安裝NSClient++外部構(gòu)件并使用check_nt插件檢測和與NSClient++構(gòu)件進(jìn)行通訊。如果你按照指南來安裝的話,check_nt插件已經(jīng)安裝到了Nagios服務(wù)器上。
如果愿意,可以用其他的Windows代理(象NC_Net)替代NSClient++構(gòu)件所起的作用-只是要稍稍改一下對(duì)應(yīng)的命令和服務(wù)定義等。下面將只是討論安裝了NSClient++外部構(gòu)件的情況。
三、步驟
為完成對(duì)Windows機(jī)器的檢測,有幾個(gè)步驟要做,它們是:
確認(rèn)一下首要條件;
在Windows機(jī)器上安裝代理(在本例中是安裝NSClient++構(gòu)件);
給Windows機(jī)器創(chuàng)建新的主機(jī)和服務(wù)對(duì)象定義;
重啟動(dòng)Nagios守護(hù)進(jìn)程。
四、 已經(jīng)做了什么?
為使過程簡單,已經(jīng)完成了少量配置文件的工作:
已經(jīng)把check_nt命令加入到了commands.cfg文件中,就可以直接使用check_nt插件來監(jiān)控Windows服務(wù);
一個(gè)Windows機(jī)器的主機(jī)對(duì)象模板(命名為windows-server)已經(jīng)在templates.cfg文件里創(chuàng)建好了,可以更容易地加入一個(gè)新的Windows主機(jī)對(duì)象定義。
常用的配置文件可以在/usr/local/nagios/etc/objects/目錄里找到。如果愿意可以對(duì)里面的對(duì)象進(jìn)行修改以適應(yīng)你的要求。但是,如果你沒有熟悉配置Nagios之前勸你不要這么做。開始時(shí)可以只是按照下面的指令操作來快速完成監(jiān)控Windows機(jī)器。
五、首要條件
首次監(jiān)控一臺(tái)Winodws機(jī)器時(shí)需要對(duì)Nagios做點(diǎn)額外的工作,記住,僅僅是監(jiān)控第一臺(tái)Windows機(jī)器時(shí)需要做這些工作。
編輯Nagios的主配置文件
- vi /usr/local/nagios/etc/nagios.cfg
把下面這行最前面的#號(hào)去掉:
- #cfg_file=/usr/local/nagios/etc/objects/windows.cfg
保存配置文件并退出。
剛才做的是什么呢?是讓Nagios起用/usr/local/nagios/etc/objects/windows.cfg這個(gè)配置文件里的對(duì)象定義。在這個(gè)配置文件里可以加些Windows的主機(jī)與服務(wù)對(duì)象定義。該配置文件里已經(jīng)包含有幾個(gè)樣例主機(jī)、主機(jī)組及服務(wù)對(duì)象定義。對(duì)于第一臺(tái)Windows機(jī)器,可以只是簡單地修改里面已經(jīng)有的主機(jī)與服務(wù)對(duì)象定義而不要新創(chuàng)建一個(gè)。
六、安裝Windows代理程序
在用Nagios監(jiān)控Windows機(jī)器的私有服務(wù)之前,需要先在機(jī)器上安裝代理程序。推薦使用NSClient++外部構(gòu)件,它可以在http://sourceforge.net/projects/nscplus找到。如下指令可以安裝一個(gè)基本的NSClient++外部構(gòu)件,同時(shí)也配置好Nagios來監(jiān)控這臺(tái)Windows機(jī)器。
1.從http://sourceforge.net/projects/nscplus站點(diǎn)下載最新穩(wěn)定版的NSClient++軟件包;
2.展開軟件包到一個(gè)目錄下,如C:\NSClient++;
3.打開一個(gè)命令行窗口并切換到C:\NSClient++目錄下;
4.用下面命令將NSClient++系統(tǒng)服務(wù)注冊(cè)到系統(tǒng)里:
- nsclient++ /install
5.用下面命令安裝NSClient++系統(tǒng)托盤程序('SysTray'是大小寫敏感的):
- nsclient++ SysTray
6.打開服務(wù)管理器并確認(rèn)NSClientpp服務(wù)可以在桌面交互(看一下服務(wù)管理器里的'Log On'選項(xiàng)頁),如果沒有允許桌面交互,點(diǎn)一下里面的選擇項(xiàng)打開它。

7.編輯NSC.INI文件(位于C:\NSClient++目錄)并做如下修改:
去掉在[modules]段里的列出模塊程序的注釋,除了CheckWMI.dll和RemoteConfiguration.dll;
最好是修改一下在[Settings]段里的'password'選項(xiàng);
去掉在[Settings]段里的'allowed_hosts'選項(xiàng)注釋,把Nagios服務(wù)所在主機(jī)的IP加到這一行里,或是置為空,讓全部主機(jī)都可以聯(lián)入;
確認(rèn)一下在[NSClient]段里的'port'選項(xiàng)里已經(jīng)去掉注釋并設(shè)置成'12489'(默認(rèn)端口);
8.用下面命令啟動(dòng)NSClient++服務(wù):
- nsclient++ /start
9.如果安裝正確,一個(gè)新的圖標(biāo)會(huì)出現(xiàn)在系統(tǒng)托盤里,是個(gè)黃圈里面有個(gè)黑色的'M';
10.完成了。這臺(tái)Windows機(jī)器可以加到Nagios監(jiān)控配置里了...
七、配置Nagios
為監(jiān)控Windows機(jī)器下面要在Nagios配置文件里加幾個(gè)對(duì)象定義。
編輯方式打開windows.cfg文件。
- vi /usr/local/nagios/etc/objects/windows.cfg
給Windows機(jī)器加一個(gè)新的主機(jī)對(duì)象定義以便監(jiān)控。如果是被監(jiān)控的第一臺(tái)Windows機(jī)器,可以只是修改windows.cfg文件里的對(duì)象定義。修改host_name、alias和address域以符合那臺(tái)Windows機(jī)器。
- define host{
- use windows-server ; Inherit default values from a Windows server template (make sure you keep this line!)
- host_name winserver
- alias My Windows Server
- address 192.168.1.2
- }
好了。下面可以加幾個(gè)服務(wù)定義(在同一個(gè)配置文件里)以使Nagios監(jiān)控Windows機(jī)器上的不同屬性內(nèi)容。如果是第一臺(tái)Windows機(jī)器,可以只是修改windows.cfg里的服務(wù)對(duì)象定義。
注意:用你剛剛加好的主機(jī)對(duì)象定義里的host_name來替換例子里的"winserver"。
加入下面的服務(wù)定義以監(jiān)控運(yùn)行于Windows機(jī)器上的NSClient++外部構(gòu)件的版本。當(dāng)?shù)綍r(shí)間要升級(jí)Windows機(jī)器上的外部構(gòu)件時(shí)這信息會(huì)很用有,因?yàn)樗梢愿嬷@臺(tái)Windows機(jī)器上的NSClient++需要升級(jí)到最新版本。
- define service{
- use generic-service
- host_name winserver
- service_description NSClient++ Version
- check_command check_nt!CLIENTVERSION
- }
加入下面的服務(wù)定義以監(jiān)控Windows機(jī)器的啟動(dòng)后運(yùn)行時(shí)間。
- define service{
- use generic-service
- host_name winserver
- service_description Uptime
- check_command check_nt!UPTIME
- }
加入下面的服務(wù)定義可監(jiān)控Windows機(jī)器的CPU利用率,并在5分鐘CPU負(fù)荷高于90%時(shí)給出一個(gè)緊急警報(bào)或是高于80%時(shí)給出一個(gè)告警警報(bào)。
- define service{
- use generic-service
- host_name winserver
- service_description CPU Load
- check_command check_nt!CPULOAD!-l 5,80,90
- }
加入下面的服務(wù)定義可監(jiān)控Windows機(jī)器的內(nèi)存占用率,并在5分鐘內(nèi)存占用率高于90%時(shí)給出一個(gè)緊急警報(bào)或是高于80%時(shí)給出一個(gè)告警警報(bào)。
- define service{
- use generic-service
- host_name winserver
- service_description Memory Usage
- check_command check_nt!MEMUSE!-w 80 -c 90
- }
加入下面的服務(wù)定義可監(jiān)控Windows機(jī)器的C:盤的磁盤利用率,并在磁盤利用率高于90%時(shí)給出一個(gè)緊急警報(bào)或是高于80%時(shí)給出一個(gè)告警警報(bào)。
- define service{
- use generic-service
- host_name winserver
- service_description C:\ Drive Space
- check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
- }
加入下面的服務(wù)定義可監(jiān)控Windows機(jī)器上的W3SVC服務(wù)狀態(tài),并在W3SVC服務(wù)停止時(shí)給出一個(gè)緊急警報(bào)。
- define service{
- use generic-service
- host_name winserver
- service_description W3SVC
- check_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
- }
加入下面的服務(wù)定義可監(jiān)控Windows機(jī)器上的Explorer.exe進(jìn)程,并在進(jìn)程沒有運(yùn)行時(shí)給出一個(gè)緊急警報(bào)。
- define service{
- use generic-service
- host_name winserver
- service_description Explorer
- check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
- }
都好了,已經(jīng)加好了基礎(chǔ)服務(wù)定義,可以監(jiān)控Windows機(jī)器了,保存一下配置文件。
八、 口令保護(hù)
如果想指定保存在Windows機(jī)器上NSClient++配置文件里的口令,可以修改check_nt命令定義,讓它帶著口令。編輯方式打開commands.cfg文件。
- vi /usr/local/nagios/etc/commands.cfg
修改check_nt命令的定義,帶上"-s "命令參數(shù)(這里的PASSWORD 要換成你Windows機(jī)器的真正口令),象這樣:
- define command{
- command_name check_nt
- command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s PASSWORD -v $ARG1$ $ARG2$
- }
保存文件退出。
九、重啟動(dòng)Nagios
如果修改好Nagios配置文件,需要驗(yàn)證你的配置文件并重啟動(dòng)Nagios。
如果驗(yàn)證配置文件過程中有什么錯(cuò)誤信息,在做下一步前一定要修正好配置文件。一定要保證驗(yàn)證過程中不再有出錯(cuò)信息后再啟動(dòng)或重啟動(dòng)Nagios!
【編輯推薦】