1、配置陷阱处理脚本
# 在zabbix 服务器或者代理服务器上,复制源码目录中的Perl脚本到 /usr/bin目录下并赋予执行权限
cp zabbix-6.0.2/misc/snmptrap/zabbix_trap_receiver.pl /usr/bin/
chmod a+x /usr/bin/zabbix_trap_receiver.pl
2、安装snmp相关软件包
yum -y install net-snmp net-snmp-utils net-snmp-libs net-snmp-agent-libs net-snmp-devel net-snmp-perl
3、修改snmptrap配置文件
cat >>/etc/snmp/snmptrapd.conf<<EOF
disableAuthorization yes
perl do "/usr/bin/zabbix_trap_receiver.pl"
EOF
4、启动服务并测试
systemctl enable snmptrapd --now
snmptrap -v 1 -c public 127.0.0.1 '.1.3.6.1.6.3.1.1.5.3' '0.0.0.0' 6 33 '55' .1.3.6.1.6.3.1.1.5.3 s "test"
systemctl status snmptrapd
5、修改zabbix-server配置文件
StartSNMPTrapper=1
SNMPTrapperFile=/tmp/zabbix_traps.tmp
# 注:SNMPTrapperFile路径必须跟/usr/bin/zabbix_trap_receiver.pl脚本中设置的路径相同
6、重启zabbix-server服务
systemctl restart zabbix-server.service
7、配置监控项
名称:snmptrap.fallback
类型:SNMP trap
键值:snmptrap.fallback
信息类型:日志
日志时间格式:hh:mm:sszyyyy/MM/dd
# 键值配置为snmptrap.fallback,可以接收所有未配置成SNMPtrap监控项的设备发出的trap信息
8、配置触发器
名称:snmptrap.fallback
Event name:接收到snmptrap信息
表达式:length(last(/<...模板名称...>/snmptrap.fallback))>0
# 该触发器的含义是,只要接受到新的trap信息就触发告警
9、验证监控项和触发器
snmptrap -v 1 -c public 127.0.0.1 '.1.3.6.1.6.3.1.1.5.3' '0.0.0.0' 6 33 '55' .1.3.6.1.6.3.1.1.5.3 s "test"
10、查看snmp配置的mib文件路径
net-snmp-config --default-mibdirs
/root/.snmp/mibs:/usr/share/snmp/mibs
11、告警通知模板
<table border="1" bordercolor="black" cellspacing="0px" cellpadding="4px" width="500px">
<tr bgcolor="#FF3333">
<th colspan=2>
{TRIGGER.STATUS} Status Report
</tr>
<tr>
<td bgcolor="#ff7d0a" width="20%">告警主机</td>
<td bgcolor="#ff7d0a">{HOSTNAME1}</td>
</tr>
<tr>
<td bgcolor="#ff7d0a">主机别名</td>
<td bgcolor="#ff7d0a">{HOST.NAME} </td>
<tr>
<tr>
<td bgcolor="#ff7d0a">告警地址</td>
<td bgcolor="#ff7d0a">{HOST.IP}</td>
</tr>
<tr>
<td bgcolor="#ff7d0a">告警时间</td>
<td bgcolor="#ff7d0a">{EVENT.DATE} {EVENT.TIME}</td>
</tr>
<tr>
<td bgcolor="#ff7d0a">告警等级</td>
<td bgcolor="#ff7d0a">{TRIGGER.SEVERITY}</td>
</tr>
<tr>
<td bgcolor="#ff7d0a">告警信息</td>
<td bgcolor="#ff7d0a">{TRIGGER.NAME}</td>
</tr>
<tr>
<td bgcolor="#ff7d0a">告警项目</td>
<td bgcolor="#ff7d0a">{TRIGGER.KEY1}</td>
</tr>
<tr>
<td bgcolor="#FF3333">问题详情</td>
<td bgcolor="#FF3333">{ITEM.NAME}: {ITEM.VALUE}</td>
</tr>
<tr>
<td bgcolor="#ff7d0a">当前状态</td>
<td bgcolor="#ff7d0a">{TRIGGER.STATUS}: {ITEM.VALUE1}</td>
</tr>
<tr>
<td bgcolor="#ff7d0a">事件ID</td>
<td bgcolor="#ff7d0a">{EVENT.ID}</td>
</tr>
</table>
12、告警恢复模板
<table border="1" bordercolor="black" cellspacing="0px" cellpadding="4px" width="500px">
<tr bgcolor="#49c208">
<th colspan=2>
{TRIGGER.STATUS} Status Report
</tr>
<tr>
<td bgcolor="#ffba00" width="20%">恢复主机</td>
<td bgcolor="#ffba00">{HOSTNAME1}</td>
</tr>
<tr>
<td bgcolor="#ffba00">主机别名</td>
<td bgcolor="#ffba00">{HOST.NAME} </td>
<tr>
<td bgcolor="#ffba00">恢复地址</td>
<td bgcolor="#ffba00">{HOST.IP}</td>
</tr>
<tr>
<td bgcolor="#ffba00">恢复时间</td>
<td bgcolor="#ffba00">{EVENT.DATE} {EVENT.RECOVERY.TIME}</td>
</tr>
<tr>
<td bgcolor="#ffba00">持续时长</td>
<td bgcolor="#ffba00">{EVENT.DURATION}</td>
</tr>
<tr>
<td bgcolor="#ffba00">恢复等级</td>
<td bgcolor="#ffba00">{TRIGGER.SEVERITY}</td>
</tr>
<tr>
<td bgcolor="#ffba00">恢复信息</td>
<td bgcolor="#ffba00">{TRIGGER.NAME}</td>
</tr>
<tr>
<td bgcolor="#ffba00">恢复项目</td>
<td bgcolor="#ffba00">{TRIGGER.KEY1}</td>
</tr>
<tr>
<td bgcolor="#49c208">恢复详情</td>
<td bgcolor="#49c208">{ITEM.NAME}: {ITEM.VALUE}</td>
</tr>
<tr>
<td bgcolor="#ffba00">当前状态</td>
<td bgcolor="#ffba00">{TRIGGER.STATUS}: {ITEM.VALUE1}</td>
</tr>
<tr>
<td bgcolor="#ffba00">事件ID</td>
<td bgcolor="#ffba00">{EVENT.ID}</td>
</tr>
</table>
标签:snmp,snmptrap,zabbix,TRIGGER,告警,net
From: https://www.cnblogs.com/wanghongwei-dev/p/17904747.html