您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關什么是SNMPTRAP的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
作為一款強大的開源軟件,Zabbix號稱“Monitor Everything”,其所依賴的,很大程度上便是SNMP的數據采集支持。SNMP 協議是用來管理設備的協議,目前SNMP已成為網絡管理領域中事實上的工業標準,并被廣泛支持和應用,大多數網絡管理系統和平臺都是基于SNMP的。如果 NMS( 網管系統 ) 需要查詢被管理設備的狀態,則需要通過 SNMP的get 操作獲得設備的狀態信息。但由于告警信息一般是由受管服務器進行主動告警,這時候就不能通過管理方主動使用snmpget來進行,而是由受管服務器通過SNMPTRAP進行。
一、什么是SNMPTRAP
SNMP trap(SNMP 陷阱):某種入口,到達該入口會使SNMP被管設備主動通知SNMP管理器,而不是等待SNMP管理器的再次輪詢。
SNMP Trap 是 SNMP的一部分,當被監控段出現特定事件,可能是性能問題,甚至是網絡設備接口宕掉等,代理端會給管理站發告警事件。假如在特定事件出現的時刻,不是由 Agent 主動通知 NMS,那么NMS 必須不斷地對 Agent 進行輪詢。這是非常浪費計算資源的方法,正如人們用中斷通知 CPU 數據的到達,而不是讓 CPU 進行輪詢一樣。Trap 通知是更加合理的選擇。用一句話來說的話,SNMP Trap 就是被管理設備主動發送消息給 NMS 的一種機制。
二、SNMPTRAP功能特點
1、事件驅動,第一時間收到設備故障告警
以事件為驅動,由被監控的主機、網絡設備、應用在發生故障時向NMS發送SNMP Trap,通過對接收到的SNMP Trap進行翻譯和展現,以最快速度向管理人員發送告警。SNMP Trap不同于SNMP的主動采集,SNMP采集服務器按照固定的時間間隔,由網管系統以詢問的方式,采集被監控端性能指標,因此發現被監控端性能問題的快慢取決于采集的頻率間隔。而SNMP Trap是以事件為驅動,在被監控端設置陷阱,一旦被監控端設備出現相關問題,立刻發送SNMP Trap,因此能夠在最短的時間內發現故障,避免因為設備故障帶來的經濟損失。
2、提供SNMPTrap的接收,并通過對Trap信息翻譯,展現事件
支持設備,主機和應用的SNMP Trap信息,從被動變為主動,全面監控IT系統。通過對SNMP Trap的翻譯和展現,一旦某個IT組件出現問題,可以在短時間之內,即可收到故障信息,滿足企業的快速發現問題的需要。
通過SNMPTrap的接收規則定義,管理員可以過濾非重要設備的Trap信息,也可以過濾被監控設備的非重要故障信息,幫助管理員在第一時間收到真正需要的管理信息。
3、定制SNMPTrap告警規則觸發告警,提供多種方式發送告警信息
用戶通過管理端定制需要告警的SNMP Trap信息,針對特定SNMP Trap事件通過郵件、短信、語音、微信等方式向相關人員發送報警,幫助管理人員快速收到IT系統故障信息。
4、支持事件導出
匯總特定時間內特定SNMPTrap事件,同時可以以Excel格式導出事件數據,便于管理人員對故障信息進行統計和分析。
5、支持各類設備廠家MIB庫的導入
雖然國內各種網絡設備都支持SNMP Trap,但是各個廠家的MIB庫并不能很好的支持公共標準,因此,很多監控系統都支持私有MIB庫的導入,確保能夠全面兼容各個廠家設備的SNMP Trap信息。
三、SNMPTRAP工作流程
1、Agent端
A、編寫MIB文件,確定好TRAP名稱等信息(一般MIB設備廠商會提供)
B、命令方式:發送各種TRAP命令(Manager地址后面一定要加端口號162),在Manager端看反應結果,在Agent端無反應
C、自動觸發:配置snmpd.conf設置觸發TRAP,系統發生某類錯誤時會自動觸發相應類型的TRAP,發送給Manager
D、程序方式:一部份TRAP需要寫C語言程序,用相應的api(send_easy_trap或send_v2trap)發送
2、Manager端
A、配置snmptrapd.conf文件,設置訪問權限
B、將MIB文件導入到mibs文件夾中
C、用perl等腳本語言編寫處理trap的程序
D、配置snmptrapd.conf文件,添加traphandler項,將不同的TRAP對應到不同的處理程序上
3、流程圖
圖中在測試機 M1 上啟動 snmptrapd 進程,并且在 UDP 162 端口上監聽 SNMP Trap 信息,一旦收到 Trap,snmptrapd 將所接收到的 Trap 信息內容打印到一個本地的文本文件中。 機器 M2 模擬發送 SNMP Trap 的設備,將調用 net-snmp 的命令行程序 snmptrap 發送一個 Trap。
四、SNMPTRAP在ZABBIX上實現過程
1、設置ZABBIX接收SNMP Trap
1)、安裝依賴的程序包
yum install -y net-snmp-utils net-snmp-perl
2)、下載和解壓Zabbix源碼包
tar -zxvf zabbix-2.2.1.tar.gz
3)、從源碼文件中復制腳本和添加執行權限
cp ./zabbix-2.2.1/misc/snmptrap/zabbix_trap_receiver.pl /usr/binchmod +x /usr/bin/zabbix_trap_receiver.pl
4)、設置Trap接收器和團體名稱
vi /etc/snmp/snmptrapd.conf
# you can set multiple community names:
# authCommunity execute public
# authCommunity execute S7di@kjh8
authCommunity execute public
perl do "/usr/bin/zabbix_trap_receiver.pl"
5)、編輯zabbix_server.conf配置文件啟用SNMP Trap
vi /etc/zabbix/zabbix_server.conf
StartSNMPTrapper=1
SNMPTrapperFile=/tmp/zabbix_traps.tmp (注:必須跟zabbix_trap_receiver.pl腳本中設置的相同)
6)、重啟zabbix_server服務使配置生效
/etc/init.d/zabbix-server restart
7)、設置SNMP MIBs
MIBs默認在系統目錄/usr/share/snmp/mibs下,添加MIB名稱到/etc/snmp/snmp.conf配置文件中(如果不存在則手動新建配置文件),它們將被Net-SNMP進程用來解析trap OID值。
例:mibs +JUNIPER-MIB:JUNIPER-FABRIC-CHASSIS:BGP4-MIB
8)、重啟snmptrapd服務
/etc/init.d/snmptrapd restart
2、配置ZABBIX
1)、創建"SNMP trap fallback"模板和"SNMP trap fallback"監控項:
監控項名稱: SNMP trap fallback
類型: SNMP trap
鍵值: snmptrap.fallback
數據類型: Log
注:該監控項用來收集所有不匹配的trap
2)、創建觸發器以通知管理員關于新的不匹配trap:
觸發器名稱: Unmatched SNMP trap received from {HOST.NAME}
表達式: {Template SNMP trap fallback:snmptrap.fallback.nodata(300)}=0
3)、創建"Template SNMP traps"模板并鏈接到"Template SNMP trap fallback"
在"Template SNMP traps"模板中,為trap創建需要的監控項. key值使用snmptrap[regex]格式,
例:
Key: snmptrap["SNMPv2-MIB::coldStart"]
替代OID值(數字或文本),您可以使用任何從一個trap文本中的單詞/短語:
Key: snmptrap["No route to host"]
在這種情況下,Zabbix從匹配的地址中捕獲所有SNMP Trap包含"No route to host"。
4)、為監控項創建觸發器
在前面創建的模板,為必要的項目(Trap)創建觸發器.
這里涉及一些變量,以前面例子中的監控項為例創建觸發器:
表達式:
{Template SNMP traps:snmptrap["SNMPv2-MIB::coldStart"].nodata(5m)}=0
意思是如果5分鐘后,trap接收和自動返回OK狀態,則觸發器進入警告狀態
5)、查看ZABBIX獲取到的數據
感謝各位的閱讀!關于“什么是SNMPTRAP”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。