======= 系列目录 =======
Zabbix监控系统系列之一 : Server部署Zabbix监控系统系列之二 : 初始化配置Zabbix监控系统系列之三 :版本升级Zabbix监控系统系列之四:Agent监控Windows客户端Zabbix监控系统系列之五:SNMP监控Windows客户端Zabbix监控系统系列之六:EMAIL警告配置Zabbix监控系统系列之七:VMware虚拟化监控Zabbix监控系统系列之八:日志监控Zabbix监控系统系列之九:监控网络设备指定接口流量Zabbix监控系统系列之十:自动发现配置Zabbix监控系统系列之十一:拓扑图绘制Zabbix监控系统系列之十二:SNMP Traps主动告警Zabbix监控系统系列之十三:SNMP Mibs库加载Zabbix监控系统系列之十四:Oracle监控Zabbix监控系统系列之十五:自动发现Oracle表空间并监控 ======================

SNMPTrap监控主要用于设备发生故障时的主动通知的监控,比如存储监控硬盘故障、网络监控抖动;它的特点如下:

1、事件驱动,第一时间收到设备故障告警

以事件为驱动,由被监控的主机、网络设备、应用在发生故障时向NMS发送SNMP Trap,通过对接收到的SNMP Trap进行翻译和展现,以最快速度向管理人员发送告警。SNMP Trap不同于SNMP的主动采集,SNMP采集服务器按照固定的时间间隔,由网管系统以询问的方式,采集被监控端性能指标,因此发现被监控端性能问题的快慢取决于采集的频率间隔。而SNMP Trap是以事件为驱动,在被监控端设置陷阱,一旦被监控端设备出现相关问题,立刻发送SNMP Trap,因此能够在最短的时间内发现故障,避免因为设备故障带来的经济损失。

2、提供SNMPTrap的接收,并通过对Trap信息翻译,展现事件

支持设备,主机和应用的SNMP Trap信息,从被动变为主动,全面监控IT系统。通过对SNMP Trap的翻译和展现,一旦某个IT组件出现问题,可以在短时间之内,即可收到故障信息,满足企业的快速发现问题的需要。

通过SNMPTrap的接收规则定义,管理员可以过滤非重要设备的Trap信息,也可以过滤被监控设备的非重要故障信息,帮助管理员在第一时间收到真正需要的管理信息。

3、定制SNMPTrap告警规则触发告警,提供多种方式发送告警信息

用户通过管理端定制需要告警的SNMP Trap信息,针对特定SNMP Trap事件通过邮件、短信、语音、微信等方式向相关人员发送报警,帮助管理人员快速收到IT系统故障信息。

4、支持事件导出

汇总特定时间内特定SNMPTrap事件,同时可以以Excel格式导出事件数据,便于管理人员对故障信息进行统计和分析。

5、支持各类设备厂家MIB库的导入

虽然国内各种网络设备都支持SNMP Trap,但是各个厂家的MIB库并不能很好的支持公共标准,因此,很多监控系统都支持私有MIB库的导入,确保能够全面兼容各个厂家设备的SNMP Trap信息。

zabbix 同时大量告警 zabbix告警原理_zabbix 同时大量告警


整个流程说明大体如下:

1.监控对象发送SNMPTrap信息到snmptrapd(Net-SNMP)服务器,

2.snmptrapd服务器将接收到的SNMPTrap信息发送给SNMPTT(或者Perl trap receiver),

3.SNMPTT(或者Perl trap receiver)将按照指定的数据格式将SNMPTrap信息写入SNMPTrapperFile,

4.Zabbix服务器的snmptrapper进程将读取SNMPTrapperFile的内容,对其进行解析,将值传递给对应的监控对象,并保存数据到DB。

※ 如果trap未设置为任何监控项的值,Zabbix默认记录不匹配的trap。(通过Administration → General → Other中的“Log unmatched SNMP traps”配置。)

[配置步骤]
Zabbix 功能配置:

-- 部署Net-SNMP组件
yum -y install net-snmp*
systemctl enable snmptrapd.service

-- SNMP Trap配置
wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.4.15/zabbix-3.4.15.tar.gz
tar zxvf zabbix-3.4.15.tar.gz

cp /root/zabbix-3.4.15/misc/snmptrap/zabbix_trap_receiver.pl /usr/bin/zabbix_trap_receiver.pl
chmod +x /usr/bin/zabbix_trap_receiver.pl

echo "# Modify by Eric.zhong at 20190904" >> /etc/snmp/snmptrapd.conf
echo authCommunity execute public >> /etc/snmp/snmptrapd.conf
echo perl do "/usr/bin/zabbix_trap_receiver.pl"; > /etc/snmp/snmptrapd.conf
tail -n 10 /etc/snmp/snmptrapd.conf
※ 如果需要接受更多的验证,可以追加单独的[authCommunity execute zhong]配置

echo "# Modify by Eric.zhong at 20190904" >> /etc/zabbix/zabbix_server.conf
echo StartSNMPTrapper=1 >> /etc/zabbix/zabbix_server.conf
echo SNMPTrapperFile=/tmp/zabbix_traps.tmp >> /etc/zabbix/zabbix_server.conf
tail -n 10 /etc/zabbix/zabbix_server.conf

systemctl restart  zabbix-server
systemctl restart snmptrapd.service

-- SNMP Trap测试
snmptrap -v 1 -c public 127.0.0.1 '.1.3.6.1.6.3.1.1.5.4' '0.0.0.0' 6 33 '55' .1.3.6.1.6.3.1.1.5.4 s "eth0"

cat /tmp/zabbix_traps.tmp
16:26:16 2019/09/04 ZBXTRAP 127.0.0.1
PDU INFO:
  notificationtype               TRAP
  version                        0
  receivedfrom                   UDP: [127.0.0.1]:43411->[127.0.0.1]:162
  errorstatus                    0
  messageid                      0
  community                      public
  transactionid                  4
  errorindex                     0
  requestid                      0
VARBINDS:
  DISMAN-EVENT-MIB::sysUpTimeInstance type=67 value=Timeticks: (55) 0:00:00.55
  SNMPv2-MIB::snmpTrapOID.0      type=6  value=OID: IF-MIB::linkUp.0.33
  IF-MIB::linkUp                 type=4  value=STRING: "eth0"
  SNMP-COMMUNITY-MIB::snmpTrapCommunity.0 type=4  value=STRING: "public"
  SNMPv2-MIB::snmpTrapEnterprise.0 type=6  value=OID: IF-MIB::linkUp

Zabbix监控对象配置:
ITEM有两种方式:

  • SNMPTrap[regexp] :将trap与监控项“snmptrap[regexp]”中的正则表达式进行匹配,将匹配到的trap设为该监控项的值。
  • SNMPTrap.fallback :如果没有找到匹配的监控项且存在“snmptrap.fallback”监控项,则将trap设置为“snmptrap.fallback”的值。

    触发器

监控结果

zabbix 同时大量告警 zabbix告警原理_监控系统_02


zabbix 同时大量告警 zabbix告警原理_Trap_03

zabbix 同时大量告警 zabbix告警原理_监控系统_04