監控Windows主機
nagios監控windows系統主機有三種實作方式:SNMP,NSClient++,NRPE,後面兩種方式都需要在windows上安裝agent,本文檔隻介紹使用NSClient++方式來監控Windows
被監控機Windows主機插件安裝和配置
下載下傳位址:
<a href="http://nsclient.org/nscp/downloads">http://nsclient.org/nscp/downloads</a>
這裡我用到的是0.3.8.zip版本,發現用0.3.9最新版本在windows server2003 sp1相容不佳,啟動不起來
解壓出來然後執行安裝指令
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232689UBzV.png"></a>
這裡前面需要加-noboot參數進行安裝,否則也會出問題
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232690PGtf.png"></a>
解壓出來編輯nsc.ini,把前面的分号去掉如下圖所示
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232690zAjr.png"></a>
在settings部分加入允許主機通路的伺服器IP位址,這裡要對号入座,輸入你的nagios伺服器的IP即可
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232693vYrv.png"></a>
在nsclient部分開啟NSClinet的預設監聽端口12489以及允許通路本機的主機名稱,編輯完以後儲存退出.
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232696Bt5E.png"></a>
再用指令netstat –an 檢視确認端口服務已經運作.
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232699qv7R.png"></a>
再到伺服器運作./check_nrpe –H 要監控伺服器的主機IP位址,看到如下圖所示表示通過沒有問題
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232701bKij.png"></a>
用NagiosQL來添加要監控的主機
監督-HOST-添加
<a href="http://img1.51cto.com/attachment/201111/2/520839_132023270800ls.png"></a>
設定主機名、位址、選擇模闆
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232717wbzJ.png"></a>
然後添加需要的其它服務,先添加C盤的使用情況,監督-服務-添加
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232727v91F.png"></a>
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232732SyJz.png"></a>
總體設定狀況請按如下圖所示操作完成
<a href="http://img1.51cto.com/attachment/201111/2/520839_132023274030cO.png"></a>
上面隻是講解定義一個服務的方法,其實裡面都已經定義好了相關要監控的服務了,是以我們可以直接調用這些服務了,想學習更多,可以點修改看看每項是怎麼設定的.(想監控什麼東西要靠自己多學習然後舉一反三來自定義出自己想要的服務來)
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232748VtKU.png"></a>
為目前主機添加上面定義好的服務,(再傳回到目前以定義好的主機上面來)選擇"服務選項"-選擇定義好的需要監控服務,其實在定義服務的時候也可以選擇主機的,也可以在主機這裡選擇相關服務
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232755FA1e.png"></a>
記得需要在這裡選寫入配置才行,然後重新開機Nagios服務即可
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232759tllT.png"></a>
從上到下執行一次
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232760UmEA.png"></a>
過一段時間就可以在Nagios界面上看到如下界面圖
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232763BdzU.png"></a>
在圖形監控界面點相應服務選項則出相應的圖形監控界面.
<a href="http://img1.51cto.com/attachment/201111/2/520839_13202327682dWm.png"></a>
為伺服器加美化辨別圖示
如下圖所示若裝置是路由器我們就在它後面加一個圖由器的圖示,是服務就加伺服器的圖示,一眼就能差別這個裝置屬于什麼類型,友善管理差別,
[通過閱讀官方文檔,得知在host定義中有四個變量可選,用于指定每一個host的圖示檔案名,預設的存儲位置是/usr/local/nagios/share/images/logos
icon_image: 可以使用GIF, PNG,或者是JPG檔案,推薦圖像尺寸為40x40
icon_image_alt: 即為HTML文法中關于image元素的ALT屬性值
vrml_image: Nagios提供使用VRML語言繪制三維圖像功能,這裡不要使用透明圖檔(PNG, GIF),最好使用JPG
statusmap_image: 提供給statusmap CGI腳本使用的圖檔,伺服器要支援GD,這個檔案的類型為gd2]
winServer2k3未加伺服器圖示之前的樣子
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232773zjOi.png"></a>
注意主機配置檔案在/etc/nagiosql/hosts目錄下面
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232777uLY1.png"></a>
編輯需要加圖示的主機配置檔案,然後按如下圖所示加入兩行
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232778YBjP.png"></a>
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232779lG05.png"></a>
重新開機nagios服務以後,可以看到圖示出來了.
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232781a1mM.png"></a>
監控Linux主機
nagios監控linux伺服器, 因為監控都是依靠插件去完成的,而監控linux主要使用NRPE插件,
首先簡單介紹一下NRPE監控基礎,及監控過程,然後一步步的配置一個執行個體實作監控linux伺服器
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232788vp41.png"></a>
NRPE總共由兩部分組成:
check_nrpe插件:運作在監控主機上
NRPE daemon:運作在遠端的linux主機上(通常就是被監控機)
整個的監控過程:
當Nagios需要監控某個遠端linux主機的服務或者資源情況時:
1:nagios運作check_nrpe插件,我們要在nagios配置檔案中告訴它要檢查什麼.
2:check_nrpe插件會通過SSL連接配接到遠端的NRPE daemon.
3:NRPE daemon會運作相應的nagios插件來執行檢查本地資源或服務.
4:NRPE daemon将檢查的結果傳回給check_nrpe插件,插件将其遞交給nagios做處理.
注意:NRPE daemon需要nagios插件和Nrpe一起安裝在遠端被監控linux主機上,否則,daemon不能做任何的監控. 别外因為它們間的通信是加密的SSL,是以需要安裝SSL
被監控端安裝NRPE和 nagios-plugins
增加一nagios使用者,然後下載下傳插件
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232792r7g8.png"></a>
解壓插件
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232793zPXC.png"></a>
編譯安裝
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232794ptky.png"></a>
<a href="http://img1.51cto.com/attachment/201111/2/520839_13202327943OLZ.png"></a>
裝完以後确認一下相關資料檔案是否存在
<a href="http://img1.51cto.com/attachment/201111/2/520839_13202327955PXT.png"></a>
下載下傳nrpe
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232798ihzK.png"></a>
解壓
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232798c6pJ.png"></a>
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232799gtdI.png"></a>
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232800CeLV.png"></a>
然後按如下圖所示操作
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232802sHHj.png"></a>
編輯nrpe.cfg在allowed_hosts後面加上nagios伺服器的IP位址.
vi /etc/local/nagios/etc/nrpe.cfg
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232804rUOk.png"></a>
啟動服務然後檢視服務端口的運作狀态.
<a href="http://img1.51cto.com/attachment/201111/2/520839_132023280546YA.png"></a>
設定服務自啟動
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232806J7G3.png"></a>
驗證測試NRPE
在本地測試一下自己
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232807MZ0p.png"></a>
在伺服器端做測試
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232808Lg1L.png"></a>
配置NRPE檔案根據自己的需求加入你需要監控服務,這一步非常重要,比如說你想要監控本機的SWAP分區,那裡你需要在裡面加入
command[check_swap]=/usr/local/nagios/libexec/check_swap –w 20% –c 10%,如果這裡沒有定義好,那你在伺服器端會報錯誤:NRPE command ‘check_swap’ not defined
<a href="http://img1.51cto.com/attachment/201111/2/520839_13202328109me9.png"></a>
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232816YGhB.png"></a>
進入nagiosQL管理控制台點 指令-定義-添加
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232823Dt64.png"></a>
指令:check_nrpe
指令行:$USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232829sLNa.png"></a>
現在開始添加需要監控的linux主機 監督-host-添加
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232835MN8b.png"></a>
添加主機相關資訊及模闆
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232843qPNu.png"></a>
添加一個自定義服務 監督-服務-添加
配置名稱:check_swap
服務描述:Linux_swap
檢查指令:check_nrpe
$ARG1$:check_swap
相當于在伺服器端執行這樣一條指令,是以可以在添加服務之前先在伺服器端執行一下這樣的一條指令,确認資料是否可以正常收集得到,想監控什麼就想添加相應服務進去.
[cpu使用率服務:$ARG1$:check_load
線上使用者服務:$ARG1$:check_users
程序數量服務:$ARG1$:check_total_procs
第一個分區使用情況服務:$ARG1$: check_sda1
注意:這些服務必須在被監控的linux用戶端的nrpe.cfg檔案中得到定義]
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232864S2q1.png"></a>
我們這裡多加一個ping檢查服務
<a href="http://img1.51cto.com/attachment/201111/2/520839_13202328760Rup.png"></a>
記住每多添加一個服務,請在被監控的linux用戶端的nrpe.cfg檔案中要定義此指令,在控制台設定的參數和定義指令的參數要一緻,搞不明白請仔細看上圖和下圖對比應該知道怎麼做.
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232881DBki.png"></a>
每多添加一條指令都需要重新開機nrpe服務,以使配置立即生效
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232882c53a.png"></a>
加入第一個分區使用情況,注意有些硬碟用的是hda,有些是sda,[hd(n)是IDE接口的, sd(n)是SCSI接口的]
如果你不确定你所使用的是哪種接口的硬碟,請用指令ls /dev/檢視一看,看到我這裡用的是SCSI接口的硬碟
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232885iaA3.png"></a>
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232893iFWp.png"></a>
添加更多服務這裡我就舉以上幾個例子,要靠自己多學習舉一反三哈,
添加完成記得要點寫入配置哈
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232899aGcv.png"></a>
然後在主機端關聯剛才自定義好的服務
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232904WQqb.png"></a>
寫入配置檔案
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232907WvwR.png"></a>
最後在工具-nagios控制 檢查寫入的配置檔案全部執行一次
<a href="http://img1.51cto.com/attachment/201111/2/520839_13202343523VDM.png"></a>
最後在nagios Web控制台可以看到如下表示成功了.
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232912Z8qt.png"></a>
摘錄一些參數資訊供大家參考
如果丢包率到達20%則報warning,到達60%則報critical:
check_ping!100.0,20%!500.0,60%
如果可用空間低于20%會報Warning,如果可用空間低于10%則報Critical:
check_local_disk!20%!10%!/
監測遠端主機目前的登入使用者數量,如果大于20使用者則報warning,如果大于50則報critical:
check_local_users!20!50
監測遠端主機目前的程序總數,如果大于250程序則報warning,如果大于400程序則報critical:
check_local_procs!250!400!RSZDT
監測遠端主機swap檔案系統使用量,如果swap可用空間低于20%則報warning,低于10%則報critical:
check_local_swap!20!10
“-H 192.168.1.220”定義目标主機的位址,-w說明後面的一對值對應的是“WARNING”狀态,“80%”是其臨界值。“-c 500.0,100%” 其中“-c”說明後面的一對值對應的是" CRITICAL",“100%”是其臨界值。“-p 1”說明每次探測發送一個包
check_ping -H 192.168.1.220 -w 300.0,80% -c 500.0,100% -p 1
檢查http的80端口
check_http!80
用法: check_nt -H <hostname> -p <port> -v INSTANCES -l <counter object>
<counter object> 是一個windows性能對象計數 (eg. Process),
如果它是兩個詞,它應該引号括起來,傳回的結果将是一個逗号分隔的對象
check_nt用法舉例:
check_nt -H 192.168.1.2 -p 12489 -v CPULOAD -l 60,90,95 //顯示最後60分鐘waring為90%,critical為95%時的平均cpuload
check_nt -H 192.168.1.2 -p 12489 -v UPTIME //顯示192.168.1.2從開機到現在運作時間
check_nt -H 192.168.1.2 -p 12489 -v USEDDISKSPACE -l c //顯示192.168.1.2 C槽使用情況
check_nt -H 192.168.1.2 -p 12489 -v USEDDISKSPACE -l d -w 60 -c 95 //顯示192.168.1.2 D盤設waring為90%,critical為95%時的空間使用資訊
check_nt -H 192.168.1.2 -p 12489 -v MEMUSE //顯示192.168.1.2記憶體使用情況
check_nt -H 192.168.1.2 -p 12489 -v SERVICESSTATE -d SHOWALL //顯示192.168.1.2所有正在運作的服務
check_nt -H 192.168.1.2 -p 12489 -v SERVICESSTATE -d SHOWALL -l W3SVC //顯示192.168.1.2上IIS網站服務運作情況
check_nt -H 192.168.1.2 -p 12489 –s 7758521 –v CLIENTVERSION //檢視192.168.1.2上nsclient++版本
check_nt -H 192.168.1.2 -p 12489 –s 7758521 -v INSTANCES -l Process //列舉192.168.1.2上運作的程序
監控路由器
這裡我先用模拟的路由器來橋接到實體網絡然後配置好ip位址和啟用SNMP相關資訊
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232920StBl.png"></a>
安裝check_snmp plugin
在編譯 nagios-plugins 時,如果系統支援net-snmp, 會自動編譯 check_snmp 插件。(剛開始可能我們沒有安裝net-snmp,是以沒有出現check_snmp這個插件)
1、安裝net-snmp
yum -y install net-snmp-libs net-snmp-devel net-snmp net-snmp-utils
2、重新再編譯安裝插件 nagios-plugins-1.4.13
./configure
make && make install
3、檢查SNMP的目前版本
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232928FzNu.png"></a>
如果版本過低,可能不支援 snmp v2c
snmpwalk -v version -c community hostname
4、相應的指令可以通過snmpget 測試。
snmpget -c community -v 2c hostname iso.3.6.1.4.1.3224.16.3.2.0
在日常監控中,經常會用到snmp服務,而snmpwalk指令則是測試系統各種資訊最有效的方法,現總結一些常用的方法如下:
snmpwalk -v 1 -c public 10.103.33.1 .1.3.6.1.2.1.25.2.2 取得系統總記憶體
snmpwalk -v 1 -c public 10.103.33.1 hrSystemNumUsers 取得系統使用者數
snmpwalk -v 1 -c public 10.103.33.1 .1.3.6.1.2.1.4.20 取得IP資訊
snmpwalk -v 1 -c public 10.103.33.1 system 檢視系統資訊
snmpwalk -v 1 -c public 10.103.33.1 ifDescr 擷取網卡資訊
以上隻是一些常用的資訊,snmpwalk功能很多,可以擷取系統各種資訊,隻要更改後面的資訊類型即可.如果不知道什麼類型,也可以不指定,這樣所有系統資訊都擷取到:
snmpwalk -v 1 -c public 10.103.33.1
現在我們測試一下連接配接到到模拟路由器上面去擷取MIB資訊,可以看到我們設定的SNMP相關資訊在這裡全部出現了,
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232931oV2v.png"></a>
通過以上指令檢視到的結果我們再來執行以下指令就應該知道如果想檢視路由器上f0/0的資訊那麼在MIB資訊庫裡面對就的查詢名稱就是ifDescr.1,
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232935iSuY.png"></a>
上面講了這麼多是為了下面的監控做鋪墊,現在然正式開始添加需要監控的路由器
添加一主機如圖所示,這裡用先用PING指令檢查路由器的連通性,相關參數設定代表什麼意思上面說得清楚這裡不再說明
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232940b1ii.png"></a>
可以根據自己的需要來自定義一個指令,指令-定義-添加
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232950WgqV.png"></a>
比如我現在想檢查路由器啟動了多長時間,其實我們要執行的指令是:check_snmp -H '$HOSTADDRESS -C '$ARG1 -o sysUpTime.0
先通過指令檢視到sysuptime的OID的值為:sysUpTimeInstance
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232958BFrJ.png"></a>
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232960DQjZ.png"></a>
調出check_snmp參數用法詳解,自己好好研究看一看
<a href="http://img1.51cto.com/attachment/201111/2/520839_13202329614bpM.png"></a>
現在開始我們來自定義符合自己要求的指令來,到管理-指令-定義
由于這裡隻需要用到-H-C –o 三個參數,注意這裡要區分大小寫,這裡指令行裡面就按如圖所示進行添加,最後記得點儲存即可
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232963Rx8T.png"></a>
然後再到監督-服務-添加 在查檢指令這裡我們可以選擇到我們剛才自定義好的指令
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232974rKli.png"></a>
多添加一個服務檢查路由器f0/0接口的狀态
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232982nR71.png"></a>
寫入配置
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232987uwx5.png"></a>
然後再到主機裡面關聯剛才建好的服務
<a href="http://img1.51cto.com/attachment/201111/2/520839_13202329912dJN.png"></a>
最後記得要從上到下執行一下這個動作,不然會出問題滴.
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320232997btUd.png"></a>
最後的戰果如下圖所示
<a href="http://img1.51cto.com/attachment/201111/2/520839_13202330000hdI.png"></a>
郵件報警
郵件報警這裡我們用最簡單的方法就是調用系統自帶的mailx來發警告郵件(也可自己搭建第三方的郵件伺服器)
手機接收郵件的方法其實也很簡單,發到163的郵箱也支援手機接收,還有移動的139郵箱都可以滴,到手機做簡單的設定即可.
<a href="http://img1.51cto.com/attachment/201111/2/520839_13202330020Kzt.png"></a>
确認一下程式檔案安裝存入的路徑
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320233003v7CE.png"></a>
試着發一封郵件到自己的郵箱試試看,
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320233006sIE8.png"></a>
打開郵箱确認郵件是否能夠成功收到
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320233008lGlO.png"></a>
到警告-聯系資料-添加
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320233013pAx7.png"></a>
可以自定義一個聯系組 警告-聯系組-添加
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320233022NKtE.png"></a>
添加完成以後記得要點寫入配置檔案
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320233028Xg7N.png"></a>
到需要啟用報警的主機上面啟用報警,監督-Host-需要啟用報警的主機-報警設定,注意配置完成以後要記得點寫入配置按鈕哈.
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320233034GMFl.png"></a>
然後再從上到下全部點執行
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320233043mpd7.png"></a>
由于主機檢查重新整理有一定的時間間隔,最先反應報警是ping服務
<a href="http://img1.51cto.com/attachment/201111/3/520839_1320280197ao5q.png"></a>
問題分享:過幾十秒相關服務才全部相繼開始告警,不注意這裡有個嘗試次數的設定,我測試發現一直要等到這個嘗試次數結束以後才能報警,而這中間嘗試的時間大約為10分鐘,這裡需要調整,要不然明明主機down要等半天才反應過來豈不沒有什麼意義了
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320233067bICb.png"></a>
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320233072eRty.png"></a>
足足等了十分鐘才終于收到報警郵件,暈
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320233075BXvl.png"></a>
基本上3-5分鐘之内就會發送一份郵件報警
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320233079YVZr.png"></a>
以上遇到兩個問題需要解決,報警的延時拖得太長,郵件發送的次數太多,我們需要限制報警郵件的發送次數,要不然一直這樣發下去郵箱都要塞爆了.
先解決報警的延時拖得太長的問題,這裡我們其實隻要修改服務的重試次數和檢查間隔時長. 監督-服務-修改
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320233084XkyR.png"></a>
然後在每個檢查設定選項按如下圖所示設定,當服務是正常狀态時每隔1分鐘檢查一次,當服務有問題時的時候也每隔1分鐘重試一次,但最大隻能重試2次
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320233092vjqG.png"></a>
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320233101tgDn.png"></a>
主機檢查設定同樣按如下圖所示操作.
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320233109H5gS.png"></a>
這裡想說明一下,預設的ping服務檢查調用是imp_any這個自定義指令,要修改ping的檢查次數請到這裡來改.改完後記得到nagios控制裡面去點執行然後重新開機nagios服務一次
<a href="http://img1.51cto.com/attachment/201111/2/520839_13202331169efZ.png"></a>
最後可以看到所有重試次數全部變成了2次,每分鐘檢查一下狀态資訊(頻繁檢查狀态資訊會對網絡帶寬有一定的影響,請大家根據自己的情況去定檢查的間隔時間)
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320233120JudA.png"></a>
上圖為證成功通過
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320233142salL.png"></a>
下面開始解決郵件發送的次數太多的問題,如果伺服器出現故障而未能及時的解決,Nagios就會不斷的發送告警資訊,實在令人頭疼,Nagios于是用hostescalations和serviceescalations來控制報警間隔時間來完善它的報警功能.
通過檢視nagios.cfg配置檔案可以發現上次我們添加的時候,此配置檔案已經寫入在裡面了
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320233151GPfL.png"></a>
這裡我們設定簡單點不要搞得那麼複雜,通知前3條資訊我們按正常頻率接由郵件,從第3條資訊以後我們改變它有通知時間,這裡我設為120分鐘,當然你可以根據自己的情況去定,然後從第5條資訊起再恢複它有通知頻率間隔,就是這麼簡單.
<a href="http://img1.51cto.com/attachment/201111/2/520839_13202331544urn.png"></a>
添加如下内容:
define serviceescalation{
host_name Win2K3 ;被監控主機名稱 ,要與hosts.cfg中的名稱一緻
service_description PING,Memory Usage,Explorer,CPU Load,C:\ Drive Space ;被監控服務名稱多個用逗号隔開
first_notification 3 ;第3條資訊起,改變頻率間隔
last_notification 5 ;第5條資訊起,恢複頻率間隔
notification_interval 120 ;通知間隔(機關:分)
contact_groups IT_Group ;要通知的群組
}
<a href="http://img1.51cto.com/attachment/201111/2/520839_13202331556SD9.png"></a>
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320233156QRO2.png"></a>
define hostescalation{
host_name Win2K3 ;被監控主機名稱,要與hosts.cfg中名稱一緻
first_notification 3 ;第3條資訊起,改變頻率間隔
last_notification 5 ;第5條資訊起,恢複頻率間隔
notification_interval 120 ;通知間隔(機關:分)
contact_groups IT_Group ;要通知的群組
}
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320233157CqsL.png"></a>
問題分享:這裡要說明一點問題,習慣性每次配置完成以後都從上到下點執行一次,而這次卻出了問題
<a href="http://img1.51cto.com/attachment/201111/2/520839_1320233161wiZr.png"></a>
當執行寫入其他資料的時候我們可以發現我們剛手動加入資訊的兩個檔案在這裡的配置再次被重寫了,剛手動加入的資訊全部都恢複成預設的了,難怪我在測試的時候發現明明設定了限制的時間卻發現沒有起效果,原來發現原因在這個地方(我估計需要通過這個控制台來修改這兩個配置檔案,但我沒有找到哪個地方可以去修改)是以當你手動改了以後,請不要執行這一步就行了.
<a href="http://img1.51cto.com/attachment/201111/2/520839_13202331698OFu.png"></a>
最後總結:我發現在測試的時候有些服務有告警有些沒有,有時全沒有,但主機告警每次都很及時,服務的報警設定是一緻的,應該沒有問題,我懷疑是不是我的主機性能的問題,開幾台虛拟機還加一些應用使用主機在應用上感覺就很慢,待以後有空再來驗證,我也是初次研究這個東東,寫這篇可花了我不少時間,我也是摸着石頭過河,有錯誤再所難免,發現問題歡迎大家指正.
實戰CentOS 6.0+Nagios中文版+PNP+Nagios Web管理工具nagiosQL
<a href="http://allanfan.blog.51cto.com/520839/684169">http://allanfan.blog.51cto.com/520839/684169</a>