我正在使用NET-SNMP和DISMAN事件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
我发现disman陷阱正在填充以下变量:
$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指令
执行此操作有谁知道怎么做?
答案 0 :(得分:1)
这实际上是-o开关的用途:它允许您向发出的通知添加其他对象。在您的情况下,如果您想要包含在错误消息值中的“有用文本”,那么通过使用-o开关来包含这些对象,您正在做正确的事情。为什么它不适合你,我不确定。但是,每行输入不需要单独的监视行。相反,使用一个检查每一行的值。例如,defaultMonitors
配置令牌实际上指定了:
monitor -o prNames -o prErrMessage "process table" prErrorFlag != 0
一次检查每个prErrorFlag。
您在引号中使用的名称只是触发器的名称,并且该信息不会在陷阱中发送,不幸的是您不能强制它。它只是内部使用的监视器的管理名称,在DISMAN-MIB条目本身用于报告监视器。