神行者路由配合Zabbix利用SNMPTrap接收主动告警
这里介绍的是神行者路由通过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版,才能配置如下配置。
二、安装配置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日志
三、配置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、导入模板后新增主机监控
5、添加成功后,等待5分钟会自动发现线路和服务,并创建成功,进入监控-最新数据,强制执行端口UP down,重启服务,查看SNMPtrap消息。
6、钉钉告警效果
登录后方可回帖
conf.zip
部分配置分享