SNMP Trap
Сервер SiteScope способен принимать и, при необходимости, обрабатывать уведомления SNMP (SNMP Trap). Но прежде чем создавать монитор обработки “SNMP Trap”, необходимо настроить одну или несколько систем, управляемых по протоколу SNMP, на отправку уведомлений на сервер SiteScope.
Далее, в роли экспериментальной системы, отправляющей уведомления серверу SiteScope, будет выступать Linux-система с комплектом ПО “net-snmp”. На самом деле, достаточно одной команды (программы) из этого пакета, а именно “snmptrap”.
Для создания монитора “SNMP Trap”:
- Открыть веб-интерфейс HP SiteScope
- Раздел “Мониторы” → Выбрать или создать группу мониторов → Создать монитор “SNMP-ловушка”
- Заполнить поля основных свойств монитора:
- Общие параметры
- Имя: snmp trap
- Описание монитора: SNMP Trap monitor for testing purpose
- Описание отчёта: Report for SNMP Trap monitor
- Параметры монитора “SNMP-ловушка”
- Поиск в содержимом: (пока не заполнять)
- Метки совпавших значений: myValue
- Создавать оповещения: Для каждой совпавшей…
- Параметры запуска монитора
- Частота: 30 мин.
- Частота ошибок: (не заполнять)
- Проверять ошибку: нет
- Расписание монитора: Каждый день круглосуточно
- Показывать результаты при обновлении: да
- Зависимости: (не заполнять)
- Параметры порогов
- Если не доступен: Установить статус монитора в соответствии с порогами
- Статус по умолчанию: Норма
- При внутренней ошибке: Установить статус монитора в соответствии с порогами
- Условия ошибки: (пока не заполнять)
- Условия предупреждения: (пока не заполнять)
- Условия нормы: (пока не заполнять)
- Параметры интеграции с HP: (не заполнять)
- Параметры сопоставления событий: (не заполнять)
- Включение и отключение монитора: (не заполнять)
- Включение и отключение связанных оповещений: (не заполнять)
- Теги для поиска и фильтрации: (не заполнять)
- Параметры базовых показателей: (не заполнять)
- Общие параметры
- Сохранить
Открыть две терминальные сессии. Одну – на экспериментальной Linux-машине (tools), другую – на сервере HP SiteScope (sitescope):
[root@tools ~]# snmptrap -v 1 -c public sitescope SNMPv2-MIB::snmpTrapOID.0 localhost 6 17 '' SNMPv2-MIB::sysLocation.0 s "Normal Status" <1> [root@sitescope ~]# tail -f /opt/HP/SiteScope/logs/snmptrap.log <2> |
- Отправка уведомления с узла tools серверу sitescope
- Вывод файла snmptrap.log на сервере SiteScope для анализа полученных уведомлений SNMP
При изучении полученного уведомлении видно, что передаваемая в примере строковая переменная со значением “Normal Status” отображается на сервере как “var1=Normal Status”.
Предположим, что необходимо отслеживать все уведомления с переменной “var1”, в значении которой есть слово “Status”. Кроме этого, необходимо, чтобы монитор изменял свой статус на “Ошибка”, если переменная будет иметь значение “Error Status” или “Abnormal Status”, и возвращался в нормальное состояние, в любом другом случае.
Для этого, в веб-интерфейсе HP SiteScope открыть свойства монитора “snmp trap” и внести следующие изменения:
- Параметры монитора “SNMP-ловушка”
- Поиск в содержимом: /var1=([a-zA-Z]*sStatus)/
- Параметры порогов
- Условия ошибки:
- myValue == Error Status
- myValue == Abnormal Status
- Условия нормы: always (Default)
- Условия ошибки:
- Проверить и сохранить
Замечание | Поиск в содержимом уведомлений осуществляется с помощью механизма регулярных выражений. Регулярное выражение в SiteScope обрамляется символами “/”.В приведённом примере:
|
Порядок работы этого монитора таков:
- При наступлении момента времени, указанного в разделе “Параметры запуска монитора”, монитор анализирует файл /opt/HP/SiteScope/logs/snmptrap.log на предмет наличия в нём уведомлений, которые поступили с момента последнего запуска монитора. Эти уведомления монитор распознаёт как новые и продолжает работу только с ними
- К новым уведомлениям, применяется выборка через регулярное выражение, указанное в поле “Поиск в содержимом” раздела “Параметры монитора “SNMP-ловушка””. Если выборка возвращает результат, то соответствующее значение будет присвоено внутренней переменной “myValue” (поле “Метки совпавших значений”)
- Выполняется проверка условий, описанных в разделе “Параметры порогов”, и, если какое либо из условий будет истинным, то происходит переключение монитора в соответствующее состояние (Статус)
К сожалению, инструмент SiteScope, который встроен в свойства монитора “SNMP-ловушка”, позволяет лишь правильно составить выборку из списка уведомлений, но не отображает извлечение совпадений, которые могут быть полезны для механизма переключения статуса монитора.
Для того, чтобы было удобней выполнить отладку регулярного выражения можно использовать следующий Perl-сценарий:
#!/usr/bin/perl $myFile=$ARGV[0]; # Первый агрумент - путь к файлу $myExp=$ARGV[1]; # Второй аргумент - регулярное выражение $myLine=1; if ($myFile eq "") { print "Путь к файлу не задан\n"; exit 0; } if ($myExp eq "") { print "Регулярное выражение не задано\n"; exit 0; } print "Обрабатывается файл $myFile ...\n"; open(FILE,"$myFile"); # Открытие файла while(<FILE>) # Перебор всех строк { chomp; # Отрезается спецсимвол от $_ if($_=~/$myExp/) { print "Строка №$myLine: Найдено совпадение. "; print "Значение служебной переменной '$1'\n"; } $myLine++; } exit 0; |
Создать файл с этим кодом, изменить режим доступа к нему и запустить с использованием необходимых аргументов:
[root@sitescope ~]# vi applyreg [root@sitescope ~]# chmod 755 applyreg [root@sitescope ~]# ./applyreg /opt/HP/SiteScope/logs/snmptrap.log "([a-zA-Z]*sStatus)" |
Внимание | Второй аргумент (регулярное выражение) для этого Perl-сценария должен передаваться в обрамлении двойных кавычек. Для приведённого примера: “var1=([a-zA-Z]*sStatus)” |
Подсказка | SiteScope, в регулярных выражениях, поддерживает извлечение до 4-ёх служебных переменных.Если логика работы монитора требует наличия более одной служебной переменной в регулярном выражении, то в поле “Метки совпавших значений” они перечисляются через запятую, а приведённом Perl-сценарии можно внести изменения, добавив помимо $1 вывод этих переменных ($2, $3, $4). |