Сбор SNMP трапов в SCOM 2012 без обнаружения устройства. [english]Catch SNMP traps from a device that can`t be discovered as SNMP in SCOM 2012.

Часто стоит задача настроить мониторинг событий путем получения SNMP трапов в Operations Manager 2012. Но если источник трапов является, например, компьютером или устройством, которое нельзя обнаружить как SNMP устройство, как решить эту проблему? Существует решение - создать монитор или правило на базе модуля System.SnmpTrapProvider (модуль подробно документирован здесь - https://msdn.microsoft.com/en-us/library/ee809322.aspx). Не смотря на то, что в описании указано что он применим только для версии 2007 R2,  на самом деле модуль отлично работает и в 2012 версии (2012 RTM, SP1 и R2). Ниже я приведу пример создания правила с использованием SCOM 2007 R2 Authoring Console (доступно по следующей ссылке - https://www.microsoft.com/en-us/download/details.aspx?id=18222).

[english] It is a typical task for Operations Manager 2012 to monitor and collect SNMP traps from network devices. However, what if you need to catch SNMP traps from a computer or a device that can`t be discovered as SNMP device in Operations Manager? One solution would be to create a custom monitor or rule based on System.SnmpTrapProvider module (module is documented in details here - https://msdn.microsoft.com/en-us/library/ee809322.aspx ). Although the description of this module indicates that it is supported only for 2007 R2, in fact module works great in 2012 version as well (confirmed for 2012 RTM, SP1, R2). Below we provide an of a sample rule, created in Operations Manager 2007 R2 Authoring Console (available here -https://www.microsoft.com/en-us/download/details.aspx?id=18222).

Для начала необходимо создать Class, который будет обрабатываться на Management сервере на который отправляются трапы(процесс создания описан в этой статье Simple class using Authoring Console).

[english] First of all, we need to create a Class that will serve as a target for the rule, which will be managed by Management server. You can read more about creating classes using Authoring Console in this article:  https://technet.microsoft.com/en-us/library/hh457543.aspx.

1.  Создаем Management Pack

1.  [english] Сreate a management pack

   

 

 

 2.  Создаем класс и обнаружение

 2.  [english] Create  a Class and Discovery

  

 

 3.  Указанный ниже ключ реестра необходимо создать на сервере управления, на который настроена отсылка трапов.

 3.  [english]   You must create the following registry key on the Management server that receives traps.

 

 4. Создаем условия обнаружения по ключу реестра

 4. [english] Create a condition for detection of the registry key

  5.  Класс и обнаружение созданы, теперь можно приступить к созданию самого правила.

  5. [english] The class and the discovery created, and now we can begin to build rule.

6.  Переходим на вкладку Health Model-->New-->Custom Rule

6.  [english] Go to the tab Health Model-->New-->Custom Rule

7.  Выбираем ранее созданный класс

7.  [english] Select a previously created class

8. Создаем Data Source для правила

8. [english] Create a Data Source for the rule

9.  Указываем нужные нам параметры

9. [english] Specify required parameters

  < IP>10.10.10.10</ IP>     # IP адрес устройства которое отсылает трапы

<CommunityString>cAB1AGIAbABpAGMA</CommunityString>    # CommunityString*

  < AllTraps> true</ AllTraps>    # если указать  true то правило будет регистрировать все трапы от устройства

* Community String обязательно указывать в формате Base64 , как написано в данной статье: https://blogs.technet.com/b/brianwren/archive/2009/01/21/snmp-queries.aspx

[english]

<IP>10.10.10.10</IP>    # IP address of the device that sends traps

<CommunityString>cAB1AGIAbABpAGMA</CommunityString>    # Community String *

<AllTraps>true</AllTraps>   # if you specify true, then the rule will receive all traps from the device

* be sure to specify the Community  String in the f format in Base64, as written in the article https://blogs.technet.com/b/brianwren/archive/2009/01/21/snmp-queries.aspx

 

  9.1  Если же необходимо фильтровать трапы по OID, то добавляем дополнительные  параметры:

<IP>10.10.10.10</IP>

            <CommunityString>cAB1AGIAbABpAGMA</CommunityString>

             <AllTraps>false</AllTraps>

             <OIDProps>

                      <OIDProp>.1.3.6.1.6.3.1.1.5.1</OIDProp>

            </OIDProps>

 

 9.1 [english] If you want to filter traps, then add additional parameters

            <IP>10.10.10.10</IP>

            <CommunityString>cAB1AGIAbABpAGMA</CommunityString>

             <AllTraps>false</AllTraps>

             <OIDProps>

                      <OIDProp>.1.3.6.1.6.3.1.1.5.1</OIDProp>

            </OIDProps>

 10.  Если больше никакие фильтры не нужны переходим к конфигурации алерта

 10.  [english] If you do not need additionally filter traps, begin to create an alert

11.    Добавляем информацию в Alert Description, например значение OID 3 строки трапа

11.     [english] Add an information to Alert Description, such as an OID value from the 3th string

$Data/EventData/DataItem/SnmpVarBinds/SnmpVarBind[3]/Value$

12. Сохраняем и правило создано.

12. [english] Save, the rule created

 

13.  Если необходимо дополнительно фильтровать трапы по OID Value добавляем еще один модуль System . ExpressionFilter ( модуль подробно документирован здесь - https://msdn.microsoft.com/en-us/library/ee692962.aspx)

13.   [english] If you want to filter traps by OID Value add and configiure another module - System.ExpressionFilter(module is documented in detail here -https://msdn.microsoft.com/en-us/library/ee692962.aspx)

 

14.  Настраиваем условие фильтра, например, по значению третьего OID трапа

14. [english] Configure a filter condition, for example, by the OID value in the third string

15. Привило с дополнительными фильтрами создано

15. [english] The rule with an additional filter created.

И как успешный  результат - отображение  алерта в консоли управления:

[english] The alert in the Operational console as a successful result.

 

 

 

 

 

Данная статья носит информационный характер, ссылки на веб-сайты предоставляются для удобства пользователей. Корпорация Майкрософт не несетникакой ответственности за содержание веб-сайтов, не предоставляет никаких гарантий относительно точности, полноты или законности их содержания, ссылки на которые используются в данной статье. Ссылка на внешний узел не подразумевает одобрения мнений, информации или продукции представленной на таких веб-сайтах.