Регистрация SNMP трапов в Operations Manager 2012 с использованием WMI запросов
Периодически возникают ситуации, когда необходимо регистрировать SNMP трапы с помощью Operations Manager 2012 от устройств, которые нельзя добавить в качестве сетевых в Operations Manager.
Как быть в такой ситуации? Существует, по крайней мере, один способ с помощью которого можно получать такие трапы, используя WMI запросы.
Приведу небольшой пример, как это можно реализовать.
Для начала нам потребуется сервер, который будет выступать в качестве ловушки трапов. Это может быть любой Windows сервер, на котором установлены и настроены следующие компоненты: SNMP Service, SNMP WMI Provider.
Так же, на этом сервере должен быть установлен агент Operations Manager. Замечу, что в этой роли не может выступать управляющий сервер, так как в версии Operations Manager 2012 используется свой стек протоколов SNMP. Даже если службы SNMP установлены и стартованы, то при рестарте службы System Center Management они остановятся.
Далее, на устройстве, от которого мы хотим получать SNMP трапы, необходимо настроить отправку трапов на сервер, который у нас выступает в роли ловушки трапов.
Для того, чтобы проверить, получает ли сервер трапы от устройства, можно воспользоваться встроенной утилитой WBEMTEST. Для этого необходимо выполнить следующие действия:
a. В командной строке набрать Wbemtest и в открывшемся окне нажать Connect:
b. В поле Namespace напечатать root \snmp \localhost и нажать Connect:
c. Далее выбрать Notification Query , в открывшемся запросе написать SELECT * FROM SnmpNotification и нажать Apply:
d. Теперь необходимо сгенерировать тестовый трап и посмотреть, регистрируется ли он нашим сервером:
e. Двойным кликом мышкой по записи можно открыть свойства SNMP трапа. Позже, эти свойства могут понадобиться для построения запросов или для описания алертов:
После того, как мы убедились, что SNMP трапы регистрируются сервером, настало время настроить их мониторинг в Operations Manager.
Для мониторинга SNMP трапов на сервере создадим монитор типа WMIEvents --> WMIEventsReset.
Для создания монитора необходимо выполнить следующее:
a. В консоле Operations Manager перейти на вкладку Authoring --> Management Pack Objects --> Monitors:
b. В правой панели задач запустить задачу Createa Monitor --> Unit Monitor:
с. В открывшемся окне, на вкладке Monitor Type выбрать WMI Events --> Simple Event detection --> WMI Event Reset. В поле ManagementPack либо выбрать уже имеющийся пакет управления, либо создать новый. Нажать Next.
d. На вкладке General, в поле Name, напечатать имя монитора. В поле Monitor target выбрать класс WindowsServer. Снять галку в поле Monitor isenabled. Нажать Next .
e. На вкладке First WmiEventProvider, в поле WMI Namespace напечатать root \snmp \localhost, в поле Query напечатать SELECT * FROM SnmpNotification WHERE Identification = " < OID SNMP трапа, при получении которого генерируется алерт> " . В моем примере это 1.3.6.1.4.1.2021.251.1.0.17. Выбрать интервал опроса 60 секунд и нажать Next.
f. На вкладке Build First Expression нажать Insert и добавить любое значение (позже мы удалим его). Нажать Next.
g. На вкладке Second WmiEventProvider, в поле WMI Namespace напечатать root \snmp \localhost, в поле Query напечатать SELECT * FROM SnmpNotification WHERE Identification = " < OID SNMP трапа, при получении которого алерт закрывается> " . В моем примере это 1.3.6.1.6.3.1.1.5.4. Выбрать интервал опроса 60 секунд и нажать Next.
h. На вкладке Build Second Expression нажать Insert и добавить любое значение (позже мы удалим его). Нажать Next.
i. На вкладке Configure Health напротив FirstEventRaised выбрать состояние Warning, а напротив SecondEventRaised выбрать состояние Healthy. Нажать Next.
j. Если необходимо генерировать алерт при получении SNMP трапа, на вкладке Configure Alerts отметить поле Generate alerts for this monitor, в поле Generate an alert when выбрать состояние The monitor is in a warning health state, в поле Alert Descriptionдобавить описание алерта. В описании алерта можно использовать переменные для отображения свойств SNMP трапа. Например, переменная $Data/Context/DataItem/Property[@Name=' AgentAddress ']$ будет показывать IP адрес отправителя трапа. Далее нажать Create.
После создания монитора необходимо удалить данные на вкладкахFirst Expression и Second Expressionранее созданного монитора . Для этого нужно открыть свойство монитора, перейти на вкладку First Expression и нажать Delete. Эту же операцию выполнить на вкладке Second Expression:
Для того, чтобы монитор заработал, его необходимо включить для сервера, который выступает в качестве ловушки трапов. Для включения монитора необходимо выполнить следующие операции:
a. Выделить созданный монитор и в правой консоле задач выбрать задачу Overrides --> Override the Monitor --> For a specific object of class: Windows Server. В появившемся окне выбрать сервер и нажать OK.
b. В открывшемся окне Override Properties , напротив параметра Enable поставить галку, а в колонке Override Value поменять значение на True. Нажать Ok.
После того, как новая конфигурация вступит в силу, монитор будет ловить SNMP трапы, используя WMI запросы.
В лабораторной среде это выглядит следующим образом:
Команда System Center PFE Russia.