【Zabbix】SNMPtrap實(shí)現(xiàn)主動(dòng)監(jiān)控的原理與安裝配置

工欲善其事,必先利其器。作為一款強(qiáng)大的開源軟件,Zabbix號稱“Monitor Everything”,其所依賴的,很大程度上便是SNMP的數(shù)據(jù)采集支持。SNMP 協(xié)議是用來管理設(shè)備的協(xié)議,目前SNMP已成為網(wǎng)絡(luò)管理領(lǐng)域中事實(shí)上的工業(yè)標(biāo)準(zhǔn),并被廣泛支持和應(yīng)用,大多數(shù)網(wǎng)絡(luò)管理系統(tǒng)和平臺都是基于SNMP的。如果 NMS( 網(wǎng)管系統(tǒng) ) 需要查詢被管理設(shè)備的狀態(tài),則需要通過 SNMP的get 操作獲得設(shè)備的狀態(tài)信息。但由于告警信息一般是由受管服務(wù)器進(jìn)行主動(dòng)告警,這時(shí)候就不能通過管理方主動(dòng)使用snmpget來進(jìn)行,而是由受管服務(wù)器通過SNMPTRAP進(jìn)行。

一、什么是SNMPTRAP

SNMP trap(SNMP 陷阱):某種入口,到達(dá)該入口會使SNMP被管設(shè)備主動(dòng)通知SNMP管理器,而不是等待SNMP管理器的再次輪詢。

SNMP Trap 是 SNMP的一部分,當(dāng)被監(jiān)控段出現(xiàn)特定事件,可能是性能問題,甚至是網(wǎng)絡(luò)設(shè)備接口宕掉等,代理端會給管理站發(fā)告警事件。假如在特定事件出現(xiàn)的時(shí)刻,不是由 Agent 主動(dòng)通知 NMS,那么NMS 必須不斷地對 Agent 進(jìn)行輪詢。這是非常浪費(fèi)計(jì)算資源的方法,正如人們用中斷通知 CPU 數(shù)據(jù)的到達(dá),而不是讓 CPU 進(jìn)行輪詢一樣。Trap 通知是更加合理的選擇。用一句話來說的話,SNMP Trap 就是被管理設(shè)備主動(dòng)發(fā)送消息給 NMS 的一種機(jī)制。

二、SNMPTRAP功能特點(diǎn)

1、事件驅(qū)動(dòng),第一時(shí)間收到設(shè)備故障告警

以事件為驅(qū)動(dòng),由被監(jiān)控的主機(jī)、網(wǎng)絡(luò)設(shè)備、應(yīng)用在發(fā)生故障時(shí)向NMS發(fā)送SNMP Trap,通過對接收到的SNMP Trap進(jìn)行翻譯和展現(xiàn),以最快速度向管理人員發(fā)送告警。SNMP Trap不同于SNMP的主動(dòng)采集,SNMP采集服務(wù)器按照固定的時(shí)間間隔,由網(wǎng)管系統(tǒng)以詢問的方式,采集被監(jiān)控端性能指標(biāo),因此發(fā)現(xiàn)被監(jiān)控端性能問題的快慢取決于采集的頻率間隔。而SNMP Trap是以事件為驅(qū)動(dòng),在被監(jiān)控端設(shè)置陷阱,一旦被監(jiān)控端設(shè)備出現(xiàn)相關(guān)問題,立刻發(fā)送SNMP Trap,因此能夠在最短的時(shí)間內(nèi)發(fā)現(xiàn)故障,避免因?yàn)樵O(shè)備故障帶來的經(jīng)濟(jì)損失。

2、提供SNMPTrap的接收,并通過對Trap信息翻譯,展現(xiàn)事件

支持設(shè)備,主機(jī)和應(yīng)用的SNMP Trap信息,從被動(dòng)變?yōu)橹鲃?dòng),全面監(jiān)控IT系統(tǒng)。通過對SNMP Trap的翻譯和展現(xiàn),一旦某個(gè)IT組件出現(xiàn)問題,可以在短時(shí)間之內(nèi),即可收到故障信息,滿足企業(yè)的快速發(fā)現(xiàn)問題的需要。

通過SNMPTrap的接收規(guī)則定義,管理員可以過濾非重要設(shè)備的Trap信息,也可以過濾被監(jiān)控設(shè)備的非重要故障信息,幫助管理員在第一時(shí)間收到真正需要的管理信息。

3、定制SNMPTrap告警規(guī)則觸發(fā)告警,提供多種方式發(fā)送告警信息

用戶通過管理端定制需要告警的SNMP Trap信息,針對特定SNMP Trap事件通過郵件、短信、語音、微信等方式向相關(guān)人員發(fā)送報(bào)警,幫助管理人員快速收到IT系統(tǒng)故障信息。

4、支持事件導(dǎo)出

匯總特定時(shí)間內(nèi)特定SNMPTrap事件,同時(shí)可以以Excel格式導(dǎo)出事件數(shù)據(jù),便于管理人員對故障信息進(jìn)行統(tǒng)計(jì)和分析。

5、支持各類設(shè)備廠家MIB庫的導(dǎo)入

雖然國內(nèi)各種網(wǎng)絡(luò)設(shè)備都支持SNMP Trap,但是各個(gè)廠家的MIB庫并不能很好的支持公共標(biāo)準(zhǔn),因此,很多監(jiān)控系統(tǒng)都支持私有MIB庫的導(dǎo)入,確保能夠全面兼容各個(gè)廠家設(shè)備的SNMP Trap信息。

三、SNMPTRAP工作流程

1、Agent端

A、編寫MIB文件,確定好TRAP名稱等信息(一般MIB設(shè)備廠商會提供)

B、命令方式:發(fā)送各種TRAP命令(Manager地址后面一定要加端口號162),在Manager端看反應(yīng)結(jié)果,在Agent端無反應(yīng)

C、自動(dòng)觸發(fā):配置snmpd.conf設(shè)置觸發(fā)TRAP,系統(tǒng)發(fā)生某類錯(cuò)誤時(shí)會自動(dòng)觸發(fā)相應(yīng)類型的TRAP,發(fā)送給Manager

D、程序方式:一部份TRAP需要寫C語言程序,用相應(yīng)的api(send_easy_trap或send_v2trap)發(fā)送

2、Manager端

A、配置snmptrapd.conf文件,設(shè)置訪問權(quán)限

B、將MIB文件導(dǎo)入到mibs文件夾中

C、用perl等腳本語言編寫處理trap的程序

D、配置snmptrapd.conf文件,添加traphandler項(xiàng),將不同的TRAP對應(yīng)到不同的處理程序上

3、流程圖

圖中在測試機(jī) M1 上啟動(dòng) snmptrapd 進(jìn)程,并且在 UDP 162 端口上監(jiān)聽 SNMP Trap 信息,一旦收到 Trap,snmptrapd 將所接收到的 Trap 信息內(nèi)容打印到一個(gè)本地的文本文件中。 機(jī)器 M2 模擬發(fā)送 SNMP Trap 的設(shè)備,將調(diào)用 net-snmp 的命令行程序 snmptrap 發(fā)送一個(gè) Trap。

四、SNMPTRAP在ZABBIX上實(shí)現(xiàn)過程

1、設(shè)置ZABBIX接收SNMP Trap

1)、安裝依賴的程序包

yum install -y net-snmp-utils net-snmp-perl

2)、下載和解壓Zabbix源碼包

tar -zxvf zabbix-2.2.1.tar.gz

3)、從源碼文件中復(fù)制腳本和添加執(zhí)行權(quán)限

cp ./zabbix-2.2.1/misc/snmptrap/zabbix_trap_receiver.pl /usr/binchmod +x /usr/bin/zabbix_trap_receiver.pl

4)、設(shè)置Trap接收器和團(tuán)體名稱

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腳本中設(shè)置的相同)

6)、重啟zabbix_server服務(wù)使配置生效

/etc/init.d/zabbix-server restart

7)、設(shè)置SNMP MIBs

MIBs默認(rèn)在系統(tǒng)目錄/usr/share/snmp/mibs下,添加MIB名稱到/etc/snmp/snmp.conf配置文件中(如果不存在則手動(dòng)新建配置文件),它們將被Net-SNMP進(jìn)程用來解析trap OID值。

例:mibs +JUNIPER-MIB:JUNIPER-FABRIC-CHASSIS:BGP4-MIB

8)、重啟snmptrapd服務(wù)

/etc/init.d/snmptrapd restart

2、配置ZABBIX

1)、創(chuàng)建"SNMP trap fallback"模板和"SNMP trap fallback"監(jiān)控項(xiàng):

監(jiān)控項(xiàng)名稱: SNMP trap fallback

類型: SNMP trap

鍵值: snmptrap.fallback

數(shù)據(jù)類型: Log

注:該監(jiān)控項(xiàng)用來收集所有不匹配的trap

2)、創(chuàng)建觸發(fā)器以通知管理員關(guān)于新的不匹配trap:

觸發(fā)器名稱: Unmatched SNMP trap received from {HOST.NAME}

表達(dá)式: {Template SNMP trap fallback:snmptrap.fallback.nodata(300)}=0

3)、創(chuàng)建"Template SNMP traps"模板并鏈接到"Template SNMP trap fallback"

在"Template SNMP traps"模板中,為trap創(chuàng)建需要的監(jiān)控項(xiàng). key值使用snmptrap[regex]格式,

例:

Key: snmptrap["SNMPv2-MIB::coldStart"]

替代OID值(數(shù)字或文本),您可以使用任何從一個(gè)trap文本中的單詞/短語:

Key: snmptrap["No route to host"]

在這種情況下,Zabbix從匹配的地址中捕獲所有SNMP Trap包含"No route to host"。

4)、為監(jiān)控項(xiàng)創(chuàng)建觸發(fā)器

在前面創(chuàng)建的模板,為必要的項(xiàng)目(Trap)創(chuàng)建觸發(fā)器.

這里涉及一些變量,以前面例子中的監(jiān)控項(xiàng)為例創(chuàng)建觸發(fā)器:

表達(dá)式:?

{Template SNMP traps:snmptrap["SNMPv2-MIB::coldStart"].nodata(5m)}=0

意思是如果5分鐘后,trap接收和自動(dòng)返回OK狀態(tài),則觸發(fā)器進(jìn)入警告狀態(tài)

5)、查看ZABBIX獲取到的數(shù)據(jù)

五、總結(jié)

SNMP Trap是一種事件驅(qū)動(dòng)型的監(jiān)控方式,避免了監(jiān)控系統(tǒng)的資源浪費(fèi),提高了警告的及時(shí)性和準(zhǔn)確性。目前很多監(jiān)控系統(tǒng)都提供SNMP Trap的監(jiān)控方式,主動(dòng)型監(jiān)控是比較推薦的選擇方式。



原文地址

SNMPtrap實(shí)現(xiàn)主動(dòng)監(jiān)控的原理與安裝配置

(出處: 樂維_一站式運(yùn)維監(jiān)控管理平臺)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、snmp(簡單網(wǎng)絡(luò)管理協(xié)議simple network management protocol) SNMP協(xié)議...
    Net夜風(fēng)閱讀 1,981評論 0 1
  • Zabbix簡介 Zabbix官方網(wǎng)站Zabbix中文文檔 本文系統(tǒng)環(huán)境是CentOS7x86_64, Zabbi...
    Zhang21閱讀 8,312評論 0 37
  • 自定義key網(wǎng)絡(luò)發(fā)現(xiàn)Web監(jiān)控主動(dòng)檢測基于SNMP監(jiān)控基于JMX監(jiān)控Zabbix ProxyZabbix調(diào)優(yōu) 一、...
    哈嘍別樣閱讀 1,494評論 0 1
  • 玩了 我去
    plantAtree_dAp閱讀 160評論 0 0
  • 丁丁的幼兒園生活盡管起步晚,但是總算是順利完成了,等丁丁讀完幼兒園后已經(jīng)七歲半了,按照年齡和她的認(rèn)知能力,她...
    碎雨花閱讀 887評論 2 4

友情鏈接更多精彩內(nèi)容