本文以監控綠盟設備為例。
1.登錄被監控的設備的管理系統,配置snmptrap地址指向zabbix服務器或代理服務器。
snmptrap地址也叫陷阱。
2.驗證是否能在zabbix服務器或代理服務器上收到設備的trap信息。(可跳過,遇到問題后再檢查)
ip add
查看設備的網卡名稱
tcpdump -i ens160 src 192.166.16.8
查看ens160 網卡收到的IP為192.166.16.8的設備的數據包
效果如下圖:

沒有tcpdump命令的話,可以使用命令yum -y install tcpdump 進行安裝。
3.配置zabbix_trap_receiver.pl腳本
在zabbix 服務器或者代理服務器上,復制源碼目錄中的Perl腳本到 /usr/bin目錄下並賦予執行權限
再安裝net-snmp,命令如下:
cp `find / -name zabbix_trap_receiver.pl` /usr/bin chmod a+x /usr/bin/zabbix_trap_receiver.pl yum -y install net-snmp*
效果如下圖:

注意:如果最后snmptrapd啟動失敗,提示缺少/usr/share/snmp/snmp_perl_trapd.pl文件,原因是net-snmp相關的安裝包安裝太少,建議更換yum安裝源。
4.找到snmptrapd的配置文件並修改
vi /etc/snmp/snmptrapd.conf
添加代碼
disableAuthorization yes
perl do "/usr/bin/zabbix_trap_receiver.pl"
disableAuthorization yes 表示不認證,接收所有團體名(community)的 trap信息 authCommunity execute public 表示只接收團體名(community)為 public 的 trap信息,可以寫多行
修改完成后重啟snmptrapd服務
service snmptrapd restart
或
systemctl restart snmptrapd
注意一段時間后觀察snmptrapd狀態是否正常,時間久的話可以看到收到了設備發出的trap包
service snmptrapd status
或
systemctl status snmptrapd

5.在zabbix服務器上修改zabbix_server.conf文件以下兩處:
StartSNMPTrapper=1
SNMPTrapperFile=/tmp/zabbix_traps.tmp
(注:最后一行的路徑必須跟 /usr/bin/zabbix_trap_receiver.pl腳本中設置的路徑相同)
修改完成后重啟zabbix_server服務
service zabbix_server restart
或
systemctl restart zabbix_server
6.在zabbix服務器上配置監控主機,添加監控項。
效果如圖所示:

監控項:
名稱:snmptrap.fallback
類型:SNMP trap
鍵值:snmptrap.fallback
信息類型:日志
日志時間格式:hh:mm:sszyyyy/MM/dd
解析:
鍵值為snmptrap.fallback,可以接受所有未配置的trap監控項。
7.查看監控主機的最新數據。
在最新數據里選擇被監控的主機,點擊snmptrap.fallback的歷史記錄

如下圖,在此處可以看到被監控設備發出的trap信息,但是從OID上不能明顯看出對應的信息,因此需要為net-snmp添加mib文件。

8.在zabbix服務器或代理服務器上添加mib文件。
net-snmp-config --default-mibdirs 命令可以看到mib文件位置,如下:
[root@mgmtmonitorweb02 ~]# net-snmp-config --default-mibdirs /root/.snmp/mibs:/usr/share/snmp/mibs [root@mgmtmonitorweb02 ~]#
cd /usr/share/snmp/mibs 打開存儲mib文件的目錄
ls 可以看到自帶的mib文件,此處WAFV6-MIB.txt是我找廠商售后索取的mib文件

9.在zabbix服務器或代理服務器上應用mib文件。
vi /etc/snmp/snmp.conf 修改此配置文件
mibs +ALL 在文件中添加此行,意思是應用mib文件目錄下的所有mib文件

解析:
mibs +后面可以填寫mib文件的名字,如mibs +WAFV6-MIB,需要注意的是“+”號后直接加文件名,不可出現空格,否則會有錯誤。
修改完成后重啟snmptrapd服務
service snmptrapd restart
或
systemctl restart snmptrapd
重啟注意后觀察snmptrapd狀態是否正常,時間久的話可以看到收到了設備發出的trap包。
service snmptrapd status
或
systemctl status snmptrapd
此時可以看到,OID的名字已經發生改變。

10.在zabbix服務上驗證最新數據是否發生改變。

此時可以看到OID不再是數字,而是比較容易識別的英文名字,此名字可在mib文件中修改,但不能以中文命名。
11.如果需要分類trap信息,可以如下圖配置監控項。

注意:此時鍵值snmptrap[]的[]內不再是填寫數字OID,而是監控項snmptrap.fallback獲取到的mib文件里定義的名字,
如:snmptrap[WAFV6-MIB::alert-level]
參考資料:
http://www.lwops.cn/forum.php?mod=viewthread&tid=74&extra=&_dsign=8bd9d823&tdsourcetag=s_pctim_aiomsg
http://blog.chinaunix.net/uid-20469830-id-1943491.html
https://www.zabbix.com/documentation/3.4/zh/manual/config/items/itemtypes/snmptrap
