010-68421378
sales@cogitosoft.com
当前您所在的位置:首页>新闻中心>行业动态

Nagios:SNMP Trap - 如何发送测试Trap

发布时间:2021/07/12 浏览量:2835
本文向您展示了几种向 Nagios 服务器发送Trap以测试 SNMP Trap功能的方法。

概览

本文向您展示了几种向 Nagios 服务器发送Trap以测试 SNMP Trap功能的方法。

有时在对 SNMP Trap问题进行故障排除时,移除可能导致问题的实际设备并改用 snmptrap 命令会非常有帮助。 此故障排除方法将确认您的 Nagios 服务器是否正确接收 SNMP Trap并正确配置。

您将在 Nagios 主机本身上执行该命令,这就是您在以下命令中看到 localhost 的原因。 

正常运行时间

当您发送Trap时,它当然必须符合一组标准。 下面的每个部分都对这些选项进行了解释,但有一个选项很常见且需要解释,即正常运行时间。

每个Trap都需要一个正常运行时间值。 正常运行时间是系统自启动以来运行的时间。 有时这是操作系统,其他设备可能会使用 SNMP 引擎正常运行时间。 无论如何,都会发送一个值。

那么你应该在下面的命令中输入什么值? 奇怪的是,简单地使用两个单引号 '' 不提供任何值将指示命令从您正在执行此操作的操作系统获取值。

对于那些在处理之前深入挖掘并查看假脱机Trap的人来说,他们会想了解它是什么类型的格式。 下面是一个例子:

DISMAN-EVENT-MIB::sysUpTimeInstance 36:2:40:51.67

这相当于 36 天 2 小时 40 分 51.67 秒。

本节的关键点是您现在知道为什么下面的命令有两个单引号 '' 来表示正常运行时间值。

 

SNMP v2 Trap

下面的命令采用以下形式:

snmptrap -v -c

 

使用 MIB:

snmptrap -v 2c -c public localhost '' NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatNotification netSnmpExampleHeartbeatRate i 123456

 

缩短 MIB:

snmptrap -v 2c -c public localhost '' netSnmpExampleHeartbeatNotification netSnmpExampleHeartbeatRate i 123456

 

使用 OID 代替 MIB:

snmptrap -v 2c -c public localhost '' 1.3.6.1.4.1.8072.2.3.0.1 1.3.6.1.4.1.8072.2.3.2.1 i 123456

 

上述命令需要在 /etc/snmp/snmptrapd.conf 中进行以下设置

disableAuthorization yes
traphandle default /usr/sbin/snmptthandler

 

SNMP v3 Trap

下面的命令采用以下形式:

snmptrap -v -e -u -a -A -x -X

 

使用 MIB:

snmptrap -v 3 -e 0x090807060504030201 -u the_user_name -a SHA -A the_SHA_string -x AES -X the_AES_string localhost '' NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatNotification netSnmpExampleHeartbeatRate i 123456

 

缩短 MIB:

snmptrap -v 3 -e 0x090807060504030201 -u the_user_name -a SHA -A the_SHA_string -x AES -X the_AES_string localhost '' netSnmpExampleHeartbeatNotification netSnmpExampleHeartbeatRate i 123456

 

使用 OID 代替 MIB:

snmptrap -v 3 -e 0x090807060504030201 -u the_user_name -a SHA -A the_SHA_string -x AES -X the_AES_string localhost '' 1.3.6.1.4.1.8072.2.3.0.1 1.3.6.1.4.1.8072.2.3.2.1 i 123456

 

上述命令需要在 /etc/snmp/snmptrapd.conf 中进行以下设置

disableAuthorization yes
traphandle default /usr/sbin/snmptthandler
createUser -e 0x090807060504030201 the_user_name SHA the_SHA_string AES the_AES_string
authUser log,execute,net the_user_name

 

 

SNMPTrap定义

以下Trap定义可以放在 /etc/snmp/snmptt.conf 中,这将允许上面发送的测试Trap传递到 Nagios:

EVENT netSnmpExampleHeartbeatRate .1.3.6.1.4.1.8072.2.3.0.1 "netSnmpExampleHeartbeatRate" Normal
FORMAT SNMP netSnmpExampleHeartbeatRate
EXEC /usr/local/bin/snmptraphandling.py "$r" "SNMP Traps" "$s" "$@" "" "netSnmpExampleHeartbeatRate"

 

 

Trap vs Inform

从 net-snmp 网站:

Trap

TRAP 是从一个应用程序发送到另一个应用程序(通常位于远程主机上)的 SNMP 消息。 它们的目的仅仅是通知其他应用程序发生了某些事情,已经注意到等。 TRAP 的一个大问题是它们未被确认,因此您实际上不知道远程应用程序是否收到了您发给它的非常重要的消息。

 

INFORM

SNMPv2 PDU 通过引入 INFORM 的概念解决了这个问题,INFORM 只不过是一个已确认的 TRAP。 IE,当远程应用程序收到 INFORM 时,它会发回一条“我知道了”消息。 这很好,因为发送Trap的人可以继续尝试,直到Trap通过。

 

上面的所有命令都可以从 snmptrap 更改为 snmpinform 这将允许您发送测试通知。

 

 

SNMP Trap配置

可以在以下知识库文章中找到有关配置服务器以接受 SNMP TRAP 的更多详细信息:

Nagios XI - SNMP Trap 强化

Nagios XI - SNMP Trap v3 配置

下一篇:Nagios XI --日志位置和描述
上一篇:Nagios XI--如何设置手机短信警报

                               

 京ICP备09015132号-996网络文化经营许可证京网文[2017]4225-497号 | 违法和不良信息举报电话:4006561155

                                   © Copyright 2000-2023 北京哲想软件有限公司版权所有 | 地址:北京市海淀区西三环北路50号豪柏大厦C2座11层1105室

                         北京哲想软件集团旗下网站:哲想软件 | 哲想动画

                            华滋生物