Закрытие оповещения, созданного монитором

Важно!

Поддержка этой версии Operations Manager завершена. Рекомендуется выполнить обновление до Operations Manager 2022.

Мониторы определяют состояние работоспособности объектов. Объект может иметь три состояния работоспособности: зеленое (успешное или работоспособное), желтое (предупреждение) или красное (критическое или неработоспособное). Например, монитор для емкости диска может определять зеленое состояние при заполненности диска менее, чем на 85 процентов, желтое — при заполненности более, чем на 85 процентов и красное — при заполненности более, чем на 90 процентов. Монитор можно настроить таким образом, чтобы он создавал предупреждение при изменении состояния.

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

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

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

В Operations Manager 2019 оповещение, созданное монитором, не может быть закрыто, если состояние работоспособности соответствующего монитора не является работоспособным. При попытке закрыть оповещение, созданное неработоспособным монитором, появится сообщение об ошибке, и оповещение не будет закрыто.

Это новое поведение можно проверить из консоли управления и веб-консоли.

Консоль управления

Выполните следующие действия.

  1. Откройте консоль Operations Manager и выберите Мониторинг.

    На панели Обзор мониторинга отобразится сводка состояний работоспособности мониторов и текущие оповещения.

  2. Выберите Активные оповещения в области навигации.

  3. Щелкните правой кнопкой мыши оповещение, созданное монитором, который находится в неработоспособном состоянии.

  4. Задайте состояние как Закрыто.

    Появится следующее сообщение с указанием причины, по которой оповещение не было закрыто:

    Предупреждения в выделенном фрагменте сейчас невозможно закрыть, так как мониторы, которые создали эти оповещения, по-прежнему неработоспособны. Дополнительные сведения о предупреждениях, которые не удалось закрыть, см. в панели мониторинга "Сбой закрытия оповещений" в веб-консоли Operations Manager.

    Снимок экрана: консоль управления закрытыми сообщениями оповещений.

    Примечание

    Чтобы закрыть это оповещение, состояние работоспособности соответствующего монитора нужно вручную сбросить до работоспособного. Если для параметра автоматического разрешения этого монитора установлено значение true, тогда оповещение будет автоматически закрыто после сброса состояния работоспособности. В противном случае оповещение нужно закрыть вручную после сброса состояния работоспособности.

Веб-консоль

  1. Откройте веб-консоль и выберите Мониторинг. На панели Обзор мониторинга отобразится сводка состояний работоспособности мониторов и текущие оповещения.

  2. Выберите Активные оповещения в области навигации.

  3. Откройте оповещение, созданное монитором, который находится в неработоспособном состоянии.

  4. Задайте состояние разрешения как Закрыто и сохраните изменения.

    Появится следующее сообщение с указанием причины, по которой оповещение не было закрыто:

    Текущее оповещение нельзя закрыть, так как монитор, создавший это оповещение, все еще неработоспособен.

    Снимок экрана: веб-консоль закрытого оповещения.

    Примечание

    Чтобы закрыть это оповещение, необходимо вручную сбросить состояние работоспособности соответствующих мониторов, вызвавших это оповещение.

Сброс состояния работоспособности монитора для соответствующего оповещения вручную

Выполните следующие действия.

  1. В области навигации выберите Панель мониторинга "Сбой закрытия оповещений ". На панели мониторинга содержится список оповещений, которые Operations Manager не удалось закрыть, потому что создавший их монитор неработоспособен.

  2. Вы можете сбросить состояние работоспособности монитора соответствующего оповещения двумя способами:

    • Выберите оповещение на панели мониторинга, а затем выберите действие Reset Health for Alert (Сброс состояния работоспособности для оповещения). либо
    • Выберите оповещение на этой панели мониторинга, чтобы перейти на страницу детализации оповещений (где можно визуализировать все необходимые сведения для оповещения) и выберите задачу Сброс работоспособности в области задач.

    Снимок экрана: работоспособности монитора сброса для оповещения.

API обновления оповещений

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

Следующие существующие API-интерфейсы обновления оповещений можно использовать для внешнего использования данных обновления оповещений. Эти два API были усовершенствованы для реализации возможности вынесения нового поведения во внешние системы:

В следующем примере показаны сведения о том, как использовать исключение AlertMonitorUnhealthyException.

namespace MonitorAlertClosureFailureExample
{
    class Program
    {
        static void Main(string[] args)
        {
            ManagementGroup mg = new ManagementGroup("localhost");

            // Get database availability alerts.
            MonitoringAlertCriteria alertCriteria = new MonitoringAlertCriteria(
                "Name LIKE '%DBStatusMonitor' AND Category = 'AvailabilityHealth'");
            IList<MonitoringAlert> alerts =
                mg.OperationalData.GetMonitoringAlerts(alertCriteria, default(DateTime));

            // Find the "Closed" resolution state that is defined
            // for this Management Group.
            IList<MonitoringAlertResolutionState> alertStates = mg.OperationalData.GetMonitoringAlertResolutionStates();
            MonitoringAlertResolutionState closedState = null;
            foreach (MonitoringAlertResolutionState thisState in alertStates)
            {
                if (thisState.Name == "Closed")
                {
                    closedState = thisState;
                }
            }

            // Close all alerts not already in the "Closed" resolution state.
            foreach (MonitoringAlert a in alerts)
            {
                a.ResolutionState = closedState.ResolutionState;
                string comment = "Closing the Alert";
                try
                {
                    a.Update(comment);
                }
                catch (AlertMonitorUnhealthyException e)
                {
                    // It mean the alert being closed is a monitor alert and the monitor which generated this alert is still unhealthy
                    // take an appropriate action. Here an error message is being displayed at console
                    Console.WriteLine("The alert with Alert Name" + a.Name + "cannot be closed as the monitor which genrated the alert is still unhealthy.")
                }
                catch (Exception e)
                {
                    // generic exception during the update of the alert
                    Console.WriteLine("Closing the alert with alert name" + a.Name + "is failing because" + e.Message)
                }

            }

    }
}


namespace MonitorAlertClosureFailureExample
{
    class Program
    {
        static void Main(string[] args)
        {
            ManagementGroup mg = new ManagementGroup("localhost");

            // Get database availability alerts.
            MonitoringAlertCriteria alertCriteria = new MonitoringAlertCriteria(
                "Name LIKE '%DBStatusMonitor' AND Category = 'AvailabilityHealth'");
            IList<MonitoringAlert> alerts =
                mg.OperationalData.GetMonitoringAlerts(alertCriteria, default(DateTime));

            // Find the "Closed" resolution state that is defined
            // for this Management Group.
            IList<MonitoringAlertResolutionState> alertStates = mg.OperationalData.GetMonitoringAlertResolutionStates();
            MonitoringAlertResolutionState closedState = null;
            foreach (MonitoringAlertResolutionState thisState in alertStates)
            {
                if (thisState.Name == "Closed")
                {
                    closedState = thisState;
                }
            }

            // Close all alerts not already in the "Closed" resolution state.
            string comment = "Closing the alert";
            foreach(MonitoringAlert a in alerts)
            {
                a.ResolutionState = closedState.ResolutionState;
            }

            IList<MonitoringAlertUpdateFailure> updateFailures = mg.OperationalData.UpdateMonitoringAlerts(alerts, comment);

            if (updateFailures != null && updateFailures.Count > 0)
            {
                foreach (MonitoringAlertUpdateFailure failure in updateFailures)
                {
                    if(failure.Exception is AlertMonitorUnhealthyException)
                    {
                        // It means the alert being closed is a monitor alert and the monitor which generated this alert is still unhealthy
                        // take an appropriate action. Here an error message is being displayed at console
                        Console.WriteLine("The alert with Alert Name" + a.Name + "cannot be closed as the monitor which genrated the alert is still unhealthy.")
                    }
            }           
        }

    }
}

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

Выполните следующие действия.

  1. Выберите оповещение, а затем в разделе сведений об оповещении выберите имя монитора оповещений. Откроется диалоговое окно свойств монитора.

  2. В свойствах монитора выберите вкладку Оповещения , чтобы узнать, установлен ли параметр Автоматически разрешать оповещение, когда монитор возвращается в работоспособное состояние .

Закрытие предупреждения, созданного монитором

Выполните следующие действия.

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

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

  3. Когда проблема будет устранена, выберите Источник в сведениях об оповещении. При этом откроется представление Состояние для объекта, связанного с предупреждением.

  4. Щелкните правой кнопкой мыши объект, наведите указатель на пункт Открыть и выберите Обозреватель работоспособности в полеИмя объекта.

  5. Выберите монитор, создающий оповещение, и нажмите кнопку Сбросить работоспособности на панели инструментов. Закройте анализатор работоспособности и представление Состояние.

  6. Обновите представление "Предупреждения". Если оповещение по-прежнему отображается в списке, выберите его и выберите Закрыть оповещение на панели Действия.

Примечание

Следующее обновление (закрытие потерянных оповещений) применимо для Operations Manager 2019 UR3 и более поздних версий.

Закрытие потерянных оповещений

В Operations Manager 2019 RTM, UR1 и UR2 активные оповещения не закрываются после состояния работоспособности непостоянный в определенных сценариях, как описано ниже:

  1. Отработка отказа.

    • Отработка отказа, которая может быть активирована при переходе сервера управления в автономный режим.
    • Из-за добавления новых серверов управления в пул ресурсов, что приведет к балансировке нагрузки.
    • При сбое безагентного компьютера, который отслеживается другим сервером управления (новое состояние работоспособности).
  2. Агент отключается и снова подключается через некоторое время, когда изменение состояния работоспособности не знает о предыдущем состоянии.

  3. Сервер управления отключен и подключен снова.

  4. Кэш службы работоспособности очищен.

В целом служба работоспособности не поддерживает последнее состояние монитора; оповещения не закрываются при сбросе монитора до работоспособности.

В Operations Manager 2019 UR3 все потерянные оповещения в зависимости от типа монитора в конечном итоге закрываются, как описано ниже.

  • Монитор службы: немедленное закрытие.
  • Все мониторы с модулем по запросу: немедленное закрытие.
  • Все мониторы без модулей по запросу: закрытие при втором выполнении в зависимости от частоты.
  • Монитор на основе событий: закрытие с работоспособным событием, которое происходит после инициализации.

При переходе состояния работоспособности отображается незначительное изменение при инициализации монитора; Пример ниже:

Снимок экрана: переход состояния работоспособности.

Как показано на рисунке выше, во время инициализации монитор сначала переходит в работоспособное состояние. Затем снова выполняется вычисление и он переходит в работоспособное состояние. Вы увидите два перехода из пустого состояния в работоспособное.

Изменения в интерфейсе закрытия предупреждений

С помощью Operations Manager 2022 администратор может выбрать закрытие оповещений монитора работоспособности, который находится в неработоспособном состоянии.

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

С Operations Manager 2022 администратор может изменить это поведение в разделе Администрирование>Параметры, выбрав любой из следующих вариантов:

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

Вы можете отслеживать закрытие оповещений в разделе Свойства оповещений>Журнал.

Снимок экрана: параметры глобальной группы управления.

Снимок экрана: журнал оповещений.

Дальнейшие действия

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

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