NET-SNMP: дополнительные сведения о Disman Traps

Я работаю над ловушками, используя NET-SNMP и MIB событий DISMAN.

Со следующей конфигурацией 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%", то это было бы гораздо полезнее

Я не понимаю, как это сделать с помощью директивы монитора.

Кто-нибудь знает как это сделать?


person user329633    schedule 31.10.2012    source источник


Ответы (1)


Собственно, для этого и нужен ключ -o: он позволяет добавлять дополнительные объекты к отправляемому уведомлению. В вашем случае, если вы хотите, чтобы «полезный текст» был включен в значение сообщения об ошибке, вы поступаете правильно, используя переключатель -o для включения этих объектов. Почему это не работает для вас, я не уверен. Но вам не нужна отдельная строка монитора для каждой записи строки. Вместо этого используйте тот, который проверяет значение в каждой строке. Например, токен конфигурации defaultMonitors на самом деле указывает это:

monitor   -o prNames -o prErrMessage "process table" prErrorFlag != 0

Который проверяет каждый prErrorFlag сразу.

Имя, которое вы используете в кавычках, — это просто имя триггера, и эта информация не отправляется в ловушку, и, к сожалению, вы не можете ее принудительно отправить. Это просто административное имя монитора, которое используется внутри и в самих записях DISMAN-MIB для создания отчетов о мониторе.

person Wes Hardaker    schedule 31.10.2012
comment
Спасибо за ответ. Даже пример на net-snmp.sourceforge.net/ wiki/index.php/TUT:DisMan_Monitoring показывает эту конфигурацию: monitor machineTooBusy hrProcessorLoad › 90 - person user329633; 31.10.2012
comment
Возвращает следующие значения: DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (6539) 0:01:05.39 SNMPv2-MIB::snmpTrapOID.0 = OID: DISMAN-EVENT-MIB::mteTriggerFired DISMAN-EVENT-MIB::mteHotTrigger .0 = STRING: machineTooBusy DISMAN-EVENT-MIB::mteHotTargetName.0 = STRING: DISMAN-EVENT-MIB::mteHotContextName.0 = STRING: DISMAN-EVENT-MIB::mteHotOID.0 = OID: HOST-RESOURCES-MIB ::hrProcessorLoad.769 DISMAN-EVENT-MIB::mteHotValue.0 = ЦЕЛОЕ ЧИСЛО: 92 - person user329633; 31.10.2012
comment
В нашем случае $mteHotTrigger выглядит как «dskTable». У нас есть предупреждение о диске, но мы не знаем его природу. Именно по этой причине мне было интересно, могу ли я использовать $mteHotContextName. Это казалось подходящим выбором и доступно. Любая идея, как я могу заполнить эту строку? - person user329633; 31.10.2012
comment
Нет, контекст — это контекст SNMPv3, который не связан со случайной строкой. Обычно это было бы по умолчанию, но вы можете изменить его, но тогда вам нужно настроить snmptrapd, чтобы он также принимал эти другие контексты. Извините, но это не то, что вам нужно. - person Wes Hardaker; 31.10.2012
comment
Ах хорошо. Я ценю вашу помощь в любом случае. Интересно, как кто-нибудь извлекает какую-то пользу из ловушек DISMAN... Может быть, RMON сможет здесь поработать... - person user329633; 31.10.2012
comment
На самом деле, RMON никуда не годится; слишком ориентированы на сеть. Думаю, мне нужно что-то вроде системного журнала, который я бы использовал, если бы мог. У меня есть только ловушки для этого требования... Я проведу еще исследование... - person user329633; 31.10.2012
comment
Работа DISMAN не была предназначена для доставки всего. Цель, когда рабочая группа IETF создала DISMAN-EVENT-MIB, заключалась в том, чтобы агент выполнил несколько основных тестов, а затем отправил предупреждение менеджеру, в котором говорилось, что вам, вероятно, следует проверить меня; что-то не так. IE, целью было гораздо больше уведомить менеджера, чтобы он мог получать и анализировать данные, а не превращать самого агента в полноценного менеджера. - person Wes Hardaker; 01.11.2012
comment
Уведомление должно включать объекты *ErrMessage, если вы сказали включить их, хотя... Я думаю, это будет большая часть того, что вы хотели. Но часть проблемы заключается в том, что когда условие ошибки исчезает, строка снова становится пустой, поэтому вы не можете точно знать, почему ошибка исчезла, просто то, что она есть. - person Wes Hardaker; 01.11.2012