编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

Zabbix监控系统系列之十五:SNMP Mibs库加载及Traps主动告警

wxchong 2024-07-17 04:43:15 开源技术 10 ℃ 0 评论

SNMP Traps是通过OID发送各种的信息给监控服务器,这些OID通常是不能直观判断。这时就需要一本字典来帮翻译这些OID信息,它就是Mibs库文件。Mibs库文件通常是设备厂商提供的。

如下是思科2960交换机的未添加Mibs库文件的SNMP Trap日志,后续通过Mibs库加载可以增加阅读性。

※ 在此,我为简单将原有库文件删除以演示的。

[操作步骤]

1.检查Mibs库文件默认路径

[root@zabbix01 mibs]# net-snmp-config --default-mibdirs

/root/.snmp/mibs:/usr/share/snmp/mibs

[root@zabbix01 mibs]# cd /usr/share/snmp/mibs

[root@zabbix01 mibs]# ls

AGENTX-MIB.txt IANAifType-MIB.txt LM-SENSORS-MIB.txt RMON-MIB.txt SNMPv2-SMI.txt

BDTMIB.mib IANA-LANGUAGE-MIB.txt MTA-MIB.txt SCTP-MIB.txt SNMPv2-TC.txt

BDTMIB-oid.txt IANA-RTPROTO-MIB.txt NET-SNMP-AGENT-MIB.txt SMUX-MIB.txt SNMPv2-TM.txt

BRIDGE-MIB.txt IF-INVERTED-STACK-MIB.txt NET-SNMP-EXAMPLES-MIB.txt SNMP-COMMUNITY-MIB.txt SNMP-VIEW-BASED-ACM-MIB.txt

CISCO-SYSLOG-MIB.mib IF-MIB.txt NET-SNMP-EXTEND-MIB.txt SNMP-FRAMEWORK-MIB.txt TCP-MIB.txt

CISCO-SYSLOG-MIB-oid.txt INET-ADDRESS-MIB.txt NET-SNMP-MIB.txt SNMP-MPD-MIB.txt TRANSPORT-ADDRESS-MIB.txt

DISMAN-EVENT-MIB.txt IP-FORWARD-MIB.txt NET-SNMP-PASS-MIB.txt SNMP-NOTIFICATION-MIB.txt TUNNEL-MIB.txt

DISMAN-SCHEDULE-MIB.txt IP-MIB.txt NET-SNMP-TC.txt SNMP-PROXY-MIB.txt UCD-DEMO-MIB.txt

DISMAN-SCRIPT-MIB.txt IPV6-FLOW-LABEL-MIB.txt NET-SNMP-VACM-MIB.txt SNMP-TARGET-MIB.txt UCD-DISKIO-MIB.txt

EtherLike-MIB.txt IPV6-ICMP-MIB.txt NETWORK-SERVICES-MIB.txt SNMP-USER-BASED-SM-MIB.txt UCD-DLMOD-MIB.txt

HCNUM-TC.txt IPV6-MIB.txt NOTIFICATION-LOG-MIB.txt SNMP-USM-AES-MIB.txt UCD-IPFWACC-MIB.txt

HOST-RESOURCES-MIB.txt IPV6-TCP-MIB.txt RFC1155-SMI.txt SNMP-USM-DH-OBJECTS-MIB.txt UCD-SNMP-MIB.txt

HOST-RESOURCES-TYPES.txt IPV6-TC.txt RFC1213-MIB.txt SNMPv2-CONF.txt UDP-MIB.txt

IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt IPV6-UDP-MIB.txt RFC-1215.txt SNMPv2-MIB.txt

2.上传Mibs库文件

3.配置SNMP加载Mibs库文件

vi /etc/snmp/snmpd.conf

mibdirs /usr/share/snmp/mibs/

4.重启服务

systemctl restart snmptrapd

5.SNMP Trap检查

————————————————

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信息。

整个流程说明大体如下:

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”的值。

触发器

监控结果

————————————————

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表