Nagios的配置
配置Nagios
需要做些對象定義以監控新的交換機與路由器設備。
打開switch.cfg文件進行編輯。
- vi /usr/local/nagios/etc/objects/switch.cfg
給要監控的交換機加一個新的主機對象定義。如果這是第一臺要監控的交換機設備,可以簡單地修改switch.cfg里的樣例配置。修改主機對象里的host_name、alias和address域值來適用于監控。
- 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}
監控服務
現在可以加些針對監控交換機的服務對象定義(在同一個配置文件)。如果是第一臺要監控的交換機設備,可以簡單地修改switch.cfg里的樣例配置。
注意:替換樣例定義里的"linksys-srw224p"主機名為你剛才定義的名字,是修改在host_name域。
監控丟包率和RTA
增加如下的服務定義以監控自Nagios監控主機到交換機的丟包率和平均回包周期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}
這個服務的狀態將會處于:
緊急(CRITICAL)-條件是RTA大于600ms或丟包率大于等于60%;
告警(WARNING)-條件是RTA大于200ms或是丟包率大于等于20%;
正常(OK)-條件是RTA小于200ms或丟包率小于20%
監控SNMP狀態信息
如果交換機與路由器支持SNMP接口,可以用check_snmp插件來監控更豐富的信息。如果不支持SNMP,跳過此節。
加入如下服務定義到你剛才修改的交換機對象定義之中
- 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}
在上述服務定義中的check_command域里,用"-C public"來指定SNMP共同體名稱為"public",用"-o sysUpTime.0"指明要檢測的OID(譯者注-MIB節點值)。
如果要確保交換機上某個指定端口或接口的狀態處于運行狀態,可以在對象定義里加入一段定義:
- 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狀態。"-r 1"選項是讓check_snmp插件檢查返回一個正常(OK)狀態,如果是在SNMP查詢結果中存在"1"(1說明交換機端口處于運行狀態)如果沒找到1就是緊急(CRITICAL)狀態。"-m RFC1213-MIB"是可選的,它告訴check_snmp插件只加載"RFC1213-MIB"庫而不是加載每個在系統里的MIB庫,這可以加快插件運行速度。
這就是給SNMP庫的例子。有成百上千種信息可以通過SNMP來監控,這完全取決于你需要做什么和如果來做監控。祝你好運!
提示:
通常可以用如下命令來尋找你想用于監控的OID節點(用你的交換機IP替換192.168.1.253):snmpwalk -v1 -c public 192.168.1.253 -m ALL .1
監控帶寬和流量
可以監控交換機或路由器的帶寬利用率,用MRTG繪圖并讓Nagios在流量超出指定門限時報警。check_mrtgtraf插件(它已經包含在Nagios插件軟件發行包中)可以實現。
需要讓check_mrtgtraf插件知道如何來保存MRTG數據并存入文件,以及門限等。在例子中,監控了一個Linksys交換機。MRTG日志保存于/var/lib/mrtg/192.168.1.253_1.log文件中。這就是我用于監控的服務定義,它可以用于監控帶寬數據到日志文件之中...
- 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"參數傳給check_local_mrtgtraf命 令意思是插件的MRTG日志文件在這個文件里讀寫,"AVG"參數的意思是取帶寬的統計平均值,"1000000,200000"參數是指流入的告警門限 (以字節為單位),"5000000,5000000"是輸出流量緊急狀態門限(以字節為單位),"10"是指如果MRTG日志如果超過10分鐘沒有數據 返回一個緊急狀態(應該每5分鐘更新一次)。
保存該配置文件
重啟動Nagios
一旦給switch.cfg文件里加好新的主機與服務對象定義,就可以開始對路由器與交換機進行監控。為了開始監控,需要先驗證配置文件再重新啟動Nagios。
如果驗證過程有有任何錯誤信息,修改配置文件再繼續。一定要保證配置驗證過程中沒有錯誤信息再啟動Nagios!
【編輯推薦】