目錄
2、從zabbix源碼包中拷貝perl腳本到/usr/bin/目錄下,並增加執行權限
調試環境:Centos7
SNMPTrap主要用於在設備發生故障時,向預先配置好的主機發送通知消息。
zabbix對SNMPTrap數據的監控,是通過對日誌文件的監控實現。
日誌文件的更新有snmptrapd的消息處理程序完成。
本文介紹兩種snmptrap消息處理方式的環境搭建:snmptt, perl腳本
一、SNMPTrap消息處理流程
1、監控主機發送SNMPTrap信息到snmptrapd服務器;
2、snmptrapd將接收到的SNMPTrap信息發送給消息處理程序;
3、消息處理程序將處理後的信息導入到日誌文件;
4、zabbix服務器的snmptrapper進程讀取日誌文件,解析後傳遞給對應的監控對象。
二、snmptt
1、SNMPTrap、snmptt安裝
yum install -y net-snmp net-snmp-libs net-snmp-utils net-snmp-perl mrtg snmptt
snmptt安裝時可能會提示perl錯誤,可以在https://pkgs.org/中查找安裝perl-relase進行安裝。
2、配置文件修改
/etc/snmp/snmptrapd.conf
authCommunity log,execute,net public
traphandle default /usr/sbin/snmptthandler
/etc/snmp/snmptt.conf
EVENT test .1.3.6.1.4.1.2345 "just for test" Normal
FORMAT ZBXTRAP $aA $ar
EVENT general .* "General event" Normal
FORMAT ZBXTRAP $aA $ar
注:後續若要針對特定oid處理,通過腳本更新。”ZBXTRAP”必須存在,否則zabbix提取數據失敗。
/etc/snmp/snmptt.ini
date_time_format= %Y/%m/%d %H:%M:%S
#### 設置時間格式,讀取的SNMPTrap信息之後寫入SNMPTrapperFile裏的時間格式,也是ZabbixTrapper讀取時的時間格式
syslog_enable = 0
#### 默認值爲1,設置成0,表示不將日誌記錄入syslog,不過該參數爲可選參數,可直接默認值即可。
log_file = /var/log/snmptt/snmptt.log
#### 這裏指定了SNMPTrapperFile,默認/var/log/snmptt/snmptt.log,無需更改。
[TrapFiles]
snmptt_conf_files = <<END
/etc/snmp/snmptt.conf
END
#### 這一段代碼記錄了使用那些規則文件處理SNMPTrap信息,默認值如上,簡單處理中無需更改該配置。
zabbix_server.conf
StartSNMPTrapper=1
SNMPTrapperFile=/var/log/snmptt/snmptt.log
3、SNMPTrapFile文件創建
touch /var/log/snmptt/snmptt.log
chown snmptt:snmptt /var/log/snmptt/snmptt.log
4、監控項創建
三、perl腳本
1、SNMPTrap安裝
yum install -y net-snmp net-snmp-libs net-snmp-utils net-snmp-perl mrtg
2、從zabbix源碼包中拷貝perl腳本到/usr/bin/目錄下,並增加執行權限
cp zabbix-3.4.7/misc/snmptrap/zabbix_trap_receiver.pl /usr/bin/
chmod a+x /usr/bin/zabbix_trap_receiver.pl
3、修改snmptrapd.conf配置
authCommunity log,execute,net public
perl do "/usr/bin/zabbix_trap_receiver.pl";
4、修改zabbix配置
StartSNMPTrapper=1
SNMPTrapperFile=/tmp/zabbix_traps.tmp
注SNMPTrapFile目錄和zabbix_trap_receiver.pl中日誌目錄一致。
snmptrap測試發包:
snmptrap -v 2c -c public 192.168.1.171 '' .1.3.6.1.4.1.2345 SNMPv2-MIB::sysLocation.0 s "for test"
snmptrap -v 2c -c public 192.168.1.171 '' .1.3.6.1.2.1.1.1.0 .1.3.6.1.2.1.1.1.0 s "eth1"