Сбор SNMP трапов в Operations Manager 2012

Не так давно столкнулся с ситуацией, когда было необходимо поставить на мониторинг сетевые устройства (APC) с помощью Operations Manager 2012, а также выполнять сбор всех трапов SNMP.

Как оказалось, при настройке правил и мониторов для SNMP трапов есть одна особенность. После создания стандартного правила, которое должно было отлавливать любые SNMP трапы от устройства, выяснилось, что некоторые трапы не регистрируются. Детальное тестирование показало что, регистрируются только те трапы, версия протокола SNMP которых совпадает с версией самого SNMP устройства. И наоборот, если версия SNMP трапа не совпадет с версией SNMP устройства, то трап не регистрируется.

В этой статье я покажу, как можно решить эту проблему.

Для начала, необходимо добавить в Operations Manager SNMP устройство. Я не буду описывать как этот делается, так есть много статей на эту тему. Дам лишь несколько ссылок:

 https://blogs.technet.com/b/kevinholman/archive/2011/07/21/opsmgr-2012-discovering-a-network-device.aspx

https://technet.microsoft.com/en-us/library/hh205982.aspx

Далее, создаём следующее правило: Collection Rules --> Event Based --> SNMP Traps (Event)

1.       Для создания правила необходимо выполнить следующее:

           a.       В консоли Operations Manager перейти на вкладку Authoring --> Management Pack Objects --> Rules 

         

 

            b.       В правой панели задач запустить задачу Create a Rule :

           

 

             c.       В открывшемся окне, на вкладке Rule Type выбрать Collection Rules --> Event Based --> SNMP Traps (Event) .  В поле Management Pack, либо выбрать уже имеющийся пакет управления, либо создать новый. Нажать Next.

             

 

          d.       На вкладке General, в поле Rule Name, внести имя правила. Поле Rule Category оставить Event Collection. В поле Rule target выбрать класс Node. Если необходимо собирать SNMP трапы со всех устройств, то поле Rule is enabled необходимо отметить галкой.

          

 

           e.       На вкладке SNMP Trap Provider, в поле Object Identifier, необходимо внести какие-либо значения, иначе не активируется кнопка Create. Позже, мы удалим это значения, для того, чтобы получать все трапы от устройства. После внесения значения нажать Create.

             

 

2.       После создания правила, необходимо экспортировать пакет управления, где это правило сохранено и открыть его в любом редакторе, который может работать с XML.

3.       В открывшемся файле найти строки, которые относятся к созданному нами правилу и удалить текст в тегах <Version ></Version > и < OIDProp ></OIDProp > , и далее сохранить пакет управления: 

Старая версия:  

<Rule ID="MomUIGeneratedRule7945fd24f1064e49ab2c5867e16bc29c" Enabled="true" Target="SystemNetworkManagementLibrary7085600!System.NetworkManagement.Node" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">

        <Category>EventCollection</Category>

        <DataSources>

          <DataSource ID="DS" TypeID="SystemNetworkManagementLibrary7085600!System.NetworkManagement.SnmpTrapEventProvider">

            <IP>$Target/Property[Type="SystemNetworkManagementLibrary7085600!System.NetworkManagement.Node"]/SNMPAddress$</IP>

            <Version>$Target/Property[Type="SystemNetworkManagementLibrary7085600!System.NetworkManagement.Node"]/SNMPVersion$</Version>

            <OIDProps>

              <OIDProp>123</OIDProp>

            </OIDProps>

            <EventOriginId>$Target/Id$</EventOriginId>

            <PublisherId>$Target/Id$</PublisherId>

            <PublisherName>Snmp Event</PublisherName>

            <Channel>SnmpEvent</Channel>

            <LoggingComputer />

            <EventNumber>1501</EventNumber>

            <EventCategory>5</EventCategory>

            <EventLevel>10</EventLevel>

            <UserName />

            <Params />

          </DataSource>

        </DataSources>

        <WriteActions>

          <WriteAction ID="WriteToDB" TypeID="SystemCenter!Microsoft.SystemCenter.CollectEvent" />

          <WriteAction ID="WriteToDW" TypeID="SCDW!Microsoft.SystemCenter.DataWarehouse.PublishEventData" />

        </WriteActions>

      </Rule>

 

Новая версия:

<Rule ID="MomUIGeneratedRule7945fd24f1064e49ab2c5867e16bc29c" Enabled="true" Target="SystemNetworkManagementLibrary7085600!System.NetworkManagement.Node" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">

        <Category>EventCollection</Category>

        <DataSources>

          <DataSource ID="DS" TypeID="SystemNetworkManagementLibrary7085600!System.NetworkManagement.SnmpTrapEventProvider">

            <IP>$Target/Property[Type="SystemNetworkManagementLibrary7085600!System.NetworkManagement.Node"]/SNMPAddress$</IP>

            <Version></Version>

            <OIDProps>

              <OIDProp></OIDProp>

            </OIDProps>

            <EventOriginId>$Target/Id$</EventOriginId>

            <PublisherId>$Target/Id$</PublisherId>

            <PublisherName>Snmp Event</PublisherName>

            <Channel>SnmpEvent</Channel>

            <LoggingComputer />

            <EventNumber>1501</EventNumber>

            <EventCategory>5</EventCategory>

            <EventLevel>10</EventLevel>

            <UserName />

            <Params />

          </DataSource>

        </DataSources>

        <WriteActions>

          <WriteAction ID="WriteToDB" TypeID="SystemCenter!Microsoft.SystemCenter.CollectEvent" />

          <WriteAction ID="WriteToDW" TypeID="SCDW!Microsoft.SystemCenter.DataWarehouse.PublishEventData" />

        </WriteActions>

      </Rule>

 

Замечание: Чтобы найти нужное правило, сначала, с помощью поиска по имени правила, необходимо найти его идентификатор (ID), а уже потом, используя идентификатор, найти нужное правило.

  

 

  

4.      После внесения изменений и сохранения пакета управления, его необходимо импортировать обратно в Operations Manager.

5.      После того, как вступит в силу новая конфигурация, можно смело проверять получение SNMP трапов.

 

Наслаждайтесь работой с Operations Manager!

 

Команда System Center PFE Russia.