說明:本例使用VM虛拟機、GNS3模拟器、GETIF工具實驗Zabbix監控網絡裝置。
1、配置Cisco路由器
本節以Cisco 2600路由器為例;隻要支援SNMP協定的網絡裝置都可以使用本文檔方法進行監控。
檢視snmp-server系統指令:
交換機配置如下:
建立snmp團體,名稱為public,權限為隻讀
(config)#snmp-server community public ro
允許路由器将所有類型SNMP Trap發送出去
(config)#snmp-server enable traps
設定主機10.10.10.101接受交換機所發送過來的SNMP Trap 資訊
(config)#snmp-server host 10.10.10.101 version 2c public
使用loopback0接口的IP位址作為SNMP Traps發送源位址,也可用fastEthernet位址。
(config)#snmp-server trap-source loopback0
2、監控交換機步驟
(1)首先是需要擷取Cisco 3750 SNMP 對應的OID
例如:接口G1/0/5的進、出流量:
[root@zabbix ~]# snmpwalk -v 2c -c test 10.0.0.254 1.3.6.1.2.1.2.2.1.10.10105
IF-MIB::ifInOctets.10105 = Counter32: 1663553768
[root@zabbix ~]# snmpwalk -v 2c -c test 10.0.0.254 1.3.6.1.2.1.2.2.1.16.10105
IF-MIB::ifOutOctets.10105 = Counter32: 2288654478
說明:IF-MIB::ifOutOctets是OID号1.3.6.1.2.1.2.2.1.16的解釋名稱;10105是接口G1/0/5;Counter32是交換機計數器;後面的數值是流量,機關bytes;機關bytes和bit完全不對等,bytes = 8bit。
(2)然後是建立監控項監控OID的值:
建立一個模闆,在模闆的Items中建立一個Item,設定如下:
這裡選擇了類型SNMPv2 agent,OID對應交換機的接口G1/0/5進入流量,下面會詳細講解。
3、計數器溢出問題
Counter32是交換機的一個計數器,這個計數器是32位。是一個從0開始不斷累加,那麼它最大為多少呢? 2^32次方=4294967296,當計數器達到4294967296(4G)就會重新從0開始累加。這樣就會出現計數器溢出問題。
解決方法:
(1)把取值間隔調快點,比如1分鐘取一次。
(2)使用64 位計數器:大家可以查下交換機手冊,是否支援64 位計數器,新一代交換機全支援64 位計數器;如果目前生産環境不支援64 位計數器,那麼就使用第一種方法咯,加快取值間隔時間。
4、如何查詢交換機OID資訊
進入cisco官方OID查詢工具頁面:
http://tools.cisco.com/Support/SNMP/do/BrowseOID.do?local=en
那麼OID從哪得知呢,這一串數字又是什麼意思呢,在上圖中的cisco頁面往下拉,接着看:
這顆樹很大,内容很多,有興趣的可以慢慢發掘;以下是一些常用的OID:
擷取端口清單及描述
[root@zabbix ~]# snmpwalk -v 2c -c test IP 1.3.6.1.2.1.2.2.1.2
擷取端口UP/DOWN 情況
[root@zabbix ~]# snmpwalk -v 2c -c test IP 1.3.6.1.2.1.2.2.1.8
擷取端口入流量(byte)
[root@zabbix ~]# snmpwalk -v 2c -c test IP 1.3.6.1.2.1.2.2.1.10
擷取端口出流量(byte)
[root@zabbix ~]# snmpwalk -v 2c -c test IP 1.3.6.1.2.1.2.2.1.16
擷取過去5 秒内的cpu load(百分比)
[root@zabbix ~]# snmpwalk -v 2c -c test IP 1.3.6.1.4.1.9.2.1.56.0
擷取過去10 秒内的cpu load(百分比)
[root@zabbix ~]# snmpwalk -v 2c -c test IP 1.3.6.1.4.1.9.2.1.57.0
擷取過去15 秒内的cpu load(百分比)
[root@zabbix ~]# snmpwalk -v 2c -c test IP 1.3.6.1.4.1.9.2.1.58.0
擷取記憶體使用情況
[root@zabbix ~]# snmpwalk -v 2c -c test IP 1.3.6.1.4.1.9.9.48.1.1.1.5
擷取記憶體空閑情況
[root@zabbix ~]# snmpwalk -v 2c -c test IP 1.3.6.1.4.1.9.9.48.1.1.1.6
另外還可以通過getif工具連接配接交換機或路由器,直接檢視其OID,這也是我推薦的方法,下面就來搭建一個實驗環境看看如何監控交換機。
5、實驗一:通過Getif工具檢視路由器的OID資訊
說明:實驗環境部署在我的筆記本Win7系統下,使用GNS3搭建cisco 2600路由器和雲,通過雲和實體機的本地環回接口通訊,進而使用Getif來檢視路由器OID。
(1)安裝、設定筆記本環回網卡
環回網卡的安裝我就不詳述了,參考:
http://jingyan.baidu.com/article/046a7b3eef6d69f9c27fa9ea.html
設定環回IP位址:
(2)使用GNS3建立模拟環境,添加一個Cisco 2600路由器和一個Cloud雲
(3)配置雲,連接配接到筆記本的環回網卡,這樣路由器就橋接到實體機了
(4)輕按兩下路由器進行設定
别忘了還要設定團體名稱:
R4(config)#snmp-server community public
(5)筆記本打開CMD測試連接配接
(6)使用Getif工具掃描路由器的OID資訊
下載下傳及使用說明:
http://www.wtcs.org/snmp4tpc/getif.htm
連接配接路由器即可檢視到詳細資訊:
可以點選各項再點start來檢視對象傳回的值。現在發現OID沒這麼困難了吧,這工具是相當好用啊,擷取windows系統的OID資料也是一樣的,隻要開啟windows server的SNMP功能。
6、實驗二:Zabbix監控路由器
說明:使用VMware Workstation搭建一台Zabbix伺服器虛拟機,虛拟機通過虛拟網絡VMnet與實體機相連,GNS3中的雲也橋接到虛拟網絡,進而讓Zabbix伺服器可以連接配接到cisco路由器,進行監控。
(1)建立VM虛拟機配置Zabbix伺服器
在實體機上使用VMWare建立一個虛拟機,安裝配置好Zabbix;設定虛拟機網絡NAT到實體機:
(2)設定VM的虛拟網絡
NAT使用虛拟網絡VMnet8,設定IP段并開啟DHCP
(3)檢視虛拟機的網卡位址,已自動配置設定到IP了
(4)在實體機的本地網絡連接配接中應該也能看到多了一個VMnet8的虛拟網卡,自動擷取IP
(5)修改GNS3中路由器F0/0接口IP
R4(config)#int f0/0
R4(config)#ip add 10.10.10.102 255.255.255.0
(6)修改GNS3中雲的網卡
取消連接配接線、删除雲的網卡、添加新網卡(橋接到VMnet8)
(7)實體機測試PING
可以看到都PING通了,三者現在處于同一網絡内。
(8)使用Getif工具連接配接路由器
(9)在zabbix伺服器進行測試
[root@zabbix ~]# yum install -y net-snmp net-snmp-utils net-snmp-libs
[root@zabbix ~]# service snmpd start
[root@zabbix ~]# snmpwalk -v 2c -c public 10.10.10.102 1.3.6.1.2.1.2.2.1.16.1
如果讀者看了前面的内容就去試snmpwalk指令,不好意思,此指令無效,因為沒裝net-snmp,呵呵。
(10)配置zabbix進行監控了
建立主機,這裡不同的是設定SNMP接口而不是以往的Agent接口,SNMP的預設端口是161:
說明:建立完主機後SNMP圖示不會馬上變綠,要建立下面的ITEMS并監控到資料了才會變綠。
建立Item,下圖把use custom multipliter去掉:
說明:SNMP OID可以填解釋名也可以填OID資料串
(11)檢視監控結果
監控到資料後SNMP圖示變綠
在實體機上Ping路由器,指定icmp包大小為2000位元組:
觀察監控圖像的變化:
上圖顯示的流量是17Kbps,應該是2000bit,這是因為我在use custom multipliter設定了8,意思是将值乘以8了,記得把勾去掉。