神行者路由配合Zabbix利用SNMPTrap接收主动告警

By 神行者杨工 at 2020-12-25 • 0人收藏 • 6901人看过

这里介绍的是神行者路由通过SNMP Trap主动方式向(运维系统)SNMP客户端发送告警,并实现实时告警,让运维人员及时发现问题。


工作流程

神行者路由触发告警机制,发送Snmptrap至Zabbix Server UDP 162端口。

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



一、安装配置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


注意:SNMPTRAP功能需要升级神行者路由版本至20201224版,才能配置如下配置。

image.png


二、安装配置snmptt


1、yum -y install epel-release    #安装EPRL源

2、Zabbix-server安装SNMPTrapd软件包

yum -y install net-snmp-perl perl-Digest-SHA1 perl-Sys-Syslog perl-List-MoreUtils perl-IO-stringy net-snmp-utils perl perl-Module-Build perl-Time-HiRes

3、Zabbix-server安装snmptt软件包

yum -y install snmptt

4、检查snmptthandler是否存在

ls /usr/share/snmptt/snmptthandler-embedded

5、如果输出显示不存在,则需要检查snmptt安装是否成功

修改snmptrapd.com配置文件

vi /etc/snmp/snmptrapd.conf

authCommunity   log,execute,net public #团体名

perl do "/usr/share/snmptt/snmtthandler-embedded"

7、systemctl start snmptt    (启动报错:Could not load Perl module Sys::Syslog!)

8、systemctl status snmptt -l    #查看出错信息,缺少perl-syslog

9、yum -y install perl-Sys-Syslog    #安装perl-syslog

10、vim /etc/snmp/snmptt.ini    #修改配置文件

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

11、mv /etc/snmp/snmptt.conf /etc/snmp/snmptt.conf.bak    #备份规则文件

12、vim /etc/snmp/snmptt.conf    #配置神行者自定义trap格式化规则

#匹配服务名称规则
EVENT SERVICE SNMPv2-SMI::enterprises.1500.80.2.2 "Service name"
FORMAT ZBXTRAP $aA $1
#匹配服务动作规则,状态:0 : 关闭, 1 : 重启,2 : 运行中
EVENT SERVICE SNMPv2-SMI::enterprises.1500.80.2.4 "Status Events"
FORMAT ZBXTRAP $aA $1

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

9、配置snmptrap.conf

authCommunity   log,execute,net sxz@ros
perl do "/usr/share/snmptt/snmptthandler-embedded"

10 systemctl restart snmptt 重启SNMPTT

11、tail -F /var/log/snmptt/snmptt.log   #打开并跟踪snmptt日志

image.png


三、配置zabbix-server

1、vi /etc/zabbix/zabbix_server.conf

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


2、systemctl restart zabbix-server  #重启Zabbix服务

3、zabbix添加监控项添加,参考教程http://bbs.xspeeder.com/t/176

4、导入模板后新增主机监控

image.png

image.png


5、添加成功后,等待5分钟会自动发现线路和服务,并创建成功,进入监控-最新数据,强制执行端口UP down,重启服务,查看SNMPtrap消息。

image.png


6、钉钉告警效果

image.png


image.png


image.png

1 个回复 | 最后更新于 2022-07-14
2020-12-25   #1

conf.zip

部分配置分享

登录后方可回帖

Loading...