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

 

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

В данном примере будет создано распределенное приложение (далее DA), которое включает в себя объект WindowsOperatingSystem. При этом состояние этого приложения будет зависеть только от состояния основных служб операционной системы, которое передается с помощью агрегированного монитора CoreWindowsServices.

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

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. В окне поиска объектов, в поле Searchfor: выбрать класс WindowsOperatingSystem и нажать Search. После того как объекты будут найдены, они отобразятся в поле Availableitems. Выбрать нужные объект и нажать Add и затем OK:

 

image

 

6. Далее, в окне AdvancedSearchResults, правой кнопкой мыши кликнуть по объекту и в контекстном меню выбрать AddTo -> NewComponentGroup:

image

 

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

 

image

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

 

image

 

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

 

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

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

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

 

 

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

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

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

image

 

 

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

image

 

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

 

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

image

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

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

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

· Parent Monitor – Availability

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

image

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

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

image

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

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

 

image

 

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

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

 

image

 

 

19. Для того, чтобы проверить модель здоровья созданного DA, нужно в консоли Operations Manager перейти в папку Monitoring -> DistributedApplications, открыть HealthExplorer созданного DA и убедиться, что его состояние зависит только от монитора CoreWindowsServices:

 

image

 

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

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

 

image

 

 

 

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