首页 > 解决方案 > 为什么我将所有 snmp 陷阱都作为未知陷阱接收

问题描述

我已经配置了一台 centos 机器(7.5)从 BIG-IP F5 机器接收 snmptrap,但我收到的所有 snmptrap 都是未知的。
我的/etc/snmp/snmtrapd.conf

# Example configuration file for snmptrapd
# No traps are handled by default, you must edit this file!
authCommunity   log,execute cacti2021
#traphandle  default /usr/sbin/snmptt
#traphandle SNMPv2-MIB::coldStart    /usr/bin/bin/snmptt cold
traphandle default /usr/sbin/snmptthandler --ini=/etc/snmp/snmptt.ini
disableAuthorization yes

我下载了所有 F5 MIB 文件并将它们放在 /usr/share/snmp/mibs 中,然后我在目录 /usr/share/snmp/ 中创建了一个 snmp.conf 文件,这是文件snmp.conf

# SECTION: Textual mib parsing
#
#   This section controls the textual mib parser.  Textual
#   mibs are parsed in order to convert OIDs, enumerated
#   lists, and ... to and from textual representations
#   and numerical representations.

# mibdirs: Specifies directories to be searched for mibs.
#   Adding a '+' sign to the front of the argument appends the new
#   directory to the list of directories already being searched.
#   arguments: [+]directory[:directory...]

mibdirs  +/usr/share/snmp/mibs
mibdirs  +/usr/share/mibs 
mibdirs  +/usr/share/mibs/other
mibdirs  +/usr/share/mibs/ietf
mibdirs  +/usr/share/mibs/dell
#mibdirs  +/usr/share/mibs/cisco
mibdirs  +/usr/share/mibs/vmware
# mibdirs  +/opt/mx/mibs
# mibdirs    +/usr/share/mibs/cisco

# mibs: Specifies a list of mibs to be searched for and loaded.
#   Adding a '+' sign to the front of the argument appends the new
#   mib name to the list of mibs already being searched for.
#   arguments: [+]mibname[:mibname...]

mibs +ALL

# showmiberrors: Should errors in mibs be displayed when the mibs are loaded
#   arguments: (1|yes|true|0|no|false)

showmiberrors  yes 

# mibwarninglevel: Should warnings about mibs be displayed when the mibs are loaded
#   arguments: 1|2

mibwarninglevel  0

# miballowunderline: Should underlines be allowed in mib symbols (illegal)
#   arguments: (1|yes|true|0|no|false)

miballowunderline  yes

# mibreplacewithlatest: Force replacement of older mibs with known updated ones
#   arguments: (1|yes|true|0|no|false)

mibreplacewithlatest  yes

有人可以帮我解决问题。

标签: snmp-trapsnmptrapd

解决方案


是的,所有的陷阱都是未知的,因为你没有定义它们。使用 snmpttconvertmib 将所需的 MIBS 转换为 snmptt 格式。例如:

snmpttconvertmib --in=/home/username/.snmp/mibs/SomeMibFile.my --out=snmptt.conf.bigipf5 --exec='/bin/bash /usr/local/bin/trap/submit_check_result $r '"TRAP 2" -net_snmp_perl --format=4

然后在 snmptt.ini 的 configs 列表中列出该文件:

...
[TrapFiles]
# A list of snmptt.conf files (this is NOT the snmptrapd.conf file).  The COMPLETE path 
# and filename.  Ex: '/etc/snmp/snmptt.conf'
snmptt_conf_files = <<END
/etc/snmp/snmptt.conf.bigipf5
END

然后重新启动 snmptt.service。现在它将把定义的陷阱视为已知的。


推荐阅读