SNMPTrap监控主要用于设备发生故障时的主动通知的监控。以下简单记录下Zabbix的SNMPTrap的配置方法。
一、SNMPTrap监控的处理流程说明
1.监控对象发送SNMPTrap信息到snmptrapd(Net-SNMP)服务器,
2.snmptrapd服务器将接收到的SNMPTrap信息发送给SNMPTT(或者Perl trap receiver),
3.NMPTT(或者Perl trap receiver)将按照指定的数据格式将SNMPTrap信息写入SNMPTrapperFile,
4.Zabbix服务器的snmptrapper进程将读取SNMPTrapperFile的内容,对其进行解析,将值传递给对应的监控对象,并保存数据到DB。
-
snmptrapd 收到trap
-
snmptrapd将trap传递给SNMPTT或调用Perl接收器
-
SNMPTT或Perl trap接收器解析,格式化并将trap写入文件
-
Zabbix SNMP trap读取并解析trap文件
-
对于每个trap,Zabbix发现主机接口与接收的trap地址匹配的所有“SNMP trap”监控项。请注意,在匹配期间只使用主机接口中选定的“IP”或“DNS”。
-
对于每个找到的监控项,将trap与“snmptrap[regexp]”中的regexp进行比较。 trap设置为all匹配项的值。如果没有找到匹配的监控项,并且有一个“snmptrap.fallback”监控项,则将trap设置为该值。
-
如果trap未设置为任何监控项的值,Zabbix默认记录不匹配的trap。(这由管理 - >常规 - >其它中的“记录不匹配的SNMP trap(Log unmatched SNMP traps)”配置。)
我们一般使用SNMPTT来收集
三、zabbix上snmtraped和snmptt配置
3.1配置snmptraped
sudo apt intall snmptraped #ubuntu yum install net-snmp #centos注意使用epel源
编辑/etc/snmp/snmptrapd.conf,添加SNMPTT作为trap处理程序:
添加“traphandle default snmptt”
3.2配置snmpTT
sudo apt install snmptt #ubuntu yum install snmptt #centos 注意使用epel源
编辑vim /etc/snmp/snmptt.ini,配置输出文件和时间格式
vim /etc/snmp/snmptt.ini log_file = /var/log/snmptt/snmptt.log #指定日志文件 date_time_format = %H:%M:%S %Y/%m/%d #制定时间格式
安装完默认设置好
配置数据处理格式
编辑snmptt.conf - 定义默认trap格式
vim /etc/snmp/snmptt.conf EVENT general .* "General event" Normal FORMAT ZBXTRAP $aA $ar
启动服务
3.3 zabbix_server.conf文件配置
编辑/etc/zabbix/zabbix_server.conf,添加 配置Zabbix启动SNMP trap并设置trap文件
vim /etc/zabbix/zabbix_server.conf StartSNMPTrapper=1 SNMPTrapperFile=/var/log/snmptt/snmptt.log systemctl restart zabbix-server
在zabbix服务器上发送snmptrap进行测试