Как создать распределенные приложения, состояние которых зависит только от конкретных мониторов


 
В данной статье речь пойдет о том, как создать распределенное приложение, но только так, чтобы его состояние зависело только от конкретных мониторов, и не зависело от состояния всего объекта.
В данном примере будет создано распределенное приложение (далее DA), которое включает в себя объект Windows Operating System. При этом состояние этого приложения будет зависеть только от состояния основных служб операционной системы, которое передается с помощью агрегированного монитора Core Windows Services.
Для решения данной задачи необходимо выполнить следующие действия:

1.      Открыть консоль Operations Manager -> Authoring -> Distributed applications

2.      В правой консоли задач нажать Create a New Distributed Application

3.      В открывшемся окне указать имя DA, в поле Template выбрать Blank, и выбрать пакет управления для сохранения DA. Нажать OK:

 

image

 

4.      В окне Distributed Application Designer нажать гиперссылку Advanced Search:

 

image

 

5.      В окне поиска объектов, в поле Search for: выбрать класс Windows Operating System и нажать Search. После того как объекты будут найдены, они отобразятся в поле Available items. Выбрать нужные объект и нажать Add и затем OK:

 

image

 

6.      Далее, в окне Advanced Search Results, правой кнопкой мыши кликнуть по объекту и в контекстном меню выбрать Add To -> New Component Group:

image

 

7.      В открывшемся окне Create New Component Group указать имя компоненты и нажать OK.

 

image

8.      После создания компоненты необходимо нажать Save для сохранения DA:

 

image

 

Замечание: Создать новую компоненту в DA можно и другим способом. Для этого необходимо выбрать Add Component в верхнем меню. В открывшемся окне указать имя компоненты, выбрать пункт Objects of the following type(s) и отметить необходимые классы:

 

image    На скриншоте, в качестве примера, отмечены 2 класса: Windows Server 2008 Logical Disk и Windows Server 2008 R2 Full Operating system.

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

    После нажатия OK, в левой панели отобразится список всех объектов, разбитых по классам. Для добавления объектов в созданную компоненту необходимо мышкой перетащить объект из списка в окно компоненты.

 
 

9.      После того, как DA было сохранено, в консоли Operations Manager перейти на вкладку Authoring -> Management Packs Objects -> Monitors

10.   Для того, чтобы отобразить список мониторов для созданного DA, а точнее для его компоненты, нажать кнопку Scope (если кнопка ещё не нажата) или нажать ссылку Change Scope... (если кнопка Scope уже нажата).

11.   В появившемся окне нажать кнопку Clear All, в поле Look For ввести имя компоненты распределенного приложения, отметить параметр View all targets и выбрать компоненту. Обращаю внимание, что нужно выбрать именно компоненту (в данном примере это Operating System State), а не распределенное приложение. Нажать ОК:

image

 

 

12.   Далее необходимо отключить все стандартные зависимые мониторы, которые автоматически создаются при создании DA. Для этого нужно раскрыть агрегирующие мониторы для каждой категории, выбрать зависимый монитор, который был создан по умолчанию, и отключить его с помощью кнопки Disable в правой панели задач:

image

 

Замечу, что количество зависимых мониторов будет зависеть от количества классов, которые были отмечены при создании компоненты. Не рекомендуется удалять эти мониторы, так как при новом сохранении DA они заново создадутся.

 

13.   Настало время создать собственный монитор, который будет передавать состояние от выбранного нами монитора созданному DA.  В правой панели задач нажать Create a Monitor -> Dependency Rollup Monitor:

image

14.   В открывшемся окне указать следующие данные:

·        Name - имя зависимого монитора

·        Monitor Target - ранее созданная компонента DA

·        Parent MonitorAvailability

·        Management Pack – пакет управления, в котором было сохранено DA

image

Замечание: В качестве Parent Monitor можно выбрать любой из агрегирующих мониторов, но нужно помнить о том, что самому верхнему объекту распределённого приложения передается состояние только от агрегирующих мониторов «Availability» компонентов этого DA. То есть получается следующее: компоненте распределенного приложения передаются состояния от всех агрегирующих мониторов объектов, а самому верхнему объекту передается состояние только от агрегирующего монитора «Availability». Это By Design. Для того, чтобы передать состояние от всех агрегирующих мониторов, нужно либо создать свои зависимые мониторы, либо поменять значение Parent Monitor на Entity Health для по умолчанию созданного зависимого монитора.

15.   На вкладке Monitor Dependency раскрыть агрегирующий монитор класса и выбрать монитор, от которого будет зависеть состояние DA. В данном примере таким классом является Windows Server 2008 R2 Full Operating system, а мониторомCore Windows Services Rollup:

image
Как вы видите, можно указать любой монитор, который привязан к классу Windows Server 2008 R2 Full Operating system. Если при создании компоненты мы бы отметили несколько классов, то была бы возможность указать мониторы, привязанные и к этим классам.

16.   На вкладке Health Rollup Policy выбрать логику передачи состояния:

 

image

 

17.   На вкладке Configure Alert выбрать, хотите ли вы генерировать алерт в консоли Operations Manager и нажать Create.

18.   После сохранения зависимого монитора, он отобразится в модели здоровья:

 

image

 

 

19.   Для того, чтобы проверить модель здоровья созданного DA, нужно в консоли Operations Manager перейти в папку Monitoring -> Distributed Applications, открыть Health Explorer созданного DA и убедиться, что его состояние зависит только от монитора Core Windows Services:

 

image

 

Как видно на скриншоте выше, при создании DA создается большое количество агрегирующих и зависимых мониторов. Среди них есть зависимый монитор All Contained Objects. Он не влияет на логику передачи состояния, поэтому его можно отключить для данного DA с помощью переопределения (Override).

В итоге, модель здоровья созданного DA будет выглядеть следующим образом:

 

image

 

 

 

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

 

 

 

 


Comments (1)

  1. anonymouscommenter says:

    В основе обнаружения любого компонента в распределенном приложении лежит модуль Microsoft.SystemCenter

Skip to main content