NET-SNMP:获取有关Deman陷阱的更多详细信息

NET-SNMP:获取有关Deman陷阱的更多详细信息,snmp,net-snmp,Snmp,Net Snmp,我正在使用NET-SNMP和Deman事件MIB处理陷阱 使用以下snmpd.conf配置: createUser disman MD5 sercrt@1 rouser disman auth agentSecName disman #defaultMonitors yes disk / 90% disk /var 85% disk /opt 95% disk /opt/pkgs 90% disk /ufda 90% proc cron proc rtrcopy 1 1 proc socks10

我正在使用NET-SNMP和Deman事件MIB处理陷阱

使用以下snmpd.conf配置:

createUser disman MD5 sercrt@1
rouser disman auth
agentSecName disman
#defaultMonitors yes
disk / 90%
disk /var 85%
disk /opt 95%
disk /opt/pkgs 90%
disk /ufda 90%
proc cron
proc rtrcopy 1 1
proc socks1081 1 1
# monitor must have ".." in the line
monitor -u disman -r 30 -o prNames.1 -o prErrMessage.1 "Cron not running" prErrorFlag.1 != 0
monitor -u disman -r 30 -o prNames.2 -o prErrMessage.2 "rtrcopy running" prErrorFlag.2 != 0
monitor -u disman -r 30 -o prNames.3 -o prErrMessage.3 "socks1081 running" prErrorFlag.3 != 0
monitor -u disman -r 30  -o dskPath.1 -o dskErrorMsg.1 "/ is below 90%" dskErrorFlag.1 != 0
monitor -u disman -r 30  -o dskPath.2 -o dskErrorMsg.2 "/var is below 90%" dskErrorFlag.2 != 0
monitor -u disman -r 30  -o dskPath.3 -o dskErrorMsg.3 "/opt is below 90%" dskErrorFlag.3 != 0
monitor -u disman -r 30 -o dskPath.4 -o dskErrorMsg.4 "/opt/pkgs is below 90%" dskErrorFlag.4 != 0
monitor -u disman -r 30  -o dskPath.5 -o dskErrorMsg.5 "/ufda is below 90%" dskErrorFlag.5 != 0
我发现Deman陷阱填充了以下变量:

$1 = mteHotTrigger           dskTable  
$2 = mteHotTargetNameThe     '' 
$3 = mteHotContextName       ''
$4 = mteHotOID               .1.3.6.1.4.1.2021.9.1.100.2
$5 = mteHotValue             1
在事件列表中,这对操作员来说不是很有用。我想,若我可以用一些有用的文本填充mteHotContextName,例如“/低于90%”,那个么这将非常有用

我看不出如何使用monitor指令执行此操作


有人知道怎么做吗?

这就是-o开关的实际用途:它允许您向发送的通知中添加其他对象。在您的情况下,如果希望错误消息值中包含“帮助文本”,那么使用-o开关包含这些对象是正确的。为什么对你不起作用,我不确定。但您不需要为每行条目单独设置一行监视器。相反,使用一个检查每一行的值。例如,
defaultMonitors
配置令牌实际上指定了以下内容:

monitor   -o prNames -o prErrMessage "process table" prErrorFlag != 0
它一次检查每个错误


您在引号中使用的名称只是触发器的名称,不幸的是,该信息没有在陷阱中发送,您无法强制它发送。它只是监视器的管理名称,在内部和DISAN-MIB条目中用于报告监视器。

这实际上就是-o开关的用途:它允许您向发送的通知添加其他对象。在您的情况下,如果希望错误消息值中包含“帮助文本”,那么使用-o开关包含这些对象是正确的。为什么对你不起作用,我不确定。但您不需要为每行条目单独设置一行监视器。相反,使用一个检查每一行的值。例如,
defaultMonitors
配置令牌实际上指定了以下内容:

monitor   -o prNames -o prErrMessage "process table" prErrorFlag != 0
它一次检查每个错误


您在引号中使用的名称只是触发器的名称,不幸的是,该信息没有在陷阱中发送,您无法强制它发送。它只是监视器的管理名称,在内部和DISAN-MIB条目中用于报告监视器。

感谢您的回复,甚至上的示例也显示了此配置:monitor MachineTobusy hrProcessorLoad>90返回这些值:DISAN-EVENT-MIB::sysUpTimeInstance=Timeticks:(6539)0:01:05.39 SNMPv2 MIB::snmpTrapOID.0=OID:DISMAN-EVENT-MIB::MTETRIGGER:mteHotTrigger.0=STRING:MACHINETOBUSY DISMAN-EVENT-MIB::MTEHOTargetName.0=STRING:DISMAN-EVENT-MIB::mteHotContextName.0=STRING:DISMAN-EVENT-MIB::mteHotOID.0=OID:HOST-RESOURCES-MIB::hrProcessorLoad.769DISMAN-EVENT-MIB::mteHotValue.0=INTEGER:92在我们的例子中,$mteHotTrigger看起来是“dskTable”。我们有一个磁盘警报,但我们不知道它的性质。出于这个原因,我想知道是否可以使用$mteHotContextName。这似乎是一个合适的选择,而且是可行的。知道如何填充该字符串吗?不,上下文是与随机字符串无关的SNMPv3上下文。默认值通常为“”,但您可以更改它,但随后需要配置snmptrapd以接受其他上下文。对不起,那不是你需要的。啊,好的。无论如何,我感谢你的帮助。我想知道人们是如何从Deman陷阱中获得任何价值的。。。也许RMON可以在这里完成一项工作…感谢您的回复,即使上的示例显示了此配置:monitor MachineTobusy hrProcessorLoad>90返回这些值:DISMAN-EVENT-MIB::sysUpTimeInstance=Timeticks:(6539)0:01:05.39 SNMPv2 MIB::snmpTrapOID.0=OID:DISMAN-EVENT-MIB::MTETRIGGER:mteHotTrigger.0=STRING:MACHINETOBUSY DISMAN-EVENT-MIB::MTEHOTargetName.0=STRING:DISMAN-EVENT-MIB::mteHotContextName.0=STRING:DISMAN-EVENT-MIB::mteHotOID.0=OID:HOST-RESOURCES-MIB::hrProcessorLoad.769DISMAN-EVENT-MIB::mteHotValue.0=INTEGER:92在我们的例子中,$mteHotTrigger看起来是“dskTable”。我们有一个磁盘警报,但我们不知道它的性质。出于这个原因,我想知道是否可以使用$mteHotContextName。这似乎是一个合适的选择,而且是可行的。知道如何填充该字符串吗?不,上下文是与随机字符串无关的SNMPv3上下文。默认值通常为“”,但您可以更改它,但随后需要配置snmptrapd以接受其他上下文。对不起,那不是你需要的。啊,好的。无论如何,我感谢你的帮助。我想知道人们是如何从Deman陷阱中获得任何价值的。。。也许RMON可以在这里工作。。。