OpsMgr и несколько доменов


 

Ситуация: OpsMgr мониторит серверы в нескольких доменах.

(К слову. Если домены связаны доверительными отношениями и работает Kerberos, то агенты прозрачно аутентифицируются на OpsMgr. Иначе надо использовать сертификаты.)

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

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

Создать группу включающую все компьютеры домена легко. Запускаем оснастку Operations Console — Authoring – Create New Group. Выбираем Windows Computer, добавляем условие с атрибутом NetbiosDomainName$  (или DNSDomainName$) равно «MyDomain».

clip_image001

Теперь если для этой группы выбрать в меню View Group Members, то откроется окно со списком всех компьютеров домена.

(Конечно можно создавать группу не на основе Windows Computer, а на более «точном» классе, например, Windows Server 2008.)

Группа готова и можно любое правило или монитор точно нацелить на нужный домен, задав перекрытие для этой группы. Что и требовалось.

Неожиданно обнаружилась засада с оповещениями. Оказывается оповещения рассылаются не на объекты Windows Computer и его наследников, а на объекты HealthServiceWatcher. Значит надо делать группу автоматически включающую объекты класса HealthServiceWatcher. К сожалению такие конструкции невозможно создавать в консоле управления и приходится строить их вручную.

Путь к решению был найден в статье http://wchomak.spaces.live.com/Blog/cns!F56EFE25599555EC!1506.entry?wa=wsignin1.0&sa=530974408

Делать одну группу мне не захотелось: смешивать разные объекты созданные для разных целей не есть хорошо. Поэтому я сделал для оповещений отдельную группу. В Operations Console создал пустую группу. Экспортировал MP. Открыл его в Notepad и добавил условие динамического членства: включать только объекты HealthServiceWatcher для которых объекты Windows Computer относятся к домену «MyDomain»:

            <MembershipRule>

              <MonitoringClass>$MPElement[Name="SystemCenter!Microsoft.SystemCenter.HealthServiceWatcher"]$</MonitoringClass>

              <RelationshipClass>$MPElement[Name="MicrosoftSystemCenterInstanceGroupLibrary6172210!Microsoft.SystemCenter.InstanceGroupContainsEntities"]$</RelationshipClass>

              <Expression>

                <Contains>

                  <MonitoringClass>$MPElement[Name="SystemCenter!Microsoft.SystemCenter.HealthService"]$</MonitoringClass>

                  <Expression>

                    <Contained>

                      <MonitoringClass>$MPElement[Name="MicrosoftWindowsLibrary6172210!Microsoft.Windows.Computer"]$</MonitoringClass>

                      <Expression>

                        <SimpleExpression>

                          <ValueExpression>

                            <Property>$MPElement[Name="MicrosoftWindowsLibrary6172210!Microsoft.Windows.Computer"]/NetbiosDomainName$</Property>

                          </ValueExpression>

                          <Operator>Equal</Operator>

                          <ValueExpression>

                            <Value>MyDomain</Value>

                          </ValueExpression>

                        </SimpleExpression>

                      </Expression>

                    </Contained>

                  </Expression>

                </Contains>

              </Expression>

            </MembershipRule>

 

После редактирования файла с MP, импортируем его обратно, ждем несколько минут, пока он активируется и проверяем членство в нашей группе: должны отобразиться все объекты HealthServiceWatcher нужного домена.

Теперь эту группу можно использовать для создания подписок на оповещения.

Полезные ссылки:

1.       Dynamic Computer Groups that send Heartbeat Alerts

2.       How to get alerts for domain group membership changes

3.       GroupCalc

4.       ExpressionType

5.       MembershipRuleType

6.       Monitoring for Heartbeat Failures on non-Server Agents

7.       Alert notification troubleshooting in System Center Operations Manager 2007

Не все так просто с мониторингом свободного места на дисках в Operations Manager


 

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

   Статья достаточно длинная, но очень полезная: теория и методология могут быть перенесены на другие задачи мониторинга.

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

   Рекомендую почитать.

http://blogs.technet.com/b/jonathanalmquist/archive/2009/04/04/logical-disk-free-space-monitor.aspx