天天看點

Zabbix被動接收SNMP Trap資訊

一、Zabbix伺服器接收trap的工作流程

1. snmptrapd 收到trap
2.snmptrapd将trap傳遞給SNMPTT或調用Perl  trap接收器
3.SNMPTT或Perl trap接收器解析,格式化并将trap寫入檔案
4.Zabbix SNMP trap讀取并解析trap檔案
5.對于每個trap,Zabbix發現主機接口與接收的trap位址比對的所有“SNMP trap”監控項。請注意,在比對期間隻使用主機接口中標明的“IP”或“DNS”。
6.對于每個找到的監控項,将trap與“snmptrap[regexp]”中的regexp進行比較。 trap設定為all比對項的值。如果沒有找到比對的監控項,并且有一個“snmptrap.fallback”監控項,則将trap設定為該監控項的值。
7.如果trap未設定為任何監控項的值,Zabbix預設記錄未比對的trap。(通過管理 → 正常 → 其它中的“記錄未比對的SNMP trap(Log unmatched SNMP traps)”進行配置。)      

二、安裝配置snmptrapd

1、yum install -y net-snmp net-snmp-utils net-snmp-perl #安裝net-snmp及相關工具(裡面包含SNMPTrapd)

2、vim /etc/snmp/snmptrapd.conf

    authCommunity log,execute,net 團體名 #指定團體名

    traphandle default /usr/sbin/snmptthandler #指定snmptt為trap接收器,此時還沒安裝snmptt

3、systemctl start snmptrapd #啟動snmptrapd

4、systemctl enable snmptrapd #加入開機啟動項

5、交換機開啟snmp和snmptrap,并指定團體名和trap目标主機IP

6、tail -F /var/log/messages #打開并跟蹤日志

7、手動關閉交換機端口,觸發告警,驗證snmptrapd是否能正常接收trap

Zabbix被動接收SNMP Trap資訊

三、安裝配置snmptt

1、yum -y install epel-release #安裝EPRL源

2、yum -y install snmptt #安裝snmptt

3、systemctl start snmptt (啟動報錯:Could not load Perl module Sys::Syslog!)

4、systemctl status snmptt -l #檢視出錯資訊,缺少perl-syslog

5、yum -y install perl-Sys-Syslog #安裝perl-syslog

6、vim /etc/snmp/snmptt.ini #修改配置檔案

  date_time_format= %Y/%m/%d %H:%M:%S
  net_snmp_perl_enable = 1
  translate_log_trap_oid = 2 # 0:數字形式顯示OID,1:顯示OID名稱,2:顯示OID所屬子產品名及其名稱
  log_file = /var/log/snmptt/snmptt.log #預設      

7、mv /etc/snmp/snmptt.conf /etc/snmp/snmptt.conf.bak    #備份規則檔案

8、vim /etc/snmp/snmptt.conf    #自定義trap格式化規則

#比對Linkdown的規則EVENT LinkDown .1.3.6.1.6.3.1.1.5.3 "Status Events" Warning
FORMAT ZBXTRAP $aA LinkDown on interface $4.  Admin state: $2.  Operational state: $3
#比對Linkup的規則
EVENT LinkUp .1.3.6.1.6.3.1.1.5.4 "Status Events" Normal
FORMAT ZBXTRAP $aA Linkup on interface $4.  Admin state: $2.  Operational state: $3
# 預設規則,沒有其他規則比對上時,所有trap資訊都按此規則處理
EVENT general .* "General event" Normal
FORMAT ZBXTRAP $aA $1      

9、systemctl restart snmptt

10、tail -F /var/log/snmptt/snmptt.log   #打開并跟蹤snmptt日志

Zabbix被動接收SNMP Trap資訊

四、配置zabbix-server

1、vim /etc/zabbix/zabbix_server.conf

StartSNMPTrapper=1   #開啟SNMPTrapper功能
SNMPTrapperFile=/var/log/snmptt/snmptt.log   #指定snmptt日志檔案      

2、systemctl restart zabbix-server  #重新開機Zabbix服務

3、zabbix添加監控項

Zabbix被動接收SNMP Trap資訊

4.比對snmptt日志中,屬于IF-MIB子產品的告警(IF-MIB包含裝置接口相關的管理對象,告警節點包含linkUp和linkDown)

Zabbix被動接收SNMP Trap資訊

5.其餘沒比對上的,都比對到鍵值為fallback的監控項

Zabbix被動接收SNMP Trap資訊

6. 檢視擷取的trap資料

Zabbix被動接收SNMP Trap資訊

五、來源

1.官方文檔:https://www.zabbix.com/documentation/4.0/zh/manual/config/items/itemtypes/snmptrap

 2.轉載位址:https://cnblogs.com/zhenwei66/p/10483473.html