Protocol Data Unit 通訊協定資料單元 Ubuntu Cacti SNMP PDU 網路

Cacti整合SNMP Trap 設備告警自訂分類不漏接

2017-05-25
IT管理人員必須隨時掌握網路設備的運作情形,以便因應各種突發狀況,可以在Cacti上架設SNMP Traps Receiver藉此接收SNMP Traps,然後將相關訊息分類,就能夠即刻察覺任何的風吹草動。
管理者要觀測設備運作情形,對設備而言,可以分為主動及被動兩種方式。被動的方式是由管理者透過SNMP、Web GUI或CLI的方式查看設備目前的狀態,而主動的方式則是由設備自動發出設備訊息,常見方式有Syslog及SNMP Traps兩種方式。

本文將介紹的是如何在Cacti上架設SNMP Traps Receiver,將收到的SNMP Traps加以分類及進行後續處理。

了解相關背景知識

SNMP Traps是SNMP家族的成員,它屬於SNMP通訊協定資料單元(Protocol Data Unit,PDU)。在SNMP第一版中共有五種SNMP PDU型態(Types),可分為GetRequest、GetNextRequest、GetResponse、SetRequest及Traps。其他PDU在SNMP第二版加入,包含GETBULK REQUEST、INFORM。

常見的MRTG或RRDtool流量圖,就是透過GetRequest和GetResponse取得設備介面的累計流量,再計算時間差後繪製成流量圖。

SNMP Traps也有版本差異,在SNMP第三版可加入帳號、密碼的管控。在本文中為了提高相容性,不進行額外設定,而是讓它以SNMP第一版的運作模式執行。

Syslog可區分為不同的等級,管理者可設定在某些等級的訊息出現時才送至Syslog Server,Server再由收到的訊息判斷該如何處理,例如寄送郵件、發送簡訊、使用IM機器人通知管理者等。

但訊息的種類眾多容易疏漏,而設備預設等級的重要度可能與管理者預想的不同,例如線路斷線對於設備來說只是等級很低的訊息,但對於管理者而言是很急迫必須馬上處理的問題,因為這樣的落差,造成許多問題在剛發生時未受到重視而無法即時解決。

相對於Syslog而言,SNMP Traps可自行決定要發送的訊息類別,如此一來就能夠以針對管理者重視的訊息進行寄送,避免因為訊息過多而忽略了該正視的訊息。在圖1中以Cisco Router為例進行說明,若為Syslog,將無法再針對要監控的部分細分,而SNMP Traps則可針對設備環境中的各細項,例如風扇、電壓、溫度等項次進行告警。


▲圖1 SNMP Trap可自訂告警項次。

簡單來說,SNMP Trap引進了Trap Categories的概念,可針對不同的類別進行各細項的告警。

開始實作之前,請先準備好以下所列的工具:

‧ 作業系統:Ubuntu 14.04.2 LTS

‧ 相關套件及其版本:snmpd 5.7.2、snmptt 1.4-1、Cacti 0.8.8b、CaMM 1.5.3。

安裝snmpd,方可提供snmptrapd等相關套件,安裝snmptt則是為了將難以判讀的OID轉譯成方便管理人員判讀的MIB。而Cacti是管理CaMM所用的平台,CaMM則是SNMP Traps實際上的管理介面。

安裝及設定snmptrapd與snmptt

要在Cacti讀取SNMP Trap的訊息,必須先架設SNMP Trap Receiver,方可收取SNMP Trap訊息,再透過Cacti的Plugin讀取這些訊息。在Linux Server上,可以安裝並設定snmptrapd套件來收取SNMP Trap的訊息。

由於snmptrapd是屬於snmpd套件中的成員,因此必須先安裝snmpd:


安裝完成後,在「/etc/snmp/」資料夾內會自動產生相關設定檔。先檢查snmptrapd是否在執行中,發現目前只有snmpd運作中,如圖2所示:


▲圖2 確認snmptrapd是否正執行中。


從圖2可以看出目前snmptrapd並未執行,因此必須修改snmprapd.conf,再重新執行snmptrapd讓其正常運作。可以使用下列指令來查看如何設定,並查閱相關的範例:


根據自身的需求,將新增以下的設定內容:


在snmpTrapdAddr部分,協定預設值為UDP,而IP的部分自行代換為Server的IP,Port部分則預設為162,管理者視其需求進行調整。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!