1. 程式人生 > >【Zabbix-SNMPtrap】列舉一個常見使用Zabbix的SNMP trap監控裝置的例子

【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.png沒有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*

效果如下圖:
net-snmp.png


注意,此處可能遇到的問題:如果最後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

statusss.png

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伺服器上配置監控主機,新增監控項。
效果如圖所示:


zabbix_trap.png
監控項:
名稱:snmptrap.fallback
型別:SNMP trap
鍵值:snmptrap.fallback
資訊型別:日誌
日誌時間格式:hh:mm:sszyyyy/MM/dd
解析:
鍵值配置為snmptrap.fallback,可以接收所有未配置成SNMPtrap監控項的裝置發出的trap資訊。

7.檢視監控主機的最新資料,驗證實驗結果。
在最新資料裡選擇被監控的主機,點選snmptrap.fallback的歷史記錄。

shuju.png效果如下圖,在此處可以看到被監控裝置發出的trap資訊,但是從OID上不能明顯看出對應的資訊,因此需要為net-snmp新增mib檔案。
lishi.png到此步驟,已基本完成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檔案
效果如下圖:
snmpconf.png9.在zabbix伺服器或代理伺服器上應用mib檔案。
vi /etc/snmp/snmp.conf         修改此配置檔案
mibs +ALL                     在檔案中新增此行,意思是應用mib檔案目錄下的所有mib檔案
效果如下圖:
lish8.png解析:
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資訊,可以如下圖配置監控項。
jiankongxing.png

注意:此時鍵值snmptrap[]的[]內不再是填寫數字OID,而是監控項snmptrap.fallback獲取到的mib檔案裡定義的名字,
如:snmptrap[WAFV6-MIB::alert-level]


原文地址

使用Zabbix的SNMP trap監控型別監控裝置的一個例子

(出處: 樂維_一站式運維監控管理平臺)