五、被監控機(windows)系統的安裝配置
NSClient與nrpe最大的區別就是:
--被監控機上安裝有nrpe,並且還有插件,最終的監控是由這些插件來進行的.當監控主機將監控請求發給nrpe後,nrpe調用插件來完成監控.
--NSClient則不同,被監控機上只安裝NSClient,沒有任何的插件.當監控主機將監控請求發給NSClient後,NSClient直接完成監控,所有的監控是由NSClient完成的.
1、在被監控機上面安裝NSClient壓縮包:(下載地址http://sourceforge.net/projects/nscplus/files/nscplus/)
(1)解壓縮安裝包“NSClient++-0.3.8-Win32.zip”到D:\NSClient
(2)打開“開始”----“運行”命令行,輸入cmd ,然後進入D:\NSClient 目錄
(3)執行D:\nsclient > nsclient++ /install進行安裝
(4)安裝完成以後打開“管理工具”下面的“服務”,查看有無“NSClientpp (Nagios)”的服務
2、修改被控機上的NSClient配置文件:nsc.ini
用記事本打開D:\NSClient下面的nsc.ini文件,根據下面要求修改配置:
- ;# NSCLIENT++ MODULES
- ;# A list with DLLs to load at startup.
- ; You will need to enable some of these for NSClient++ to work.
- ; ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
- ; * *
- ; * N O T I C E ! ! ! - Y O U H A V E T O E D I T T H I S *
- ; * *
- ; ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
- ;FileLogger.dll
- ;CheckSystem.dll
- ;CheckDisk.dll
- ;NSClientListener.dll
- ;NRPEListener.dll
- ;SysTray.dll
- ;CheckEventLog.dll
- ;CheckHelpers.dll
- ;CheckWMI.dll (這邊前面的分號不去掉)
- ;
- ; Script to check external scripts and/or internal aliases.
- ;CheckExternalScripts.dll
- ;
- ; NSCA Agent if you enable this NSClient++ will talk to NSCA hosts repeatedly (so dont enable unless you want to use NSCA)
- ;NSCAAgent.dll
- ;
- ; LUA script module used to write your own "check deamon".
- ;LUAScript.dll
- ;
- ; RemoteConfiguration IS AN EXTREM EARLY IDEA SO DONT USE FOR PRODUCTION ENVIROMNEMTS!
- ;RemoteConfiguration.dll (這邊前面的分號不去掉)
- ; Check other hosts through NRPE extreme beta and probably a bit dangerous! :)
- ;NRPEClient.dll
- ; Extreamly early beta of a task-schedule checker
- ;CheckTaskSched.dll
- [Settings]
- ;# PASSWORD
- ;password=secret-password (連接的密碼設置,如果不用密碼,這邊的分號可不去掉)
- allowed_hosts=127.0.0.1/32,192.168.0.100(前面的分號去掉,然後加上主控機的IP地址)
- (如果是內網192要監控公網的機器,在這邊首先要查出主監控機網段出去的公網IP,可通過http://www.ip138.com查詢到監控機網段出去的公網IP地址,寫入到allowed_hosts中)
- [NSClient]
- ;# NSCLIENT PORT NUMBER
- ; This is the port the NSClientListener.dll will listen to.
- port=12489 (前面的分號去掉,打開服務的12489端口,不然主控機沒法訪問過來)
3、啓動客戶端服務並打開服務端口:
(1)打開windows管理工具下面的“服務”,找到NSClient服務,並啓動它。
(2)如果“本地連接”有開啓防火牆或是有設置硬件防火牆,注意都要開打“12489”的端口。
4、在主控機上面的nagios參數配置:
(1)查看命令參數中的定義
[root@localhost ]# vim /usr/local/nagios/etc/objects/command.cfg
- define command{
- command_name check_nt
- command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$
- }
(2)打開主程序nagios.cfg中的參數文件調用設置
[root@localhost ]# vim /usr/local/nagios/etc/nagios.cfg
- # Definitions for monitoring a Windows machine
- cfg_file=/usr/local/nagios/etc/objects/windows.cfg (去掉前面的#號註釋符)
(3)查看windows.cfg中的參數設置
[root@localhost ]# vim /usr/local/nagios/etc/objects/windows.cfg
- define host{ ;定義被控主機
- use windows-server
- host_name winserver ;定義被控機的名稱,可用IP地址來區分
- alias My Windows Server
- address 192.168.0.4 ;定義被控機的IP地址
- }
- (說明:注意如果多臺被控機要分多個define host來定義,不能寫在一起用逗號來隔開)
- define hostgroup{ ;定義主機羣組
- hostgroup_name windows-servers ;定義主機羣組的名稱
- alias Windows Servers
- members winserver ;加入此組的成員主機名,多個用逗號隔開
- }
- define servicegroup{ ;定義服務羣組
- servicegroup_name web_server ;定義服務羣組的名稱
- alias web server
- members 192.168.100.15,HTTP:8080,192.168.100.21,HTTP:80 ;注意這邊要寫兩個項目
- } (主機名稱) (服務類型)
- define service{ ;定義的服務不包含的主機
- use generic-service
- host_name !192.168.100.5,!192.168.100.100 ;在主機前面加!表示排除這臺主機,因它沒F盤。
- hostgroup_name windows-servers
- service_description F:\ Drive Space
- check_command check_nt!USEDDISKSPACE!-l f -w 80 -c 90
- }
(監控命令說明如下:)
1)check_command check_nt!UPTIME 監控windows服務器運行的時間
2)check_command check_nt!CPULOAD!-l 5,80,90 監控Windows服務器的CPU負載,如果5分鐘超過80%則是warnig,如果5分鐘超過90%則是critical
3)check_command check_nt!MEMUSE!-w 80 -c 90 監控Windows服務器的內存使用情況,如果超過了80%則是warnig,如果超過90%則是critical.
4)check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90 監控Windows服務器C:\盤的使用情況,如果超過
(注:-l後面接的參數用來指定盤符) 80%已經使用則是warning,超過90%則是critical
5)check_command check_nt!USEDDISKSPACE!-l d -w 80 -c 90 監控Windows服務器D:\盤的使用情況,如果超過
80%已經使用則是warning,超過90%則是critical
6)check_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC 監控Windows服務器的W3SVC服務的狀態,如果
(說明:W3SVC是windows的IIS服務) 服務停止了,則是critical
7)check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe 監控Windows服務器的Explorer.exe進程的狀態,如果進程停止了,則是critical
8)check_command check_nt!PROCSTATE!-d SHOWALL -l oracle.exe 監控Windows服務器下的oracle數據庫狀態
9)check_command check_nt!PROCSTATE!-d SHOWALL -l TNSLSNR.exe 監控Windows服務器下oracle數據庫的
listener監聽狀態
(4)驗證參數據修改是否正確,並重新加載
[root@localhost ]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
[root@localhost ]# service nagios reload