Поделиться через


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

Мониторы определяют состояния работоспособности объектов. Объект может иметь одно из трех состояний работоспособности: зеленый (успешный или здоровый), желтый (предупреждение) или красный (критически важный или неработоспособный). Например, монитор для емкости диска может определять зеленое состояние при заполненности диска менее, чем на 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. Состояние работоспособности монитора можно сбросить для соответствующего оповещения двумя способами:

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

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

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

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

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

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

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

В следующем примере показаны сведения об использовании исключения 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 администратор может изменить это поведение в разделе Администрирование>Параметры, выбрав любой из следующих вариантов:

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

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

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

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

Следующие шаги

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

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