Nagios 3.2 監控部署(二)

9、定義監控的項目,也叫服務,創建services.cfgvi/usr/local/nagios/etc/services.cfg#監控主機是否存活define service{host_namenagios-serverservice_descriptioncheck-host-alivecheck_commandcheck-host-alivemax_check_attempts5normal_check_interval5retry_check_interval2check_period24x7notification_interval10notification_period24x7notification_optionsw,u,c,rcontact_groupssagroup}#監控主機的web服務define service{host_namenagios-serverservice_descriptioncheck_tcp 80check_period24x7max_check_attempts4normal_check_interval3retry_check_interval2contact_groupssagroupnotification_interval10notification_period24x7notification_optionsw,u,c,rcheck_commandcheck_tcp!80}#監控主機的cpu負載情況define service{host_name nagios-serverservice_descriptioncpu loadcheck_commandcheck_nrpe!check_loadcheck_period24x7max_check_attempts4normal_check_interval3retry_check_interval2contact_groupssagroupnotification_interval10notification_period24x7notification_optionsw,u,c,r}#監控主機的進程數define service{host_namenagios-serverservice_descriptiontotal-procscheck_commandcheck_nrpe!check_total_procscheck_period24x7max_check_attempts4normal_check_interval3retry_check_interval2contact_groupssagroupnotification_interval10notification_period24x7notification_optionsw,u,c,r}說明:host_name:必須是主機配置文件hosts.cfg中定義的主機。check_command:在commands.cfg文件中定義或在nrpe.cfg裏面定義的命令;max_check_attempts: 最大重試次數,一般設置爲4次左右;normal_check_interval retry_check_interval檢查間隔的單位是分鐘。notification_interval通知間隔指探測到故障後,每隔多長時間發送一次報警信息,單位是分鐘。notification_options通知選項跟聯繫人配置文件相同。contact_groups:配置文件contactgroup.cfg定義的組名稱。注意:check_command選項後面跟的命令一定要在commands.cfg裏有定義;如果要監控其他的主機的信息,可以通過複製並修改想應的選項來進行添加;通過複製添加下面這兩臺服務器的監控項目:win2003linux四、安裝nrpetarxvfnrpe-2.12.tar.gzcdnrpe-2.12../configure--prefix=/usr/local/nrpemakemake install#複製文件,因爲在nrpe安裝目錄/usr/local/nrpe/libexec裏只有cneck_nrpe這一個文件,而在nagios/libexec裏卻沒有,還有一個就是nrpe.cfg文件裏面默認定義的那幾個命令後面的路徑是放在/usr/local/nrpe/libexec的目錄裏面,也要把那幾個文件複製過來,如果不復制過來的話必須要修改nrpe.cfg裏面定義的命令的路徑,免得在services.cfg裏面定義check_command時提示找不到命令;現在把下面的文件複製過來:cp /usr/local/nrpe/libexec/check_nrpe/usr/local/nagios/libexeccp /usr/local/nagios/libexec/check_disk/usr/local/nrpe/libexeccp /usr/local/nagios/libexec/check_load/usr/local/nrpe/libexeccp /usr/local/nagios/libexec/check_ping/usr/local/nrpe/libexeccp /usr/local/nagios/libexec/check_procs/usr/local/nrpe/libexeccp /usr/local/nagios/libexec/check_users/usr/local/nrpe/libexec#修改nrpe配置文件,只把改過的地方寫出來vi/usr/local/nrpe/etc/nrpe.cfgserver_address=192.168.0.10//以單獨的守護進程運行allowed_hosts=127.0.0.1,192.168.0.10//設置允許nagios監控服務器可以訪問command[check_users]=/usr/local/nrpe/libexec/check_users -w 5 -c 10command[check_load]=/usr/local/nrpe/libexec/check_load -w 15,10,5 -c 30,25,20#command[check_hda1]=/usr/local/nrpe/libexec/check_disk -w 20 -c 10 -p /dev/hda1//註釋掉command[check_df]=/usr/local/nrpe/libexec/check_disk -w 20 -c 10//添加這一行,監控整個磁盤利用率command[check_zombie_procs]=/usr/local/nrpe/libexec/check_procs -w 5 -c 10 -s zcommand[check_total_procs]=/usr/local/nrpe/libexec/check_procs -w 150 -c 200command[check_ips]=/usr/local/nrpe/libexec/ip_conn.sh 8000 10000//監控ip連接數說明:command[check_users]=/usr/local/nrpe/libexec/check_users –w 5 –c 10在默認情況下check_users的插件是放在/usr/local/nrpe/libexec/目錄裏面,而目錄裏面在默認情況下是沒有這一個文件的,所以說要從/usr/local/nagios/libexec/目錄下拷貝一個過來;或者說的它後面的它改成:command[check_users]=/usr/local/nagios/libexec/check_users –w 5 –c 10 這樣的話就可以了,要不然在引用check_users的時候會提示沒有那命令;
ps
:我這裏爲了方便,就是從/usr/local/nagios/libexec下把那幾個文件拷貝過來;在上面的nrpe.cfg配置文件裏面,在中括號 “ [ ] “裏面部分是命令名,也就是check_nrep –c 後面可以接的內容,等號=後面的就是實際執行的插件程序的路徑;從上往下分別是檢測登錄用戶數,cpu使用率,磁盤的容量,僵屍進程,總進程,連接數;要是還要添加其它監控項目,不要忘記了在這裏定義相應的命令;例:如果要監控主機的swap分區使用情況,當空閒空間小於20%時爲警告狀態,當空閒空間小於10%時爲嚴重狀態。需要在nrpe.cnf裏面添加下面的命令:/usr/local/nagios/libexec/check_swap -w 20% -c 10% 如還有其它的,添加相就應的就可以了;關於命令用法可以能過/usr/local/nagios/libexec/check_swap –h這樣的命令來查詢;command[check_ips]=/usr/local/nrpe/libexec/ip_conn.sh 8000 10000 ip連接數,ip_conn.sh腳本需要自己寫,下面給出腳本的內容:#!/bin/sh#if [ $#-ne 2 ]#then# echo "usage:$0 -w num1 -c num2"#exit 3#fiip_conns=`netstat -an |grep tcp |grep est |wc -l`if [ $ip_conns -lt $1 ]thenecho "ok -connectcounts is $ip_conns"exit 0fiif [ $ip_conns -gt $1 -a $ip_conns -lt $2 ]thenecho "warning -connectcounts is $ip_conns"exit 1fiif [ $ip_conns -gt $2 ]thenecho "critical -connectcounts is $ip_conns"exit 2fi我在nrpe配置文件nrpe.cfg把腳本所需的兩個參數寫上了,因此這個腳本就不需判斷兩個參數輸入值的情況。只要當前ip連接數大於8000,系統就發warning報警,超過10000,則發“critical”報警信息。把這個腳本放在目錄/usr/local/nrpe/libexec下,並給於執行權限;注:腳本來自田逸的《開源監控利器nagios修改/usr/local/nagios/etc/objects/commands.cfg,在最後添加以下內容:######################################################################### 'check_nrpe ' command definitiondefine command{command_name check_nrpecommand_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$}添加check_nrpe的命令支持,要不是加的話,在”check_cmmmandscheck_nrpe!check_nrpe”這樣的情況下的時候,會提示沒有check_nrpe這一個命令。五、被監控主機設置這一部分內容參考yahoon小屋的nagios全攻略()----監控linux上的本地信息,地址是:http://yahoon.blog.51cto.com/13184/41893nrpe的工作原理圖:200910161255684171953.jpgnrpe總共由兩部分組成:check_nrpe 插件,位於在監控主機上 nrpe daemon,運行在遠程的linux主機上(通常就是被監控機)按照上圖,整個的監控過程如下:nagios需要監控某個遠程linux主機的服務或者資源情況時1.nagios會運行check_nrpe這個插件,告訴它要檢查什麼.2.check_nrpe插件會連接到遠程的nrpe daemon,所用的方式是ssl3.nrpe daemon會運行相應的nagios插件來執行檢查4.nrpe daemon將檢查的結果返回給check_nrpe插件,插件將其遞交給nagios做處理.注意:nrpe daemon需要nagios插件安裝在遠程的linux主機上,否則,daemon不能做任何的監控.1linux 主機
1)添加用戶#useradd nagios-s /sbin/nologin2) 安裝nagios插件tar xvfnagios-plugins-1.4.14.tar.gzcd nagios-plugins-1.4.14./configure--prefix=/usr/local/nagiosmakemake install修改目錄權限:chown –R nagios:nagios/usr/local/nagioschown –R nagios:nagios/usr/local/nagios/libexec2) 安裝nrpetarxvfnrpe-2.12.tar.gzcdnrpe nrpe-2.12../configure--prefix=/usr/local/nagios//也把它放到nagios這一個目錄makeallmakeinstall-plugin//安裝check_nrpe這個插件make install-daemon//安裝deamonmake install-daemon-config//安裝配置文件注意:安裝nrpe時,要先安裝SSL這一個工具,因爲監控服務器與被監控主機之間通訊時是通過SSL的方式來進行的。3)修改nrpe.cfg配置文件allowed_hosts=127.0.0.1,192.168.0.10//允許監控服務器訪問,中間用逗號隔開;server_address=192.168.0.10//以單獨的守護進程運行#修改NRPE的監控命令,添加相應的命令;# The following examples use hardcoded command arguments...command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20#command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1command[check_df]=/usr/local/nagios/libexec/check_disk -w 20 -c 10command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Zcommand[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%command[check_tcp]=/usr/local/nagios/libexec/check_tcp -p 804)啓動nrpe服務# /usr/local/nagios/bin/nrpe –c /usr/local/nagios/etc/nrpe.cfg -d5) 在本機測試一下nrpe.cfg裏面定義的命令有沒有錯誤/usr/local/nagios/libexec/check_nrpe -H localhost/usr/local/nagios/libexec/check_nrpe -H localhost–ccheck_users/usr/local/nagios/libexec/check_nrpe -H localhost–ccheck_load/usr/local/nagios/libexec/check_nrpe -H localhost–ccheck_df/usr/local/nagios/libexec/check_nrpe -H localhost–ccheck_zombie_procs/usr/local/nagios/libexec/check_nrpe -H localhost–ccheck_total_procs/usr/local/nagios/libexec/check_nrpe -H localhost–ccheck_swap/usr/local/nagios/libexec/check_nrpe -H localhost –ccheck_tcp6)在監控服務器上修改/usr/local/nagios/etc/services.cfg文件,添加相對應的監控項目;2windows主機如果被監控主機是windows系統的話,需要安裝nsclient++-0.3.6-win32.msi這一個客戶端工具;下載地址:http://sourceforge.net/projects/nscplus/它的工作原理圖如下:200910161255684204562.jpg可以看到它是通過監控服務器上的check_nt這一個插件來檢查WINDOWS機器的服務,當監控服務器將監控請求發給NSClient後,通過NSClient客戶端檢查監控項目,所有的監控都是由NSClient來完成;雙擊安裝,完成後進到安裝目錄,我的是安裝在F:\Program Files\NSClient++,用記事本打開NSC.ini文件,修改如下: [modules]部分的所在模塊前面的註釋“;”去掉,只保留CheckWMI.dllRemoteConfiguration.dll這兩個不用去掉註釋; [Settings] 部分找到”allowed_hosts”選項,將前面的“;”註釋去掉,並在後面加上監控服務器的IP,這裏也可以寫成一個子網,如:192.168.0.0/24的形式,表示所有來自這個子網的機器都可以訪問。修改後如下:allowed_hosts=127.0.0.1/32,192.168.0.10 ;在多個IP之間用逗號相隔。 [NSClient] 部分找到“port=12489”這一行,並把前面的註釋去掉;這是NSClinet的默認監聽端口。打開CMD ,進入到NSClient的安裝目錄,如下:F:\Program Files\NSClient++> dir2009-10-1020:54<DIR>.2009-10-1020:54<DIR>..2009-06-1413:20442,368 nsclient++.exe2009-06-1413:24278,528 nstray.exe2009-10-1023:0813,087 NSC.ini2009-06-1413:1343,129 changelog.txt2008-06-1518:208,804 counters.defs2008-06-1518:2018,351 license.txt2009-10-1020:54<DIR>modules2009-10-1020:54<DIR>scripts2009-10-1420:0026,592 nsclient.log7 個文件830,859 字節4 個目錄3,589,242,880 可用字節//依次執行下面的命令:F:\Program Files\NSClient++> nsclient++.exe/installe NSClient++.cpp(212) Service installation failed: Service already installed!F:\Program Files\NSClient++> nsclient++.exe/install SysTray//注意大小寫;Service SysTray installed...l NSClient++.cpp(224) Service installed!F:\Program Files\NSClient++>nsclient++.exe /start//啓動服務接下來在運行裏面輸入:services.msc 打開服務管理;看到下圖時就表明已經安裝上了:200910161255684243404.jpgNSClinet++上面點右鍵屬性,打開服務,如下圖:200910161255684268826.jpg服務已經啓動了點登錄,在登錄登錄身份下面勾選允許服務與桌面交互,如下圖:200910161255684290747.jpg到這裏就已經在WINDOWS主機上安裝好了,如果你有防火牆的話請打開TCP12489端口,否則nagios檢查此服務的時候會報socket 超時錯誤。這樣被監控的主機就搞定了,現在回到nagios-server 監控服務器上做下面三個步驟:1安裝監控windows的插件(已經默認安裝了check_nt)2)定義命令#'check_nt' command definitiondefine command{command_namecheck_ntcommand_line$USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$}//這一部分在3.20裏面默認就已經有了,不用再添加;3)定義要監控的項目修改/usr/local/nagios/etc/services.cfg文件,增加windows 被監控主機的監控項目;詳情請參閱前面第三步內容;關於check_nt的用法可以使用下面命令查看幫助:# /usr/local/nagios/libexec/check_nt -h下面給出一些常用的參數:1)監控windows服務器運行的時間check_commandcheck_nt!UPTIME2)監控Windows服務器的CPU負載,如果5分鐘超過80%則是warning,如果5分鐘超過90%則是criticalcheck_commandcheck_nt!CPULOAD!-l 5,80,903)監控Windows服務器的內存使用情況,如果超過了80%則是warning,如果超過90%則是critical.check_commandcheck_nt!MEMUSE!-w 80 -c 904)監控Windows服務器C:\盤的使用情況,如果超過80%已經使用則是warning,超過90%則是criticalcheck_commandcheck_nt!USEDDISKSPACE!-l c -w 80 -c 90:-l後面接的參數用來指定盤符5)監控Windows服務器D:\盤的使用情況,如果超過80%已經使用則是warning,超過90%則是criticalcheck_commandcheck_nt!USEDDISKSPACE!-l d -w 80 -c 906)監控Windows服務器的W3SVC服務的狀態,如果服務停止了,則是criticalcheck_commandcheck_nt!SERVICESTATE!-d SHOWALL -l W3SVC7)監控Windows服務器的Explorer.exe進程的狀態,如果進程停止了,則是criticalcheck_commandcheck_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
這一部分被控主機設置這一部分是參考yahoon的小屋原文:http://yahoon.blog.51cto.com/13184/41897
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章