【Zabbix-SNMPtrap】列舉一個常見使用Zabbix的SNMP trap監控裝置的例子
本文以監控綠盟裝置為例。
1.登入被監控的裝置的管理系統,配置snmptrap地址指向zabbix伺服器或代理伺服器。
snmptrap地址也叫陷阱。
2.配置或關閉防火牆,並驗證是否能在zabbix伺服器或代理伺服器上收到裝置的trap資訊。2.1 舊版防火牆開放UDP的162埠的命令如下:
vi /etc/sysconfig/iptables
編輯防火牆的配置檔案。
-A INPUT -p udp -m udp --dport 162 -j ACCEPT
新增一行程式碼。
/etc/init.d/iptables restart
重啟防火牆,使配置生效。
2.2 新版防火牆開放UDP的162埠命令如下:
firewall-cmd --permanent --add-port=162/udp
firewall-cmd --reload
firewall-cmd --list-ports
命令解析:
firewall-cmd --permanent --add-port=162/udp 永久開放UDP協議的162埠
firewall-cmd --reload 更新防火牆規則
firewall-cmd --list-ports 檢視所有開放的埠
2.3 開放防火牆後,驗證是否能在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包也可以主動傳送測試trap資訊:
snmptrap -v 1 -c public 127.0.0.1 '.1.3.6.1.6.3.1.1.5.3' '0.0.0.0' 6 33 '55' .1.3.6.1.6.3.1.1.5.3 s "teststring000"
檢視snmptrapd狀態,命令如下:
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,可以接收所有未配置成SNMPtrap監控項的裝置發出的trap資訊。
7.檢視監控主機的最新資料,驗證實驗結果。
在最新資料裡選擇被監控的主機,點選snmptrap.fallback的歷史記錄。
效果如下圖,在此處可以看到被監控裝置發出的trap資訊,但是從OID上不能明顯看出對應的資訊,因此需要為net-snmp新增mib檔案。
到此步驟,已基本完成SNMP trap監控型別的配置,後面的為進階配置,主要是為了解決不能直觀地看出對應資訊的問題。
8.在zabbix伺服器或代理伺服器上新增mib檔案。
net-snmp-config --default-mibdirs 命令可以看到mib檔案位置,效果如下:
[[email protected] ~]# net-snmp-config --default-mibdirs
/root/.snmp/mibs:/usr/share/snmp/mibs
[[email protected] ~]#
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]
原文地址
使用Zabbix的SNMP trap監控型別監控裝置的一個例子
(出處: 樂維_一站式運維監控管理平臺)