zabbix利用SNMPTrap接收交換機主動告警


zabbix接收trap的工作流程:

  1. snmptrapd 收到trap
  2. snmptrapd將trap傳遞給SNMPTT或調用Perl接收器
  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

 

二、安裝配置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-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添加監控項

匹配snmptt日志中,屬於IF-MIB模塊的告警(IF-MIB包含設備接口相關的管理對象,告警節點包含linkUp和linkDown)

 其余沒匹配上的,都匹配到鍵值為fallback的監控項

 查看獲取的trap數據

 

 


zabbix_snmptrap官方文檔

https://www.zabbix.com/documentation/3.4/zh/manual/config/items/itemtypes/snmptrap

https://www.zabbix.org/wiki/Start_with_SNMP_traps_in_Zabbix

snmptt官方文檔

http://www.snmptt.org/docs/snmptt.shtml


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM