您好,登錄后才能下訂單哦!
這篇文章主要講解了“Zabbix 3.0監(jiān)控網(wǎng)絡(luò)設(shè)備有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Zabbix 3.0監(jiān)控網(wǎng)絡(luò)設(shè)備有哪些”吧!
SNMP發(fā)展至今以成為應(yīng)用最廣的網(wǎng)絡(luò)管理協(xié)議,目前應(yīng)用的版本主要有SNMP v1、SNMP v2c和SNMP v3。各版本之間主要的差異表現(xiàn)在信息的定義、通信協(xié)議的操作和安全機(jī)制上,同時也出現(xiàn)了SNMP應(yīng)用的兩個擴(kuò)展遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控RMON(Remote Network Monitoring)和RMON2。
從物理層的角度看,使用SNMP對網(wǎng)絡(luò)進(jìn)行管理應(yīng)該包含:網(wǎng)絡(luò)管理站(NMS)、代理(Agent)、代理服務(wù)器(proxy)。NMS能夠發(fā)生命令,接收通知信息,在網(wǎng)絡(luò)管理中至少要有一個NMS。Agent能夠響應(yīng)管理節(jié)點的請求,也能夠主動產(chǎn)生通知信息,在網(wǎng)絡(luò)管理中可以有一個或多個。Proxy在不同網(wǎng)絡(luò)間或不同版本間轉(zhuǎn)發(fā)SNMP請求和通知信息。
從協(xié)議層的角度看,SNMP包含:SMI(Structure of Management Information,管理信息結(jié)構(gòu))和MIB(Management InformationBase,管理信息庫)。SMI是ASN.1(Abstract SyntaxNotation one,抽象語法標(biāo)記)的一個子集,SMI規(guī)定了SNMP中可使用ASN.1中的元素、自定義的數(shù)據(jù)類型和宏等,由這些元素、數(shù)據(jù)類型、宏及其他相關(guān)的語法可定義SNMP中的MIB。MIB是Agent中可被管理對象的抽象描述。在SNMP中,MIB是以樹形結(jié)構(gòu)組織進(jìn)行查看的,樹中的每個節(jié)點稱為OID(Object identifier,對象標(biāo)識),以類似于網(wǎng)址域名的方式組織,以證書表示各個節(jié)點,如 1.3.6.4。
SNMP是屬于TCP/IP協(xié)議棧的應(yīng)用層協(xié)議,類似于HTTP、FTP協(xié)議。只是SNMP傳輸層使用的是UDP協(xié)議。
在SNMP v1中,提供了一種從NMS到Agent的簡單的認(rèn)證模式----Community,NMS向Agent發(fā)送請求時需要提供Community字符串,Agent收到字符串后需檢查是否和本地的一致。因使用明文傳遞Community,具有明顯的安全隱患。
在1996年IETF發(fā)布了SNMP v2c(Community-BasedSNMP v2),該版本在v1的基礎(chǔ)上定義了管理站之間的通信,所有支持分布式網(wǎng)絡(luò)管理,但是在安全機(jī)制方面還是和v1的一樣。
在1998年IETF發(fā)布了SNMP v3,在SNMP v2的基礎(chǔ)上擴(kuò)展了安全性(基于用戶的安全模型及視圖的訪問控制模型)和管理機(jī)制。在安全性上,v3版本在協(xié)議報文中加入了安全性參數(shù),允許對報文進(jìn)行加密傳輸和強(qiáng)制性驗證,是一種安全的協(xié)議。SNMP v3中使用模塊化的思想定義了協(xié)議中的各個組成模塊,完善了協(xié)議的體系結(jié)構(gòu),最重要的是和SNMP v1和SNMP v2保持兼容。
SNMP中agent主要負(fù)責(zé)信息的上傳,NMS除了具有SNMP協(xié)議的級別功能外,還具有對已發(fā)送和接收的信息進(jìn)行日志記錄、通知信息的記錄和管理及配置功能,并能提供圖形化的配置和管理界面。
為了實現(xiàn)這些功能,SNMP中包含一系列的操作命令,主要有:
讀取命令:Get系列命令,NMS像Agent發(fā)出請求收集管理信息。
設(shè)置命令:Set命令,NMs將報文中攜帶的數(shù)據(jù)寫入Agent中。
告警功能:Trap系列,Agent主動向NMS發(fā)送告警/事件報文的信息。
圖 13-1
1、 Get 操作
Get操作是NMS主動發(fā)起的操作。在發(fā)出的報文中除了攜帶Get請求標(biāo)志外,還包括了待請求的OID名稱和值對,并以這種名稱和值對的綁定形式實現(xiàn)管理對象信息的傳遞。當(dāng)然,Get操作中OID對應(yīng)的值為NILL。
2、 Get-Next操作
Get-Next操作和Get功能類似,不同的是查詢的信息并不是報文中綁定的OID信息而是該對象的下一個OID的信息(如果下一個OID信息是可讀的)。比如說NMS想要收集Agent端的sysName的下一個節(jié)點sysLocation的信息,在請求報文中是sysName.0,而返回的報文中綁定的是sysLocation.0和值。
3、 Get-Bulk操作
實際上是多個Get-Next操作的集合,這是在SNMP v2中新加入的操作方法。
4、Set操作
Set操作是對具有可寫權(quán)限的OID進(jìn)行參數(shù)的設(shè)置操作,實現(xiàn)對設(shè)備的參數(shù)管理、配置和控制等。與Get操作綁定變量不同的是Set中需要綁定對應(yīng)OID設(shè)置的值。
5、Get-Response
Get-Response是對NMS的Get和Set兩類命令的響應(yīng),根據(jù)命令的不同和命令中的參數(shù)不同,相應(yīng)的返回變量綁定的信息及錯誤狀態(tài)信息(表明命令執(zhí)行成功或失?。┑?。
6、Trap系列
Trap是Agent向NMS主動報告重要事件的機(jī)制,對于這種報告,NMS無須對Agent進(jìn)行響應(yīng)。Trap信息中的內(nèi)容表明了什么時間在什么地點發(fā)生了什么事情。
1、SMI
SMI是SNMP中以ASN.1語法定義的信息模塊,是ASN.1中的一個子集。這些模塊中定義了很多SNMP中特有的宏、自定義數(shù)據(jù)類型和規(guī)則等。定義這些宏、數(shù)據(jù)類型、規(guī)則的主要目的有3個:一是表示和定義SNMP應(yīng)用中特有的數(shù)據(jù)類型;二是簡化管理對象的定義方法;三是分配SNMP中的對象標(biāo)識符空間及管理對象編碼的方法。SNMP正是基于這些定義在RFC文檔中的信息模塊,實現(xiàn)了協(xié)議的標(biāo)準(zhǔn)化,使得各個組織、企業(yè)和個人在定義管理對象時保持一致性。
在SNMP中,實際上定義了兩個版本的SMI,分別是RFC 1151中定義的SMI v1和RFC 2578中定義的SMI v2。SMI v1中只是簡單的定義了幾種數(shù)據(jù)類型、規(guī)則說明、OBJECT-TYPE宏等,在SMI v2中則以模塊化的定義方式,將所有的相關(guān)內(nèi)容都完整的組織起來了。
SMI v1中定義的基礎(chǔ)數(shù)據(jù)類型有:
INTEGER:實際上是32位的整數(shù)。
OCTET STRING:0個或多個8位字符(單字節(jié)),即可以表示文本字符,也可以表示物理地址。取值范圍0 到65535。
OBJECT IDENTIFIER:以點分十進(jìn)制表示的OID。
NULL:只在SMI v1中有定義,在SMI v2中已經(jīng)不再使用。
SEQUENCE:定義列表。
SEQUENCE OF:定義表格。
在SMI v2中對以上的數(shù)據(jù)類型進(jìn)一步明確了范圍上的限制和更新,另外還引入了BITS類型。
SMI v1中自定義數(shù)據(jù)類型包括:
NetworkAddress(網(wǎng)絡(luò)地址),可以是除Internet外的網(wǎng)絡(luò)地址族,
NetworkAddress ::= CHOICE {Internet IPAddress }
32位的IP地址,用網(wǎng)絡(luò)字節(jié)順序表示
IPAddress ::= [APPLICATION 0 ] IMPLICIT OCTET STRING (SIZE (4))
Counter類型值單向增長,達(dá)到最大后,回歸到0重新開始計數(shù)(Agent重啟后也會重置為0),主要用于統(tǒng)計接口發(fā)送和接收的字節(jié)數(shù)
Counter ::= [APPLICATION 1 ] IMPLICIT INTEGER(0 .. 4294967295)
Gauge類型值可增可減,達(dá)到最大值時保持在最大值,如路由器中接口的速率可以用該類型表示
Gauge ::= [ APPLICATION 2 ]IMPLICIT INTEGER(0 .. 4294967295)
TimeTicks以百分之一秒(0.01)為單位計時,表示兩個時間點之間的計時。要求在描述信息中說明其計時基準(zhǔn)。
TimeTicks ::= [ APPLICATION 3 ] IMPLICIT INTEGER(0 .. 4294967295)
Opaque將其他ASN.1類型編碼后的值兩次封裝。為了向后兼容,SMIv2中也定義了該類型,不建議使用。
Opaque ::= [APPLICATION 4 ] IMPLICIT OCTET STRING
SMI v2中相對SMI v1有變化的自定義數(shù)據(jù)類型有:
Gauge32 和Gauge實際上是一致的。另外Gauge32與Unsigned32共用一個應(yīng)用類型標(biāo)簽號,所以他們的編碼實際上是一致的。
Gauge32 ::= [APPLICATION 2 ] IMPLICIT INTEGER(0 .. 4294967295)
Unsigned32 ::= [APPLICATION 2 ] IMPLICIT INTEGER(0 .. 4294967295)
Counter64是更大范圍的Counter,有64為:2^64-1(0 ..18446744073709551615)。在標(biāo)準(zhǔn)MIB模塊中,只有在使用Counter32時計數(shù)器不到1小時就歸0的情況下使用。
Counter64 ::= [ APPLICATION6 ] IMPLICIT INTEGER(0 ..18446744073709551615)
SMI v2中依然保留了IPAddress類型,且含有沒有變化。不過不適用于IPv6的128為地址。對Counter32更進(jìn)一步的說明:計數(shù)的值只有在有初始值和有記錄變化時,當(dāng)前的計數(shù)值才有明確的含義。
從MIB的視角來看,SMI是直接指導(dǎo)MIB定義的章程,定義了MIB的數(shù)據(jù)類型和語法,為MIB中的管理對象分配OID空間。
2、MIB
MIB是管理信息的集合,是根據(jù)業(yè)務(wù)的需求或網(wǎng)絡(luò)管理標(biāo)準(zhǔn)的要求,按照約定的組織規(guī)則、定義語法編寫的結(jié)構(gòu)化的文本文件。
每個MIB中的管理對象都應(yīng)該清晰的描述該對象所有的屬性,包括名稱、描述、數(shù)據(jù)類型等。這些屬性的內(nèi)容能夠通過對象的唯一標(biāo)示OID,被通信雙方所識別。也就是說,MIB是NMS和Agent相互溝通的橋梁,只有Agent實現(xiàn)了該MIB,且NMS認(rèn)識該MIB,兩者才能正確配合實現(xiàn)相應(yīng)的管理功能。將MIB導(dǎo)入NMS后,NMS才能知道待管理對象所有的細(xì)節(jié)。在Agent中實現(xiàn)了MIB中定義的管理對象后說明該Agent支持該MIB。
一個Agent可以實現(xiàn)多個MIB,每個MIB包含的管理對象可多可少,沒有明確的要求。MIB主要由兩部分組成,一部分是國際標(biāo)準(zhǔn)化組織定義的標(biāo)準(zhǔn)的管理對象,包括MIB-I(RFC1156)和MIB-II(RFC1213)。標(biāo)準(zhǔn)的MIB中定義了一些常規(guī)和基礎(chǔ)的管理對象,所有入網(wǎng)設(shè)備都支持。另一部分是各大廠商、組織或私人自定義的私有MIB,這些私有MIB是廠商根據(jù)設(shè)備管理的需求,將標(biāo)準(zhǔn)MIB中沒有的需要管理的對象進(jìn)行自定義。私有MIB定義在節(jié)點enterprises(1.3.6.1.4.1)下。
標(biāo)準(zhǔn)MIB中將管理對象分為10個組,也就是MIB樹中的10個分支,它們是:System、Interfaces、AT(Address Translation,狀態(tài)為deprecated,表示下一版本不再使用)、IP、ICMP、TCP、UDP、EGP、Transmission、SNMP,它們的父節(jié)點是1.3.6.1.2.1(mib-2)。這10個組中的管理對象時網(wǎng)絡(luò)管理中最重要的部分之一。
System組:主要用來描述Agent系統(tǒng)層面信息。包括sysName、sysLocation、sysDescr、sysServices、sysUpTime、sysContact、sysObjectID等。這些OID提供了設(shè)備的名稱、位置、在線時間等信息,在網(wǎng)絡(luò)管理中非常重要,在實際環(huán)境中這些信息不能得到及時的更新,容易被忽略。
Interfaces組:該組用于提供網(wǎng)路設(shè)備所有的接口信息。包括接口類型、接口描述、接口速率、接口狀態(tài)等。
AT組:即地址轉(zhuǎn)換組。該組時間為一個表對象,實現(xiàn)網(wǎng)路地址到物理地址的映射對應(yīng)關(guān)系。遍歷該表就能得到IP地址和MAC地址之間的對應(yīng)關(guān)系。
IP組:定義了IP層相關(guān)信息的管理對象。這些對象涉及IP數(shù)據(jù)包對象、錯誤信息、地址信息、路由信息、地址映射信息。
ICMP組:該組定義了26個描述各種ICMP信息收發(fā)的標(biāo)量對象,它們都是Counter類型。通過這些對象很容易得出報文的收發(fā)速率,ICMP各類報文類型(請求、響應(yīng))的速率。
TCP組:該組主要包括:用于配置管理的TCP重傳策略、重傳最長、最短時間的對象,用于性能管理的鏈接被拒絕的請求數(shù)、TCP通信狀態(tài)間轉(zhuǎn)移情況記錄數(shù)、重傳總數(shù)、接收錯誤總數(shù)等對象,可能用于計費管理的收發(fā)TCP數(shù)據(jù)段技術(shù)對象,可能用于安全管理的tcpConnTable表對象,通過分析該表記錄到的遠(yuǎn)端IP、端口號、狀態(tài)等信息,跟蹤來自遠(yuǎn)端可疑的鏈接。
UDP組:該組包括可用于性能和計費管理的接收和發(fā)送UDP數(shù)據(jù)包的計數(shù)對象、錯誤報計數(shù)對象及端口和IP地址等相關(guān)信息的對象。
EGP(Exterior Gateway Protocol,外部網(wǎng)關(guān)協(xié)議)組:EGP是用于在自治系統(tǒng)間(鄰居間)交換路由信息的協(xié)議。該組包括用戶失效管理的鄰居運行狀態(tài)等各類信息的egpNeighTable表對象、用戶配置管理的本地自治系統(tǒng)的域號、用于性能管理的進(jìn)入和離開本地實體EGP消息的速率及錯誤計數(shù)對象。
Transmission組:該組的作用在于根據(jù)不同的傳輸媒介提供相應(yīng)的管理信息。該組比較特殊,MIB-II中并沒有在該分支下定義明確的管理對象,而是當(dāng)某種傳輸媒介需要接受管理時才把對應(yīng)的接口類型加入到改組中。
SNMP組:該組定義了詳細(xì)描述SNMP相關(guān)的對象。如可用于故障管理的不同類型錯誤數(shù)的統(tǒng)計、可用于配置管理的Trap認(rèn)證失敗是否產(chǎn)生消息的對象、可用于性能管理的發(fā)送和接收的各種消息數(shù)的統(tǒng)計。
在SNMP中所有的管理對象都以一棵樹形結(jié)構(gòu)來組織,管理對象則體現(xiàn)為樹中的節(jié)點,而這棵樹則由國際上的相關(guān)標(biāo)準(zhǔn)化組織來維護(hù)和管理。通過這種結(jié)構(gòu)化和層次化的組織方式,非常便于對象的管理和擴(kuò)充。這種管理和擴(kuò)充體現(xiàn)在節(jié)點的分配上。
如企業(yè)、組織或個人都可以向負(fù)責(zé)管理和分配節(jié)點的國際組織申請節(jié)點,作為樹中的一個分支。當(dāng)成功申請到一個節(jié)點后,就可以在該分支下自由的分配其他節(jié)點,以滿足其監(jiān)控或管理業(yè)務(wù)的需要。
OID數(shù),也稱為MIB數(shù)。MIB實際上是由OID組成的ASN.1的模塊,在現(xiàn)實中體現(xiàn)為樹形結(jié)構(gòu)。Internet中有很多標(biāo)準(zhǔn)的MIB,SNMP中定義了MIB-I、MIB-II等,還包括企業(yè)、組織、個人定義的MIB。如下圖所示。
在OID樹中,只有最頂層的root節(jié)點不帶有具體的數(shù)字編號,可以看作是一個虛擬的節(jié)點,其他的節(jié)點都是具有在同一層的唯一編號,以作區(qū)分。
位于頂層的下一層節(jié)點分別為CCITT(也就是目前的ITU-T)負(fù)責(zé)管理的ccitt(0)、ISO負(fù)責(zé)的ISO(1)。
在internet節(jié)點下有很多的子節(jié)點,directory(1)保留,將來可能用于OSI目錄服務(wù)。mgmt(2)則由IAB負(fù)責(zé),用于定義RFC中的標(biāo)準(zhǔn)管理對象,實際上就是MIB-I和MIB-II。experimental(3)也是由IAB負(fù)責(zé)管理,用于定義internet實驗性質(zhì)的管理對象。Private(4)及下級節(jié)點enterprises(1)則由IANA負(fù)責(zé)分配和管理,在enterprises(1)節(jié)點下主要用于分配給各企業(yè)或組織使用。
OID樹結(jié)構(gòu)如下圖13-2所示。
圖 13-2
RFC 2578中你會發(fā)現(xiàn)SNMP中定義的數(shù)據(jù)類型,相對于這些數(shù)據(jù)類型,在Zabbix中配置監(jiān)控項選項時,建議Type ofinformation和Store value選項按下表內(nèi)容配置。
SNMP 類型 | 描 述 | Zabbix中建議的監(jiān)控項選項 |
INTEGER | 有符號的32為整數(shù) |
|
STRING | 任意二進(jìn)制或文本數(shù)據(jù),可以是多行 |
|
OID | SNMP Object Identifier,以點分十進(jìn)制表示 |
|
IPAddress | IPv4 地址 |
|
Counter32 | 單向增長的值(0 .. 4294967295),達(dá)到最大后,回歸到0重新開始計數(shù) |
|
Gauge32 | 值可增可減(0 .. 4294967295),達(dá)到最大值時保持在最大值 |
|
Counter64 | 單向增長的值,達(dá)到最大后,回歸到0重新開始計數(shù)(0 .. 18446744073709551615) |
|
TimeTicks | 無符號整數(shù),2^32取模(4294967296),兩個值之間為百分之一秒 |
|
在Zabbix中使用SNMP監(jiān)控設(shè)備之前,需要先確定監(jiān)控項對應(yīng)的OID值和數(shù)據(jù)類型。除了標(biāo)準(zhǔn)的MIB和OID,你需要咨詢設(shè)備廠商,通過廠商提供的文檔和MIB庫文件,能快速、準(zhǔn)確的發(fā)現(xiàn)需要監(jiān)控的OID值。
你可以使用一些圖形化的工具如MG-SOFT MIB Browser,將MIB文件導(dǎo)入后,在圖形界面中查詢設(shè)備的信息,如下圖13-3所示。
圖 13-3
使用圖形化工具可以幫助我們快速的瀏覽、查詢和確定監(jiān)控項的OID類型和值,
也可以使用snmpwalk工具直接從設(shè)備中查詢。使用snmpwalk前請先確定是否在系統(tǒng)中已經(jīng)安裝,如沒有安裝,可以使用下面的命令安裝:
# yum install net-snmp-utils
執(zhí)行snmpwalk查詢設(shè)備信息。
# snmpwalk -v 2c -c public 10.60.0.19 1.3.6.1.2.1.1
SNMPv2-MIB::sysDescr.0 = STRING: Cisco IOS Software, ME380x Software(ME380x-UNIVERSALK9-M), Version 15.4(3)S2, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2015 by Cisco Systems, Inc.
Compiled Wed 28-Jan-15 11:43 by prod_rel_team
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.9.1.1252
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (2030697335) 235days, 0:49:33.35
SNMPv2-MIB::sysContact.0 = STRING:
SNMPv2-MIB::sysName.0 = STRING: XZX-3800
SNMPv2-MIB::sysLocation.0 = STRING:
SNMPv2-MIB::sysServices.0 = INTEGER: 6
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00
也可以輸出OID對應(yīng)的數(shù)字路徑:
# snmpwalk -v 2c -On -c public 10.60.0.19 1.3.6.1.2.1.1
.1.3.6.1.2.1.1.1.0 = STRING: Cisco IOS Software, ME380x Software(ME380x-UNIVERSALK9-M), Version 15.4(3)S2, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2015 by Cisco Systems, Inc.
Compiled Wed 28-Jan-15 11:43 by prod_rel_team
.1.3.6.1.2.1.1.2.0 = OID: .1.3.6.1.4.1.9.1.1252
.1.3.6.1.2.1.1.3.0 = Timeticks: (2030720756) 235 days, 0:53:27.56
.1.3.6.1.2.1.1.4.0 = STRING:
.1.3.6.1.2.1.1.5.0 = STRING: XZX-3800
.1.3.6.1.2.1.1.6.0 = STRING:
.1.3.6.1.2.1.1.7.0 = INTEGER: 6
.1.3.6.1.2.1.1.8.0 = Timeticks: (0) 0:00:00.00
從上面snmpwalk執(zhí)行時指定的參數(shù)不同,結(jié)果中對OID的顯示方式也不同。不管用什么方式顯示,結(jié)果都是由三個部分組成:OID、數(shù)據(jù)類型和返回值。例如設(shè)備名稱的顯示如下:
SNMPv2-MIB::sysName.0 = STRING: XZX-3800
.1.3.6.1.2.1.1.5.0= STRING: XZX-3800
雖然顯示的內(nèi)容是一樣的,都是sysName的返回值,但是OID的表達(dá)方式不同,在Zabbix中定義items時,在SNMP OID配置參數(shù)中一些最常用的OID可以使用OID名稱,Zabbix會自動將一些最常用的 SNMP OID轉(zhuǎn)換成數(shù)字,例如 SNMPv2-MIB::sysName.0會轉(zhuǎn)換為1.3.6.1.2.1.1.5.0 。但是企業(yè)私有MIB的OID只能使用全數(shù)字路徑。Zabbix中可自動轉(zhuǎn)換的OID如下表13-1所示。
表 13-1
Special OID | Identifier | Description |
ifIndex | 1.3.6.1.2.1.2.2.1.1 | 端口索引 |
ifDescr | 1.3.6.1.2.1.2.2.1.2 | 端口描述 |
ifType | 1.3.6.1.2.1.2.2.1.3 | 端口類型 |
ifMtu | 1.3.6.1.2.1.2.2.1.4 | 端口最大傳輸包字節(jié)數(shù) |
ifSpeed | 1.3.6.1.2.1.2.2.1.5 | 端口速度 |
ifPhysAddress | 1.3.6.1.2.1.2.2.1.6 | 端口物理地址 |
ifAdminStatus | 1.3.6.1.2.1.2.2.1.7 | 端口管理狀態(tài) |
ifOperStatus | 1.3.6.1.2.1.2.2.1.8 | 端口操作狀態(tài) |
ifInOctets | 1.3.6.1.2.1.2.2.1.10 | 端口接收字節(jié)數(shù) |
ifInUcastPkts | 1.3.6.1.2.1.2.2.1.11 | 端口接收非廣播包數(shù) |
ifInNUcastPkts | 1.3.6.1.2.1.2.2.1.12 | 端口接收廣播包數(shù) |
ifInDiscards | 1.3.6.1.2.1.2.2.1.13 | 端口接收數(shù)據(jù)包丟棄數(shù) |
ifInErrors | 1.3.6.1.2.1.2.2.1.14 | 端口接收數(shù)據(jù)包錯誤數(shù) |
ifInUnknownProtos | 1.3.6.1.2.1.2.2.1.15 | 端口接收未知協(xié)議數(shù)據(jù)包數(shù) |
ifOutOctets | 1.3.6.1.2.1.2.2.1.16 | 端口發(fā)送字節(jié)數(shù) |
ifOutUcastPkts | 1.3.6.1.2.1.2.2.1.17 | 端口發(fā)送非廣播包數(shù) |
ifOutNUcastPkts | 1.3.6.1.2.1.2.2.1.18 | 端口發(fā)送廣播包數(shù) |
ifOutDiscards | 1.3.6.1.2.1.2.2.1.19 | 端口發(fā)送數(shù)據(jù)包丟棄數(shù) |
ifOutErrors | 1.3.6.1.2.1.2.2.1.20 | 端口發(fā)送數(shù)據(jù)包錯誤數(shù) |
ifOutQLen | 1.3.6.1.2.1.2.2.1.21 | 端口發(fā)送隊列長度 |
Zabbix中開始配置SNMP前,請先確定Zabbix server已經(jīng)打開SNMP監(jiān)控的功能。Zabbix server啟動時會在日志文件中列出Zabbixserver的功能列表,如下所示:
911:20160218:103649.120 Starting Zabbix Server. Zabbix 3.0.1 (revision58734).
911:20160218:103649.160 ****** Enabled features ******
911:20160218:103649.160 SNMPmonitoring: YES
911:20160218:103649.160 IPMI monitoring: YES
911:20160218:103649.160 Web monitoring: YES
911:20160218:103649.160 VMware monitoring: YES
911:20160218:103649.160 SMTP authentication: YES
911:20160218:103649.160 Jabber notifications: YES
911:20160218:103649.160 Ez Texting notifications: YES
911:20160218:103649.160 ODBC: YES
911:20160218:103649.160 SSH2 support: YES
911:20160218:103649.160 IPv6 support: YES
911:20160218:103649.160 TLS support: YES
911:20160218:103649.160 ******************************
911:20160218:103649.160 using configuration file:/etc/zabbix/zabbix_server.conf
如果沒有發(fā)現(xiàn)SNMP monitoring啟用的信息,那你需要安裝Zabbixserver,如果你使用源碼編譯安裝,需要使用編譯配置選項 --with-net-snmp。
Zabbix中進(jìn)行SNMP監(jiān)控時只使用UDP協(xié)議,并在一次請求中可以查詢多個值,不論是常規(guī)的SNMPitems、dynamic indexes(動態(tài)索引)SNMP items,還是SNMPlow-level discovery rules,這在處理大量的SNMP時可以提供效率。通過設(shè)置主機(jī)的SNMP Interfaces的選項Use bulkrequests允許或禁用批量查詢。如下圖13-4所示。
圖 13-4
在單個接口中具有相同參數(shù)的所有SNMP 監(jiān)控項會以設(shè)置的時間間隔同時查詢,對于常規(guī)的SNMPitems和dynamic indexes SNMPitems來說pollers會同時處理128個監(jiān)控項,而SNMP low-leveldiscovery rules會單獨進(jìn)行處理,有兩種類型的操作在查詢時完成:收集多個指定的對象和遍歷OID樹。其中收集是指一個GetRequest-PDU可以綁定最多128個變量,遍歷是指在SNMP v1中使用GetNextRequest-PDU,SNMP v2或SNMP v3中使用帶有max-repetitions字段的GetBulkRequest,可以綁定最多128個變量。
因此,批量處理每個SNMP 監(jiān)控項有以下好處:
常規(guī)的SNMP 監(jiān)控項收集數(shù)據(jù)的性能得到提升。
Dynamic indexes(動態(tài)索引)SNMP監(jiān)控項收集數(shù)據(jù)和遍歷數(shù)據(jù)的性能得到提升。
SNMP low-level discovery rules遍歷數(shù)據(jù)的性能得到提升。
但是從技術(shù)上來講,并不是所有的設(shè)備都能返回每個請求的128個值,有些設(shè)備能返回某些響應(yīng)值,有些設(shè)備返回錯誤代碼 tooBig(1)或什么響應(yīng)都沒有。為了確定對設(shè)備查詢對象的最佳數(shù)目,Zabbix使用了一些策略,一開始在查詢請求中只查詢一個值,如果成功了在查詢請求中查詢2個值,如果成功了在查詢請求中查詢3個值,并繼續(xù)同樣的查詢對象的數(shù)量乘以1.5,進(jìn)行查詢。按查詢數(shù)量的大小順序為:1、2、3、4、6、9、13、19、28、42、63、94、128。當(dāng)設(shè)備拒絕返回正確的響應(yīng)時(如查詢42個變量),Zabbix或做兩件事:
當(dāng)前批量查詢的item減半,也就是查詢21個變量。如果設(shè)備正常的返回值,那么在絕大多數(shù)情況下應(yīng)該沒有問題,因為我們知道查詢28個變量是沒有問題的,21要明顯小于28。如果item減半后還是不能正常返回值,那就一個一個的回退查詢的變量數(shù),直到正常返回值。
Zabbix在后續(xù)的查詢中以上次查詢成功的變量數(shù)(我們的例子是28)進(jìn)行查詢,并繼續(xù)增大請求查詢變量的數(shù)量(每次加1),直到達(dá)到上限。例如,假設(shè)最大響應(yīng)的是32個變量。后續(xù)請求將按照29、30、31、32和33進(jìn)行查詢,最好一個請求會失?。?3個變量),Zabbix將永遠(yuǎn)不會再發(fā)出綁定33個變量的請求。在這個設(shè)備上Zabbix的SNMP 查詢最多綁定32個變量。
當(dāng)Zabbix server 或 proxy server接收到一個不正確的SNMP響應(yīng)時會在日志文件中增加類似下面的內(nèi)容:
SNMP responsefrom host "gateway" does not contain all of the requested variablebindings
雖然這個信息并沒有涵蓋所有有問題的情況,但至少有一點就是該主機(jī)的SNMP接口中的選項 Use bulk requests應(yīng)該被禁用。
使用SNMP監(jiān)控設(shè)備時,常規(guī)的SNMP 監(jiān)控項可按下面的步驟配置:
1、 創(chuàng)建主機(jī)并添加SNMP Interfaces??梢允褂肸abbix中提供的Template SNMP Generic模板自動的添加收集設(shè)備基本信息的監(jiān)控項。
2、 確定監(jiān)控的OID。
通過MIB Browser或snmpwalk查找并確定需要監(jiān)控的OID,例如我們要監(jiān)控交換的某個千兆端口的流量,通過snmpwalk查找 GigabitEthernet0/1接口的index是10101。
# snmpwalk -v 2c -c public 10.60.0.19 IF-MIB::ifDescr
IF-MIB::ifDescr.10101 = STRING: GigabitEthernet0/1
IF-MIB::ifDescr.10102 = STRING: GigabitEthernet0/2
IF-MIB::ifDescr.10103 = STRING: GigabitEthernet0/3
IF-MIB::ifDescr.10104 = STRING: GigabitEthernet0/4
IF-MIB::ifDescr.10105 = STRING: GigabitEthernet0/5
IF-MIB::ifDescr.10106 = STRING: GigabitEthernet0/6
IF-MIB::ifDescr.10107 = STRING: GigabitEthernet0/7
…
獲得GigabitEthernet0/1接口出口流量的OID是.1.3.6.1.2.1.2.2.1.16.10101。
# snmpwalk -v 2c -On -c qhdpublic 10.60.0.19IF-MIB::ifOutOctets.10101
.1.3.6.1.2.1.2.2.1.16.10101 =Counter32: 3619738552
3、 創(chuàng)建監(jiān)控項,使用SNMPv2 agent監(jiān)控方式,SNMP OID為.1.3.6.1.2.1.2.2.1.16.10101。
在設(shè)備的OID樹中,有些管理對象的OID經(jīng)常會用到index,例如網(wǎng)絡(luò)接口,使用相同的index關(guān)聯(lián)到網(wǎng)絡(luò)接口的不同對象上。就像下面snmpwalk輸出的一樣。
# snmpwalk -v 2c -c public 10.60.0.19 .1.3.6.1.2.1.2.2.1
IF-MIB::ifIndex.1 = INTEGER: 1
IF-MIB::ifIndex.5001 = INTEGER: 5001
IF-MIB::ifIndex.5002 = INTEGER: 5002
IF-MIB::ifIndex.5003 = INTEGER: 5003
IF-MIB::ifIndex.10101 = INTEGER: 10101
IF-MIB::ifIndex.10102 = INTEGER: 10102
...
IF-MIB::ifDescr.1 = STRING: Vlan1
IF-MIB::ifDescr.5001 = STRING: Port-channel1
IF-MIB::ifDescr.5002 = STRING: Port-channel2
IF-MIB::ifDescr.5003 = STRING: Port-channel3
IF-MIB::ifDescr.10101 = STRING: GigabitEthernet0/1
IF-MIB::ifDescr.10102 = STRING: GigabitEthernet0/2
...
IF-MIB::ifType.1 = INTEGER: propVirtual(53)
IF-MIB::ifType.5001 = INTEGER: propVirtual(53)
IF-MIB::ifType.5002 = INTEGER: propVirtual(53)
IF-MIB::ifType.5003 = INTEGER: propVirtual(53)
IF-MIB::ifType.10101 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.10102 = INTEGER: ethernetCsmacd(6)
...
IF-MIB::ifMtu.1 = INTEGER: 1500
IF-MIB::ifMtu.5001 = INTEGER: 1500
IF-MIB::ifMtu.5002 = INTEGER: 1500
IF-MIB::ifMtu.5003 = INTEGER: 1500
IF-MIB::ifMtu.10101 = INTEGER: 1500
IF-MIB::ifMtu.10102 = INTEGER: 1500
...
IF-MIB::ifSpeed.1 = Gauge32: 1000000000
IF-MIB::ifSpeed.5001 = Gauge32: 2000000000
IF-MIB::ifSpeed.5002 = Gauge32: 2000000000
IF-MIB::ifSpeed.5003 = Gauge32: 1000000000
IF-MIB::ifSpeed.10101 = Gauge32: 1000000000
IF-MIB::ifSpeed.10102 = Gauge32: 1000000000
...
IF-MIB::ifPhysAddress.1 = STRING: b0:7d:47:be:ea:c0
IF-MIB::ifPhysAddress.5001 = STRING: b0:7d:47:be:ea:c2
IF-MIB::ifPhysAddress.5002 = STRING: b0:7d:47:be:ea:c3
IF-MIB::ifPhysAddress.5003 = STRING: b0:7d:47:be:ea:c4
IF-MIB::ifPhysAddress.10101 = STRING: b0:7d:47:be:ea:c2
IF-MIB::ifPhysAddress.10102 = STRING: b0:7d:47:be:ea:c3
...
IF-MIB::ifAdminStatus.1 = INTEGER: down(2)
IF-MIB::ifAdminStatus.5001 = INTEGER: up(1)
IF-MIB::ifAdminStatus.5002 = INTEGER: up(1)
IF-MIB::ifAdminStatus.5003 = INTEGER: up(1)
IF-MIB::ifAdminStatus.10101 = INTEGER: up(1)
IF-MIB::ifAdminStatus.10102 = INTEGER: up(1)
...
從上面的數(shù)據(jù)你可以看到每個網(wǎng)絡(luò)接口都有很多OID,每個OID表示網(wǎng)絡(luò)接口不同的指標(biāo),比如說接口的名稱、類型、物理地址等。你會發(fā)現(xiàn)不同的OID都是通過相同的index關(guān)聯(lián)起來。例如第一個千兆接口的名稱是GigabitEthernet0/1的物理地址是 b0:7d:47:be:ea:c2,狀態(tài)是up(1),它的index是10101。
為了監(jiān)控同一網(wǎng)絡(luò)接口的不同指標(biāo),你可以創(chuàng)建不同的監(jiān)控項,在SNMP OID字段中輸入完成的OID。這種方法沒有任何問題,但在實際環(huán)境中使用index會有些問題,原因就是index會因為軟件或硬件的升級發(fā)生變化,造成配置的不一致。為了解決這個問題,Zabbix提供了動態(tài)索引的方法,即使index值發(fā)生變化也不影響對監(jiān)控項的監(jiān)控。
使用dynamic indexes SNMP OID的語法如下:
<OID ofdata>["index","<base OID ofindex>","<string to search for>"]
語法中各部分的含義如下:
OID of data:item中定義的需要查詢的OID。
Index:處理的方法,當(dāng)前只支持這一種方法。Index是指搜索index并將其追加到OID。
Base OID of index:將按照該OID查找其對應(yīng)的index值。
string to search for:查找時使用該字符串進(jìn)行匹配,區(qū)分大小寫。
例如你想監(jiān)控GigabitEthernet0/1接口的 ifInOctets,按照語法可以定義為:
ifInOctets["index","ifDescr","GigabitEthernet0/1"]
可以理解為在ifDescr中匹配查找GigabitEthernet0/1接口,并或的該接口在ifDescr中index值,然后把收集的index值追加到ifInOctets的后面,從而收集GigabitEthernet0/1接口的ifInOctets值。
當(dāng)使用dynamic indexes時,Zabbix會接收和緩存索引OID的整個SNMP表,通過緩存可以很快的發(fā)現(xiàn)索引的OID,如果以后其他監(jiān)控項查詢相同索引OID時,直接從緩存中查找,不需要在去查詢監(jiān)控主機(jī)。
隨后在接收監(jiān)控項的數(shù)據(jù)時會驗證index是否變化,如果index沒有發(fā)送變化,會繼續(xù)使用該值查詢,如果index發(fā)送變化,Zabbix會重建緩存,每個poller會再次遍歷索引OID的SNMP表。
在Zabbix中,每個poller進(jìn)程都有自己的緩存。
創(chuàng)建SNMP OIDs 的發(fā)現(xiàn)規(guī)則時,不像定義文件系統(tǒng)或網(wǎng)絡(luò)接口的發(fā)現(xiàn)規(guī)則,不使用snmp.discovery這個Key,使用SNMP agnet監(jiān)控方式就可以,在SNMPOID字段中定義需要發(fā)現(xiàn)的OIDs,格式為 discovery[{#MACRO1}, oid1, {#MACRO2}, oid2, …,]。
{#MACRO1}、{#MACRO2} … 是所有有效的宏變量名稱,oid1、oid2 … 用來生成宏變量的值。在discovery 中系統(tǒng)默認(rèn)建立了一個名稱為 {#SNMPINDEX}的宏變量,是用來為discovery OID建立index,發(fā)現(xiàn)的結(jié)果用{#SNMPINDEX}進(jìn)行分組。
通過下面的例子可以幫助你更好的了解。先使用snmpwalk從交換機(jī)收集相關(guān)數(shù)據(jù)。
# snmpwalk -v 2c -OT -c public 10.60.0.19 IF-MIB::ifDescr
IF-MIB::ifDescr.1 = STRING: Vlan1
IF-MIB::ifDescr.10101 = STRING: GigabitEthernet0/1
IF-MIB::ifDescr.10102 = STRING: GigabitEthernet0/2
IF-MIB::ifDescr.10103 = STRING: GigabitEthernet0/3
# snmpwalk -v 2c -OT -c public 10.60.0.19 IF-MIB::ifPhysAddress
IF-MIB::ifPhysAddress.1 = STRING: b0:7d:47:be:ea:c0
IF-MIB::ifPhysAddress.10101 = STRING: b0:7d:47:be:ea:c2
IF-MIB::ifPhysAddress.10102 = STRING: b0:7d:47:be:ea:c3
IF-MIB::ifPhysAddress.10103 = STRING: b0:7d:47:be:ea:c4
然后創(chuàng)建發(fā)現(xiàn)規(guī)則時在SNMP OID字段中輸入:
discovery[{#IFDESCR}, ifDescr, {#IFPHYSADDRESS}, ifPhysAddress]
運行發(fā)現(xiàn)規(guī)則后,得到以下結(jié)果:
{
"data": [
{
"{#SNMPINDEX}":"1",
"{#IFDESCR}": " Vlan1",
"{#IFPHYSADDRESS}": " b0:7d:47:be:ea:c0"
},
{
"{#SNMPINDEX}": "2",
"{#IFDESCR}": " GigabitEthernet0/1",
"{#IFPHYSADDRESS}": " b0:7d:47:be:ea:c2"
},
{
"{#SNMPINDEX}":"3",
"{#IFDESCR}": " GigabitEthernet0/2",
"{#IFPHYSADDRESS}":" b0:7d:47:be:ea:c3"
},
{
"{#SNMPINDEX}":"4",
"{#IFDESCR}": " GigabitEthernet0/3",
"{#IFPHYSADDRESS}":" b0:7d:47:be:ea:c4"
}
]
}
如果指定的OID沒有返回值,在發(fā)現(xiàn)結(jié)果中會忽略相應(yīng)的macro,如下面的例子。
假設(shè)的數(shù)據(jù)如下:
ifDescr.1 "Interface #1"
ifDescr.2 "Interface #2"
ifDescr.4 "Interface #4"
ifAlias.1 "eth0"
ifAlias.2 "eth2"
ifAlias.3 "eth3"
ifAlias.5 "eth5"
然后創(chuàng)建發(fā)現(xiàn)規(guī)則時在SNMP OID字段中輸入:
discovery[{#IFDESCR},ifDescr, {#IFALIAS}, ifAlias]
運行發(fā)現(xiàn)規(guī)則后,得到以下結(jié)果:
{
"data": [
{
"{#SNMPINDEX}": 1,
"{#IFDESCR}": "Interface #1",
"{#IFALIAS}": "eth0"
},
{
"{#SNMPINDEX}": 2,
"{#IFDESCR}": "Interface #2",
"{#IFALIAS}": "eth2"
},
{
"{#SNMPINDEX}": 3,
"{#IFALIAS}": "eth3"
},
{
"{#SNMPINDEX}": 4,
"{#IFDESCR}":"Interface #4"
},
{
"{#SNMPINDEX}": 5,
"{#IFALIAS}": "eth5"
}
]
}
下面舉個實際的例子,首先創(chuàng)建發(fā)現(xiàn)規(guī)則,如下圖13-5所示。
圖 13-5
基于定義好的發(fā)現(xiàn)規(guī)則創(chuàng)建item原型,如下圖13-6所示。
圖 13-6
可以創(chuàng)建多個item原型,如下圖13-7所示。
圖 13-7
感謝各位的閱讀,以上就是“Zabbix 3.0監(jiān)控網(wǎng)絡(luò)設(shè)備有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Zabbix 3.0監(jiān)控網(wǎng)絡(luò)設(shè)備有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。