Nagios的配置
配置Nagios
需要做些對象定義以監(jiān)控新的交換機與路由器設(shè)備。
打開switch.cfg文件進行編輯。
- vi /usr/local/nagios/etc/objects/switch.cfg
給要監(jiān)控的交換機加一個新的主機對象定義。如果這是第一臺要監(jiān)控的交換機設(shè)備,可以簡單地修改switch.cfg里的樣例配置。修改主機對象里的host_name、alias和address域值來適用于監(jiān)控。
- define host{ use generic-switch ; Inherit default values from a template host_name linksys-srw224p ; The name we're giving to this switch alias Linksys SRW224P Switch ; A longer name associated with the switch address 192.168.1.253 ; IP address of the switch hostgroups allhosts,switches ; Host groups this switch is associated with}
監(jiān)控服務(wù)
現(xiàn)在可以加些針對監(jiān)控交換機的服務(wù)對象定義(在同一個配置文件)。如果是第一臺要監(jiān)控的交換機設(shè)備,可以簡單地修改switch.cfg里的樣例配置。
注意:替換樣例定義里的"linksys-srw224p"主機名為你剛才定義的名字,是修改在host_name域。
監(jiān)控丟包率和RTA
增加如下的服務(wù)定義以監(jiān)控自Nagios監(jiān)控主機到交換機的丟包率和平均回包周期RTA,在一般情況下每5分鐘檢測一次。
- define service{ use generic-service ; Inherit values from a template host_name linksys-srw224p ; The name of the host the service is associated with service_description PING ; The service description check_command check_ping!200.0,20%!600.0,60% ; The command used to monitor the service normal_check_interval 5 ; Check the service every 5 minutes under normal conditions retry_check_interval 1 ; Re-check the service every minute until its final/hard state is determined}
這個服務(wù)的狀態(tài)將會處于:
緊急(CRITICAL)-條件是RTA大于600ms或丟包率大于等于60%;
告警(WARNING)-條件是RTA大于200ms或是丟包率大于等于20%;
正常(OK)-條件是RTA小于200ms或丟包率小于20%
監(jiān)控SNMP狀態(tài)信息
如果交換機與路由器支持SNMP接口,可以用check_snmp插件來監(jiān)控更豐富的信息。如果不支持SNMP,跳過此節(jié)。
加入如下服務(wù)定義到你剛才修改的交換機對象定義之中
- define service{ use generic-service ; Inherit values from a template host_name linksys-srw224p service_description Uptime check_command check_snmp!-C public -o sysUpTime.0}
在上述服務(wù)定義中的check_command域里,用"-C public"來指定SNMP共同體名稱為"public",用"-o sysUpTime.0"指明要檢測的OID(譯者注-MIB節(jié)點值)。
如果要確保交換機上某個指定端口或接口的狀態(tài)處于運行狀態(tài),可以在對象定義里加入一段定義:
- define service{ use generic-service ; Inherit values from a template host_name linksys-srw224p service_description Port 1 Link Status check_command check_snmp!-C public -o ifOperStatus.1 -r 1 -m RFC1213-MIB}
在上例中,"-o ifOperStatus.1"指出取出交換機的端口編號為1的OID狀態(tài)。"-r 1"選項是讓check_snmp插件檢查返回一個正常(OK)狀態(tài),如果是在SNMP查詢結(jié)果中存在"1"(1說明交換機端口處于運行狀態(tài))如果沒找到1就是緊急(CRITICAL)狀態(tài)。"-m RFC1213-MIB"是可選的,它告訴check_snmp插件只加載"RFC1213-MIB"庫而不是加載每個在系統(tǒng)里的MIB庫,這可以加快插件運行速度。
這就是給SNMP庫的例子。有成百上千種信息可以通過SNMP來監(jiān)控,這完全取決于你需要做什么和如果來做監(jiān)控。祝你好運!
提示:
通??梢杂萌缦旅顏韺ふ夷阆胗糜诒O(jiān)控的OID節(jié)點(用你的交換機IP替換192.168.1.253):snmpwalk -v1 -c public 192.168.1.253 -m ALL .1
監(jiān)控帶寬和流量
可以監(jiān)控交換機或路由器的帶寬利用率,用MRTG繪圖并讓Nagios在流量超出指定門限時報警。check_mrtgtraf插件(它已經(jīng)包含在Nagios插件軟件發(fā)行包中)可以實現(xiàn)。
需要讓check_mrtgtraf插件知道如何來保存MRTG數(shù)據(jù)并存入文件,以及門限等。在例子中,監(jiān)控了一個Linksys交換機。MRTG日志保存于/var/lib/mrtg/192.168.1.253_1.log文件中。這就是我用于監(jiān)控的服務(wù)定義,它可以用于監(jiān)控帶寬數(shù)據(jù)到日志文件之中...
- define service{ use generic-service ; Inherit values from a template host_name linksys-srw224p service_description Port 1 Bandwidth Usage check_command check_local_mrtgtraf!/var/lib/mrtg/192.168.1.253_1.log!AVG!1000000,2000000!5000000,5000000!10}
在上例中,"/var/lib/mrtg/192.168.1.253_1.log"參數(shù)傳給check_local_mrtgtraf命 令意思是插件的MRTG日志文件在這個文件里讀寫,"AVG"參數(shù)的意思是取帶寬的統(tǒng)計平均值,"1000000,200000"參數(shù)是指流入的告警門限 (以字節(jié)為單位),"5000000,5000000"是輸出流量緊急狀態(tài)門限(以字節(jié)為單位),"10"是指如果MRTG日志如果超過10分鐘沒有數(shù)據(jù) 返回一個緊急狀態(tài)(應(yīng)該每5分鐘更新一次)。
保存該配置文件
重啟動Nagios
一旦給switch.cfg文件里加好新的主機與服務(wù)對象定義,就可以開始對路由器與交換機進行監(jiān)控。為了開始監(jiān)控,需要先驗證配置文件再重新啟動Nagios。
如果驗證過程有有任何錯誤信息,修改配置文件再繼續(xù)。一定要保證配置驗證過程中沒有錯誤信息再啟動Nagios!
【編輯推薦】