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。

zabbix3.4上配置snmptrap+ SNMPT收集交换机告警_第1张图片


二、zabbix上snmptrap流程

接收SNMP trap与查询支持SNMP的设备相对。

在这种情况下,信息是从支持SNMP的设备发送的,由Zabbix收集或“trapped”。

通常情况下发送trap是发生变化并且代理连接到端口162上的服务器(而不是用于查询的代理端的端口161)。 使用trap可以检测在查询间隔期间发生的一些可能被查询数据丢失的短期问题。

在Zabbix中接收SNMP trap旨在使用snmptrapd和内置机制之一来传递trap到Zabbix - 一个perl脚本或SNMPTT。

接收trap的工作流程:

  1. snmptrapd 收到trap

  2. snmptrapd将trap传递给SNMPTT或调用Perl接收器

  3. SNMPTT或Perl trap接收器解析,格式化并将trap写入文件

  4. Zabbix SNMP trap读取并解析trap文件

  5. 对于每个trap,Zabbix发现主机接口与接收的trap地址匹配的所有“SNMP trap”监控项。请注意,在匹配期间只使用主机接口中选定的“IP”或“DNS”。

  6. 对于每个找到的监控项,将trap与“snmptrap[regexp]”中的regexp进行比较。 trap设置为all匹配项的值。如果没有找到匹配的监控项,并且有一个“snmptrap.fallback”监控项,则将trap设置为该值。

  7. 如果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”

zabbix3.4上配置snmptrap+ SNMPT收集交换机告警_第2张图片

完成配置后,添加启动服务

zabbix3.4上配置snmptrap+ SNMPT收集交换机告警_第3张图片

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  #制定时间格式

zabbix3.4上配置snmptrap+ SNMPT收集交换机告警_第4张图片


zabbix3.4上配置snmptrap+ SNMPT收集交换机告警_第5张图片

安装完默认设置好


配置数据处理格式

编辑snmptt.conf - 定义默认trap格式

vim /etc/snmp/snmptt.conf
EVENT general .* "General event" Normal
FORMAT ZBXTRAP $aA $ar

zabbix3.4上配置snmptrap+ SNMPT收集交换机告警_第6张图片

同样默认设置好

image.png

启动服务


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

zabbix3.4上配置snmptrap+ SNMPT收集交换机告警_第7张图片


4.创建监控项并测试

创建一个SNMP监控项测试:
Host's SNMP interface IP: 127.0.0.1:161
Key: snmptrap["snmptrap.fallback"]
Log time format: hh:mm:ss yyyy/MM/dd

如下所示

zabbix3.4上配置snmptrap+ SNMPT收集交换机告警_第8张图片


在zabbix服务器上发送snmptrap进行测试