目录
前言
一、SNMPTRAP配置
1.安装SNMPTRAPD服务
2.编辑配置文件/etc/snmp/snmptrapd.conf
3.启动并配置开机自启动
二、SNMPTT配置
1.安装SNMPTT(需要配置epel源)
3.修改配置文件(/etc/snmp/snmptt.conf)
4.启动并配置开机自启动
三、ZABBIX配置
1.修改zabbix配置(zabbix_server.conf)
2.重启zabbix-server
实例:从动环管控平台获取SNMP告警数据
一、导入MIB库
二、配置snmptt.conf
三、zabbix配置
四、效果
前言
Zabbix 中接收 SNMP traps使用snmptrapd和将陷阱传递给 Zabbix 的内置机制之一——Perl 脚本或 SNMPTT。
提示:以下是本篇文章正文内容,下面案例可供参考
一、SNMPTRAP配置
1.安装SNMPTRAPD服务
yum install net-snmp net-snmp-utils net-snmp-perl
2.编辑配置文件/etc/snmp/snmptrapd.conf
authCommunity log,execute,net public #public为团体字
traphandle default snmptt
3.启动并配置开机自启动
systemctl start snmptrapd
systemctl enable snmptrapd
二、SNMPTT配置
1.安装SNMPTT(需要配置epel源)
yum install snmptt
yum install net-snmp net-snmp-utils net-snmp-perl
2.编辑配置文件/etc/snmp/snmptrapd.conf
authCommunity log,execute,net public #public为团体字
traphandle default snmptt
3.启动并配置开机自启动
systemctl start snmptrapd
systemctl enable snmptrapd
二、SNMPTT配置
1.安装SNMPTT(需要配置epel源)
yum install snmptt
authCommunity log,execute,net public #public为团体字
traphandle default snmptt
systemctl start snmptrapd systemctl enable snmptrapd二、SNMPTT配置
1.安装SNMPTT(需要配置epel源)
yum install snmptt
2.修改配置文件(/etc/snmp/snmptt.ini)
1.启用 NET-SNMP 包中的 Perl 模块: net_snmp_perl_enable = 1 2.将陷阱记录到将被 Zabbix 读取的陷阱文件: log_enable = 1 log_file = /var/log/snmptt/snmptt.log 3.设置日期时间格式: date_time_format = %H:%M:%S %Y/%m/%d
3.修改配置文件(/etc/snmp/snmptt.conf)
snmptt.conf是捕获traps后的清洗数据配置文件
snmptt.conf是捕获traps后的清洗数据配置文件
定义一个默认的配置:
EVENT general .* "General event" Normal FORMAT ZBXTRAP $aA $ar
4.启动并配置开机自启动
systemctl start snmptt
systemctl enable snmptt
三、ZABBIX配置
1.修改zabbix配置(zabbix_server.conf)
StartSNMPTrapper=1
# 路径必须和snmptt配置的路径一致
SNMPTrapperFile=/var/log/snmptt/snmptt.log
2.重启zabbix-server
实例:从动环管控平台获取SNMP告警数据
1.修改zabbix配置(zabbix_server.conf)
StartSNMPTrapper=1
# 路径必须和snmptt配置的路径一致
SNMPTrapperFile=/var/log/snmptt/snmptt.log
2.重启zabbix-server
实例:从动环管控平台获取SNMP告警数据
实例:从动环管控平台获取SNMP告警数据
从动环管控平台接收告警数据,数据以十六进制发送,我们需要外部的py脚本转义为字符串。
一、导入MIB库
复制mib文件到/usr/share/snmp/mibs/目录下修改配置文件引用导入的MIB库
# 查看mib文件目录
net-snmp-config --snmpconfpath
# 在/usr/share/snmp目录下新增snmp.conf文件,如果没有新增
mibdirs +/usr/share/snmp/mibs/PxData-new.txt
# 配置MIBS环境变量(配置在/etc/profile)
export MIBS=ALL
# 测试是否正常
snmptranslate -On Pxdata::trapSignalAlarm
snmptranslate -Dinit_mib 1.3.6.1.4.1.31951.3.20.1
二、配置snmptt.conf
一般情况下,需要FORMAT指令配置ZBXTRAP,但是由于我是新手,实在无奈不用使用,所以此处把FORMAT指令取消,使用python脚本写入snmptt.log文件对应的格式。
EVENT trapSignalAlarm .1.3.6.1.4.1.31951.3.20.1 "动环告警" Warning
EXEC /etc/snmp/donghuan/test.py $aA $+*
一般情况下,需要FORMAT指令配置ZBXTRAP,但是由于我是新手,实在无奈不用使用,所以此处把FORMAT指令取消,使用python脚本写入snmptt.log文件对应的格式。
EVENT trapSignalAlarm .1.3.6.1.4.1.31951.3.20.1 "动环告警" Warning EXEC /etc/snmp/donghuan/test.py $aA $+*
test.py
#!/usr/bin/python
# -*- coding:utf-8 -*-
import sys
import time
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
def hex_to_ascii(hex_str):
msg=hex_str.replace("enterprises.31951.3.20.1:","").replace("#012","").decode('hex').decode('GBK')
return msg
SNMPTRAPMESSAGE=''.join(sys.argv[2:])
msg=hex_to_ascii(SNMPTRAPMESSAGE)
logtime=time.strftime('%H:%M:%S %Y/%m/%d',time.localtime())
snmptrapfile="/var/log/snmptt/snmptt.log"
zbxtrapmessage=logtime + ' .1.3.6.1.4.1.31951.3.20.1 Warning "动环告警" 127.0.0.1 - ZBXTRAP 127.0.0.1 enterprises.31951.3.20.1: '+ msg
zbxtrapmessage2=zbxtrapmessage.encode("raw_unicode_escape").decode("raw_unicode_escape").encode("utf8")
with open(snmptrapfile,'a+') as f:
f.write(zbxtrapmessage2)
f.write("n")
f.close()
三、zabbix配置
四、效果
后话:
1.snmptt的配置很复杂
2.snmptraps设备发过来的时候可能oid并不太准确,比如下方message中oid不知道为什么死活认为是link down,后来抓包发现应该是发送的问题
3.抓包可以看到snmptrap的团体字,如果实在接收不到数据可以通过tcpdump获取团体字
tcpdump -i ens192 dst port 162
4.传给zabbix的数据格式如果不合适会无法识别,可以关注zabbix日志。
5.可以通过/var/log/messages、/var/log/snmptt/snmptt.log、/var/log/zabbix/zabbix_server.log三个文件去查看问题到底出在某一步。
参考文档:
3 SNMP traps
第三方平台告警接入、翻译、关联恢复-云社区-华为云



