zabbix接收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)”配置。)

一、安装配置snmptrapd

1、yum install -y net-snmp net-snmp-utils net-snmp-perl    #安装net-snmp及相关工具(里面包含SNMPTrapd)

2、vim /etc/snmp/snmptrapd.conf

    authCommunity   log,execute,net 团体名       #指定团体名

    traphandle default /usr/sbin/snmptthandler    #指定snmptt为trap接收器,此时还没安装snmptt

3、systemctl start snmptrapd    #启动snmptrapd

4、systemctl enable snmptrapd    #加入开机启动项

5、交换机开启snmp和snmptrap,并指定团体名和trap目标主机IP

6、tail -F /var/log/messages    #打开并跟踪日志

7、手动关闭交换机端口,触发告警,验证snmptrapd是否能正常接收trap

二、安装配置snmptt

1、yum -y install epel-release    #安装EPRL源
2、yum -y install snmptt     #安装snmptt
3、systemctl start snmptt    (启动报错:Could not load Perl module Sys::Syslog!)
4、systemctl status snmptt -l    #查看出错信息,缺少perl-syslog
5、yum -y install perl-Sys-Syslog    #安装perl-syslog
6、vim /etc/snmp/snmptt.ini    #修改配置文件

date_time_format=  %Y/%m/%d %H:%M:%S
net_snmp_perl_enable =
translate_log_trap_oid = # :数字形式显示OID,:显示OID名称,:显示OID所属模块名及其名称
log_file = /var/log/snmptt/snmptt.log #默认

7、mv /etc/snmp/snmptt.conf /etc/snmp/snmptt.conf.bak    #备份规则文件
8、vim /etc/snmp/snmptt.conf    #自定义trap格式化规则

#匹配Linkdown的规则
EVENT LinkDown .1.3.6.1.6.3.1.1.5.3 "Status Events" Warning
FORMAT ZBXTRAP $aA LinkDown on interface $. Admin state: $. Operational state: $

#匹配Linkup的规则
EVENT LinkUp .1.3.6.1.6.3.1.1.5.4 "Status Events" Normal
FORMAT ZBXTRAP $aA Linkup on interface $. Admin state: $. Operational state: $

# 默认规则,没有其他规则匹配上时,所有trap信息都按此规则处理
EVENT general .* "General event" Normal
FORMAT ZBXTRAP $aA $

9、systemctl restart snmptt
10、tail -F /var/log/snmptt/snmptt.log   #打开并跟踪snmptt日志

三、配置zabbix-server
1、vim /etc/zabbix/zabbix_server.conf

StartSNMPTrapper=   #开启SNMPTrapper功能
SNMPTrapperFile=/var/log/snmptt/snmptt.log #指定snmptt日志文件

2、systemctl restart zabbix-server  #重启Zabbix服务
3、zabbix添加监控项

匹配snmptt日志中,属于IF-MIB模块的告警(IF-MIB包含设备接口相关的管理对象,告警节点包含linkUp和linkDown)

其余没匹配上的,都匹配到键值为fallback的监控项

查看获取的trap数据


zabbix_snmptrap官方文档

https://www.zabbix.com/documentation/3.4/zh/manual/config/items/itemtypes/snmptrap

https://www.zabbix.org/wiki/Start_with_SNMP_traps_in_Zabbix

snmptt官方文档

http://www.snmptt.org/docs/snmptt.shtml

zabbix利用SNMPTrap接收交换机主动告警的更多相关文章

  1. 【ZABBIX】SNMPtrap实现主动监控的原理与安装配置

    工欲善其事,必先利其器.作为一款强大的开源软件,Zabbix号称“Monitor Everything”,其所依赖的,很大程度上便是SNMP的数据采集支持.SNMP 协议是用来管理设备的协议,目前SN ...

  2. zabbix 利用python脚本实现钉钉告警

    Zabbix 利用python脚本实现钉钉告警 1.安装python3.6环境 2.创建python脚本 cd local/zabbix-4.0.3/share/zabbix/alertscripts ...

  3. 关于zabbix利用snmp协议从交换机获取的端口带宽数据的概念问题

    关于zabbix利用snmp协议从交换机获取的端口带宽数据的概念问题:使用端口OID号获得的数据实际是即时的端口总数据量,而在计算带宽时,需要选择一个时间段,在时间段的结束点获得的总数据量减去在时间段 ...

  4. Zabbix的SNMPTrap监控配置

    SNMPTrap监控主要用于设备发生故障时的主动通知的监控.以下简单记录下Zabbix的SNMPTrap的配置方法. 一.SNMPTrap监控的处理流程说明 1.监控对象发送SNMPTrap信息到sn ...

  5. zabbix利用自带的模板监控mysql数据库

    zabbix利用自带的模板监控mysql数据库 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 有些东西你不会的时候觉得它特别难,但是当你去做的时候就发现如此的简单~zabbix功能 ...

  6. 19 Zabbix 利用Scripts栏目对Hosts远程执行命令

    点击返回:自学Zabbix之路 19 Zabbix 利用Scripts栏目对Hosts远程执行命令 在Monitoring板块中,有Host出现的地方,单击Host按钮后,都可以执行对Host远程执行 ...

  7. 20 Zabbix 利用Scripts栏目对Hosts远程执行命令

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 20 Zabbix 利用Scripts栏目对Hosts远程执行命令 在Monitoring板块中, ...

  8. zabbix 利用python脚本实现短信告警

    一.编写脚本 cd /usr/local/zabbix-4.0.3/share/zabbix/alertscripts vi zabbix_sms.py 内容如下: #!/usr/bin/python ...

  9. zabbix通过API创建交换机模板,ifAdminStatus;ifOperStatus;ifInUcastPkts;ifAlias

    最终效果: 目的:         通过zabbix的Latest data查看主机就可以看到其监控结果. 监控项:         # 管理状态          IF-MIB::ifAdminSt ...

随机推荐

  1. android 请求接口报错 org.apache.http.conn.HttpHostConnectException: Connection to http://192.168.1.90:9090 refused

    No Network Security Config specified, using platform defaultI/System.out: org.apache.http.conn.HttpH ...

  2. react-native 金币彩带雨下落动画

    日常项目中,经常遇到一些表情雨/金币雨/彩带雨 等下落的动画,之前做android原生的时候,写过类似的效果,主要通过自定义view 在onDraw里绘制下落的过程,具体可以看下我的这篇github地 ...

  3. 002-如何理解Java的平台独立性

    本文首发于公众号:javaadu Java有句非常有名的口号--"一次编写,到处运行",依靠的就是JVM提供的平台独立性,本质上来讲,就是通过虚拟机技术,通过限制一些功能,达到屏蔽 ...

  4. 你所不知道的 CSS 阴影技巧与细节

    关于 CSS 阴影,之前已经有写过一篇,box-shadow 与 filter:drop-shadow 详解及奇技淫巧,介绍了一些关于 box-shadow 的用法. 最近一个新的项目,CSS-Ins ...

  5. 不为人知的网络编程(八):从数据传输层深度解密HTTP

    1.引言 在文章<理论联系实际:Wireshark抓包分析TCP 3次握手.4次挥手过程>中,我们学会了用wireshark来分析TCP的“三次握手,四次挥手”,非常好用.这就是传说中的锤 ...

  6. 一行一行手敲webpack4配置

    代码:github 一.webpack4--基本配置 这一部分通过webpack的基本配置,使用loader对图片和样式进行打包,从而了解webpack4简单的用方法,保证自己能够配置正确,提升学习动 ...

  7. 关于Bulk加载模式

    Bulk加载模式是Informatica提供的一种高性能数据加载模式,它利用数据库底层机制,依靠调用数据库本身提供的Utility来进行数据的加载 该方式将绕过数据库的log记录,以此提高数据库加载性 ...

  8. Java笔试题库之选题题篇【71-140题】

    71下面哪几个函数是public void method(){̷}的重载函数?() A.public void method( int m){̷} B.public int method(){̷} C ...

  9. Spring Cloud 微服务架构学习笔记与示例

    本文示例基于Spring Boot 1.5.x实现,如对Spring Boot不熟悉,可以先学习我的这一篇:<Spring Boot 1.5.x 基础学习示例>.关于微服务基本概念不了解的 ...

  10. Android状态栏着色

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 状态栏着色,也就是我们经常听到的沉浸式状态栏,关于沉浸式的称呼网上也有很多吐槽的,这里就不做过多讨论了,以下我们统称状态栏着色,这样 ...