一、問題:設備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
如果以上提到的配置參數有誤和網絡snmp不可達,則會出現如下情況:
如果設備正常則會出現以下情況:
二、問題:SNMP不穩定
ZABBIX監控SNMP不穩定,一會通一會不通
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%以上則有問題)
2.物理網絡防火墻連接數限制(不是操作系統防火墻),可以通過在防火墻中查看日志和連接數上限,進而放寬連接數
3.如果無法開放物理防火墻的連接數則要在監控對象所在的網段內搭建zabbix proxy代監控即可解決連接數問題
4.如果2、3點都不允許操作則可考慮:
– 降低snmp監控項的采集頻率;
– 刪除、過濾無用監控項(比如正則過濾無用的端口);
– 自動發現端口監控原型禁用,等發現完成后根據人工篩選啟用某些端口監控項;
– 采用腳本方式一次獲取所需要的MIB表的信息(一般只需要做端口的),然后在本地json化再傳給zabbix
三、Nmap原理
端口掃描是指某些別有用心的人發送一組端口掃描消息,試圖以此侵入某臺計算機,并了解其提供的計算機網絡服務類型(這些網絡服務均與端口號相關),但是端口掃描不但可以為***所利用,同時端口掃描還是網絡安全工作者的必備的利器,通過對端口的掃描,了解網站中出現的漏洞以及端口的開放情況,對網站安全方面有著不可或缺的貢獻,是你學習網絡安全的第一門課程的首選
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功能。
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 installnet-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時才需要。