配置Nagios來監(jiān)控Windows Server
Nagios是多功能的網(wǎng)絡(luò)監(jiān)控系統(tǒng),可以幫助你輕松監(jiān)控數(shù)據(jù)中心的各個設(shè)備。它對Linux系統(tǒng)支持一定的開箱即用性,但對于通過使用NSClient++,你也可以利用Nagios監(jiān)控Windows Server。
在Nagios的環(huán)境中監(jiān)控Windows有幾種不同的模式。本文討論的比較簡單的方法是使用check_nt命令,這條命令在Nagios的commands.cfg文件中已經(jīng)被定義了。在以后的文章中,你還會學(xué)到怎樣配置Nagios Remote Plugin Executor(NRPE)。
首先,監(jiān)控你的Windows環(huán)境的***步是到http://sourceforge.net/projects/nscplus下載并安裝NSClient++。在下載之前先確定你需要哪種版本的軟件。默認(rèn)下載的是支持64位的版本。如果你需要在32位Windows下運(yùn)行NSClient++,就需要從下載頁的Files section下載32-bit MSI。
下載了NSClient++之后,打開Windows服務(wù)界面,配置NSClient++服務(wù)以便讓它自動開始。同樣的你還要確保服務(wù)日志與本地系統(tǒng)賬戶一同存在,而且可以從桌面自動運(yùn)行。***一步就是檢查Windows防火墻。NSClient++在12489端口運(yùn)行,確保你防火墻里這一端口是開著的。
配置Nagios服務(wù)器
配置好Windows的部分之后,你還得配置Nagios服務(wù)器。首先,確保check_nt命令在/etc/nagios/objects/commands.cfg都被定義了。還有一點(diǎn)改變,應(yīng)用默認(rèn)配置不使用密碼了,所以在命令行末尾,加-s nagios(參見例1),以便讓check_nt命令使用默認(rèn)的密碼“nagios”。
# 'check_nt' command definition define command{ command_name check_nt command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$ -s nagios }
例1:在命令行末尾加-s nagios,來讓check_nt命令使用默認(rèn)密碼。
然后,在/etc/nagios/objects/templates.cfg,你需要模板來定義Windows主機(jī)應(yīng)該怎樣配置(例2會告訴你這個定義在默認(rèn)狀態(tài)下是怎么樣的):
define host{ name windows-server ;(本主機(jī)模板的名字) use generic-host
(繼承通用主機(jī)模板的默認(rèn)值)
check_period 24x7 ;(默認(rèn)將日夜不間斷監(jiān)控Windows servers) check_interval 5 ;(每五分鐘主動檢查服務(wù)器) retry_interval 1 ;(每隔一分鐘,重試日程主機(jī)檢查。) max_check_attempts 10 ; (每個服務(wù)器檢查十遍(最多)) check_command check-host-alive ;(檢查服務(wù)器是否運(yùn)轉(zhuǎn)的默認(rèn)命令。) notification_period 24x7 ;(在任何時段發(fā)送報告。) notification_interval 30 ;(每隔30分鐘重復(fù)發(fā)送報告。) notification_options d,r ;(只為特定主機(jī)狀況發(fā)送報告。) contact_groups admins ;(默認(rèn)把報告發(fā)送給admins。) hostgroups windows-servers ;(主機(jī)把Windows servers分組為成員。) register 0 ;(不要注冊這個,這只是個模板) }
例2:# Windows主機(jī)定義模板——不是真的主機(jī),只是模板!
核實(shí)模板存在之后,你需要通知Nagios還得監(jiān)視Windows。通過取消注解cfg_file 行(例3會講到)的方法,讓Nagios看windows.cfg文件:
# Definitions for monitoring a Windows machine cfg_file=/etc/nagios/objects/windows.cfg
例3:取消對cfg_file行的注解。
這樣做之后,你可以定義Windows主機(jī)被監(jiān)視。這一步在每個要被監(jiān)視的windows主機(jī)都要做。你需要一個在windows.cfg文件中的定義主機(jī)項(見例4):
define host{ use windows-server ;(從模板繼承默認(rèn)值。) host_name winserver ;(我們給這臺主機(jī)起的名字。) alias My Windows Server ;(更長的名字來聯(lián)系這個主機(jī)。) address 192.168.1.54 ; IP address of the host (主機(jī)的IP地址) }
例4:定義主機(jī)部分
現(xiàn)在,為Windows配置Nagios的***一步就是定義你想要監(jiān)控的設(shè)備。這也從windows.cfg文件發(fā)生。你可以在下文(例5)中找到這些設(shè)備的其中兩個的例子。
######################################################################### ######################################################################### # # SERVICE DEFINITIONS # ######################################################################### ######################################################################### # Create a service for monitoring the version of NSCLient++ that is installed (創(chuàng)建一個設(shè)備來監(jiān)視已安裝NSCLient++的版本) # Change the host_name to match the name of the host you defined above (改變host_name以符合之前已經(jīng)定義的主機(jī)名稱) define service{ use generic-service host_name winserver service_description NSClient++ Version check_command check_nt!CLIENTVERSION } # Create a service for monitoring the uptime of the server (創(chuàng)建一個設(shè)備來監(jiān)控服務(wù)器的正常運(yùn)行時間) # Change the host_name to match the name of the host you defined above (改變host_name以符合之前已經(jīng)定義的主機(jī)名稱) define service{ use generic-service host_name winserver service_description Uptime check_command check_nt!UPTIME }
例5:定義Nagios要監(jiān)控的設(shè)備
閱讀windows.cfg文件剩余的內(nèi)容,找出哪些設(shè)備檢查是可用的,確保所有需要的設(shè)備能用。一旦你做完這些,就可以保存你的改變并重啟Nagios服務(wù)器,使用Nagios主機(jī)上的service nagios restart。這就可以激活改變,然后,你就能從Nagios界面監(jiān)控Windows主機(jī)上的設(shè)備了。
在這篇文章,你學(xué)會了怎樣為Windows配置Nagios,怎樣使用check_nt程序監(jiān)控基礎(chǔ)Windows服務(wù)器范圍。使用check_nt選項給你開了個好頭,但是沒法幫你監(jiān)控更大的范圍。你需要NRPE來進(jìn)行深入研究。在以后的文章中,你將會學(xué)到如何配置NRPE來進(jìn)行精確的調(diào)整。
【編輯推薦】