目录
一、SNMPTrap消息处理流程
二、snmptt
1、SNMPTrap、snmptt安装
2、配置文件修改
3、SNMPTrapFile文件创建
4、监控项创建
三、perl脚本
1、SNMPTrap安装
2、从zabbix源码包中拷贝perl脚本到/usr/bin/目录下,并增加执行权限
3、修改snmptrapd.conf配置
4、修改zabbix配置
调试环境:Centos7
SNMPTrap主要用于在设备发生故障时,向预先配置好的主机发送通知消息。
zabbix对SNMPTrap数据的监控,是通过对日志文件的监控实现。
日志文件的更新有snmptrapd的消息处理程序完成。
本文介绍两种snmptrap消息处理方式的环境搭建:snmptt, perl脚本
1、监控主机发送SNMPTrap信息到snmptrapd服务器;
2、snmptrapd将接收到的SNMPTrap信息发送给消息处理程序;
3、消息处理程序将处理后的信息导入到日志文件;
4、zabbix服务器的snmptrapper进程读取日志文件,解析后传递给对应的监控对象。
yum install -y net-snmp net-snmp-libs net-snmp-utils net-snmp-perl mrtg snmptt
snmptt安装时可能会提示perl错误,可以在https://pkgs.org/中查找安装epel-relase进行安装。
/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 = <
/etc/snmp/snmptt.conf
END
#### 这一段代码记录了使用那些规则文件处理SNMPTrap信息,默认值如上,简单处理中无需更改该配置。
zabbix_server.conf
StartSNMPTrapper=1
SNMPTrapperFile=/var/log/snmptt/snmptt.log
touch /var/log/snmptt/snmptt.log
chown snmptt:snmptt /var/log/snmptt/snmptt.log
yum install -y net-snmp net-snmp-libs net-snmp-utils net-snmp-perl mrtg
cp zabbix-3.4.7/misc/snmptrap/zabbix_trap_receiver.pl /usr/bin/
chmod a+x /usr/bin/zabbix_trap_receiver.pl
authCommunity log,execute,net public
perl do "/usr/bin/zabbix_trap_receiver.pl";
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"