Zabbix SNMP異常問題排錯方法

一、問題:設備SNMP不通

網絡設備SNMP不通Timeout while connecting to “192.168.1.99:161”.

1.1檢查配置
1.管理IP是否對應上

2.對象團體名是否正確

3.監控項snmp版本是否對應上

4.根據以上3點和網絡設備的配置信息對照是否正確,因爲網絡設備品牌很多配置方式都是五花八門,所以這裏不做演示
5.網絡設備可能配置snmp時使用了ACL控制,這邊要檢查IP是否指向Zabbix
6.有些網絡設備不是配置了snmp信息就能生效的,需要在管理接口(interface)上查驗是否啓用snmp協議
7.看清楚配置的設備是否支持snmp(snmp讀權限爲snmp get,寫權限爲snmp set它們端口爲UDP161用於被動請求性能數據和發送執行命令),有些設備只支持snmp trap(端口UDP162 用於主動推送告警)
1.2檢查網絡
1.網絡策略沒放通,可通過端口掃描工具nmap在Zabbix主機上來探測目標地址的路徑是否通暢(注意:這裏很多人會用ping和telnet來做通斷探測,存在很大誤區,首先ping是ICMP協議只能證明路由是否可達和snmp是否通訊沒有關聯何況有些網絡環境是禁ping的,telnet探測的端口都是TCP端口,而snmp使用的是UDP端口,所以也不能作爲端口是否開放的判斷依據)

yum install -y nmap

nmap -sU 192.168.1.99 -p 161


Nmap參數說明:
-sU 表示使用UDP端口探測
IP:指定目的IP
-p 表示端口號
Nmap返回狀態說明:

2.Snmpwalk探測(如果探測正常,監控還是異常的話則更多的是zabbix web配置參數對不上的問題

yum -y install net-snmp-utils

snmpwalk -v 2c -c lwjkss 192.168.1.99 SNMPv2-MIB::sysDescr.0


snmpwalk使用參數,如下(這裏爲了簡介不使用V3版本):
snmpwalk -v 1或2c(代表SNMP版本) -c SNMP密碼 IP地址 OID(對象標示符)
–v:指定snmp的版本, 1或者2c,該參數必須有。
–c:指定連接設備SNMP讀密碼(團體名),該參數必須有(連接設備如果沒有修改默認的團體名則默認都是public)。
IP:指定要walk的設備的IP地址,該參數必須有。
OID:代表要獲取設備的指標oid,該參數不是必須的但爲了便於查驗還是要帶上(SNMPv2-MIB::sysDescr.0這個OID表示設備描述)。
如果以上提到的配置參數有誤和網絡snmp不可達,則會出現如下情況:

如果設備正常則會出現以下情況:

二、問題:SNMP不穩定

ZABBIX監控SNMP不穩定,一會通一會不通

1.2.2.1單個對象
如果該現象只是出現在單個對象中,其他對象採集沒有被影響,則:
1.設備問題,設備不支持大量請求
Zabbix服務器和代理守護進程在單個請求中查詢多個值的SNMP設備。這會影響各種SNMP監控項(常規SNMP項目,具有動態索引的SNMP項目和SNMP低級別發現),它使SNMP處理更加高效。 從Zabbix 2.4開始,它還爲每個接口提供了一個“使用批量請求”的設置,允許爲無法正確處理它們的設備禁用批量請求。
從Zabbix 2.2.7和Zabbix 2.4.2開始,Zabbix服務器和代理守護程序的日誌在收到不正確的SNMP響應時會打印類似以下內容:(雖然它們沒有涵蓋所有有問題的情況,但它們對於識別應禁用批量請求的各個SNMP設備非常有用。)
SNMP response from host “gateway” does not contain all of the requested variable bindings

去掉勾選即可
2.2全局對象
如果該情況發生後影響了其他監控對象的不穩定,則
1.進程不夠用,加大Zabbix 服務器的StartPollers的進程,可根據zabbix自監控圖形來判斷(平均75%以上則有問題)

編輯zabbix_server.conf文件:

2.物理網絡防火牆連接數限制(不是操作系統防火牆),可以通過在防火牆中查看日誌和連接數上限,進而放寬連接數
3.如果無法開放物理防火牆的連接數則要在監控對象所在的網段內搭建zabbix proxy代監控即可解決連接數問題
4.如果2、3點都不允許操作則可考慮:
降低snmp監控項的採集頻率;
刪除、過濾無用監控項(比如正則過濾無用的端口);
自動發現端口監控原型禁用,等發現完成後根據人工篩選啓用某些端口監控項;
採用腳本方式一次獲取所需要的MIB表的信息(一般只需要做端口的),然後在本地json化再傳給zabbix。

三、Nmap原理

端口掃描是指某些別有用心的人發送一組端口掃描消息,試圖以此侵入某臺計算機,並瞭解其提供的計算機網絡服務類型(這些網絡服務均與端口號相關),但是端口掃描不但可以爲黑客所利用,同時端口掃描還是網絡安全工作者的必備的利器,通過對端口的掃描,瞭解網站中出現的漏洞以及端口的開放情況,對網站安全方面有着不可或缺的貢獻,是你學習網絡安全的第一門課程的首選
1.2.3.3.1Nmap優點
目前在市面上主要的端口掃描工具是X_Scan、SuperScan、nmap,其中在這裏主推的是nmap,因爲nmap具有以下的這一些優點:
1、多種多樣的參數,豐富的腳本庫,滿足用戶的個人定製需求,其中腳本庫還提供了很多強大的功能任你選擇
2、強大的可移植性,基本上能在所有的主流系統上運行,而且代碼是開源的
3、詳細的文檔說明,和強大的社區團隊進行支持,方面新人上手

Nmap是一款開源免費的網絡發現(Network Discovery)和安全審計(Security Auditing)工具,但是nmap也是有一些缺點的,比如說上手較難,但是難上手是相對的,與其他達到這種功能性的軟件產品相比,還是比較容易上手的,但是這也不妨礙nmap成爲世界千萬安全專家列爲必備的工具之一,在其中的一些影視作品中《黑客帝國2》、《特警判官》中都有亮相
3.2Nmap端口狀態

open(開放的)
應用程序正在該端口接收TCP 連接或者UDP報文。發現這一點常常是端口掃描 的主要目標。安全意識強的人們知道每個開放的端口 都是攻擊的入口。攻擊者或者入侵測試者想要發現開放的端口。 而管理員則試圖關閉它們或者用防火牆保護它們以免妨礙了合法用戶。 非安全掃描可能對開放的端口也感興趣,因爲它們顯示了網絡上那些服務可供使用。

closed(關閉的)
關閉的端口對於Nmap也是可訪問的(它接受Nmap的探測報文並作出響應), 但沒有應用程序在其上監聽。 它們可以顯示該IP地址上(主機發現,或者ping掃描)的主機正在運行up 也對部分操作系統探測有所幫助。 因爲關閉的關口是可訪問的,也許過會兒值得再掃描一下,可能一些又開放了。 系統管理員可能會考慮用防火牆封鎖這樣的端口。 那樣他們就會被顯示爲被過濾的狀態,下面討論。

filtered(被過濾的)
由於包過濾阻止探測報文到達端口, Nmap無法確定該端口是否開放。過濾可能來自專業的防火牆設備,路由器規則 或者主機上的軟件防火牆。這樣的端口讓攻擊者感覺很挫折,因爲它們幾乎不提供 任何信息。有時候它們響應ICMP錯誤消息如類型3代碼13 (無法到達目標: 通信被管理員禁止),但更普遍的是過濾器只是丟棄探測幀, 不做任何響應。 這迫使Nmap重試若干次以訪萬一探測包是由於網絡阻塞丟棄的。 這使得掃描速度明顯變慢。

unfiltered(未被過濾的)
未被過濾狀態意味着端口可訪問,但Nmap不能確定它是開放還是關閉。 只有用於映射防火牆規則集的ACK掃描纔會把端口分類到這種狀態。 用其它類型的掃描如窗口掃描,SYN掃描,或者FIN掃描來掃描未被過濾的端口可以幫助確定 端口是否開放。

open|filtered(開放或者被過濾的)
當無法確定端口是開放還是被過濾的,Nmap就把該端口劃分成 這種狀態。開放的端口不響應就是一個例子。沒有響應也可能意味着報文過濾器丟棄 了探測報文或者它引發的任何響應。因此Nmap無法確定該端口是開放的還是被過濾的。 UDP,IP協議, FIN,Null,和Xmas掃描可能把端口歸入此類。

closed|filtered(關閉或者被過濾的)
該狀態用於Nmap不能確定端口是關閉的還是被過濾的。 它只可能出現在IPID Idle掃描中。

四、Snmpwalk的原理

snmpwalk是SNMP的一個工具,它使用SNMP的GETNEXT請求查詢指定OID(SNMP協議中的對象標識)入口的所有OID樹信息,並顯示給用戶。通過snmpwalk也可以查看支持SNMP協議(可網管)的設備的一些其他信息,比如cisco交換機或路由器IP地址、內存使用率等,也可用來協助開發SNMP功能。
1.2.3.4.4.1Snmpwalk使用
要使用snmpwalk,我們首先要安裝snmpwalk。snmpwalk沒有單獨的安裝包,它被包含在net-snmp軟件包中的,所以我們只需要安裝net-snmp軟件包就可以得到snmpwalk。
2.1 linux下安裝net-snmp
在linux下使用snmpwalk工具,我們必須要安裝net-snmp-utils這個軟件包。
注意:如果linux只安裝net-snmp的話,則不包含snmpwalk工具,如下:

yum -y install net-snmp-utils

命令參數如下:
–h:顯示幫助。
–v:指定snmp的版本, 1或者2c或者3。
–c:指定連接設備SNMP密碼。
–V:顯示當前snmpwalk命令行版本。
–r:指定重試次數,默認爲0次。
–t:指定每次請求的等待超時時間,單爲秒,默認爲3秒。
–l:指定安全級別:noAuthNoPriv|authNoPriv|authPriv。
–a:驗證協議:MD5|SHA。只有-l指定爲authNoPriv或authPriv時才需要。
–A:驗證字符串。只有-l指定爲authNoPriv或authPriv時才需要。
–x:加密協議:DES。只有-l指定爲authPriv時才需要。
–X:加密字符串。只有-l指定爲authPriv時才需要。

技術交流歡迎加入Q羣:177428068

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章