Cierre de una alerta generada por un monitor

Importante

Esta versión de Operations Manager ha llegado al final del soporte técnico. Se recomienda actualizar a Operations Manager 2022.

Los monitores definen los estados de mantenimiento de los objetos. Un objeto puede tener uno de los tres estados de mantenimiento: verde (correcto), amarillo (advertencia) o rojo (crítico o incorrecto). Por ejemplo, un monitor de la capacidad de unidad de disco podría definir "verde" como inferior al 85 por ciento, "amarillo" como superior al 85 por ciento, y rojo como superior al 90 por ciento. Un monitor puede configurarse para generar una alerta cuando se produce un cambio de estado.

Cuando recibe una alerta, puede ver en los detalles de la alerta si esta se ha generado mediante una regla o un monitor. Si la alerta se ha generado mediante un monitor, el procedimiento recomendado consiste en permitir que el monitor resuelva automáticamente la alerta cuando el estado de mantenimiento vuelva a ser correcto. Si cierra la alerta mientras el objeto está en un estado de advertencia o incorrecto, el problema permanece sin resolver, pero no se generarán más alertas.

Si el monitor genera una alerta cuando el estado de mantenimiento cambia a rojo y resuelve la alerta, también debe restablecer el estado de mantenimiento del monitor. Si el monitor no se restablece, se puede volver a producir la misma condición que generó una alerta, pero no se generará ninguna alerta porque el estado de mantenimiento no ha cambiado.

En Operations Manager anterior a 2019, si cierra la alerta mientras el objeto está en un estado de advertencia o incorrecto, el problema permanece sin resolver, pero no se generan más alertas. Este comportamiento, que a menudo llevó a un escenario en el que no hay ninguna alerta activa en el sistema, mientras existe un problema subyacente, se corrige en Operations Manager 2019.

Con Operations Manager 2019, no se puede cerrar una alerta generada por un monitor a menos que el estado de mantenimiento del monitor correspondiente sea correcto. Si intenta cerrar una alerta generada por un monitor incorrecto, aparece un mensaje de error y la alerta no se cerrará.

Puede comprobar este nuevo comportamiento en las consolas del operador y web.

Consola del operador

Siga estos pasos:

  1. Abra la consola de Operations Manager y seleccione Supervisión.

    Información general de supervisión muestra un resumen de los estados de mantenimiento y las alertas actuales.

  2. Seleccione Alertas activas en el panel de navegación.

  3. Haga clic con el botón derecho en una alerta generada por un monitor de estado incorrecto.

  4. Establezca el estado de resolución como Cerrada.

    Aparece el siguiente mensaje, que indica el motivo de que no se haya cerrado la alerta:

    No se pueden cerrar las alertas de la selección actual porque los monitores que las han generado tienen un estado incorrecto. Para obtener más detalles sobre las alertas que no se han podido cerrar, consulte el panel "Error de cierre de alerta" en la consola web de Operations Manager.

    Captura de pantalla que muestra la consola de operaciones del mensaje de alerta cerrada.

    Nota

    Para cerrar esta alerta, el estado del monitor correspondiente debe restablecerse manualmente a un estado correcto. Si para este monitor Autoresolve está establecido en true, entonces la alerta se cerrará automáticamente después de restablecer el estado de mantenimiento. En caso contrario, la alerta debe cerrarse manualmente después de restablecer el estado de mantenimiento.

Consola web

  1. Abra la consola web y seleccione Supervisión. Información general de supervisión muestra un resumen de los estados de mantenimiento y las alertas actuales.

  2. Seleccione Alertas activas en el panel de navegación.

  3. Abra una alerta generada por un monitor de estado incorrecto.

  4. Establezca el estado de resolución como Cerrada y haga clic en Guardar para guardar los cambios.

    Aparece el siguiente mensaje, que indica el motivo de que no se haya cerrado la alerta:

    La alerta actual no se puede cerrar porque el monitor que la generó está todavía en un estado incorrecto

    Captura de pantalla que muestra la consola web del mensaje de alerta cerrada.

    Nota

    Para cerrar esta alerta, debe restablecer manualmente el estado de los monitores que generaron esta alerta.

Restablecer manualmente el estado de mantenimiento de un monitor correspondiente a una alerta

Siga estos pasos:

  1. Seleccione el panel Error de cierre de alertas en el panel de navegación. El panel muestra las alertas que Operations Manager no pudo cerrar porque el monitor que las ha generado está en estado incorrecto.

  2. Puede restablecer el estado de mantenimiento del monitor correspondiente a la alerta de las dos maneras siguientes:

    • Seleccione una alerta en el panel y, a continuación, seleccione la acción de panel Restablecer estado de alerta. Or
    • Seleccione una alerta en este panel para ir a la página de exploración en profundidad de alertas (donde puede visualizar toda la información pertinente de una alerta) y seleccionar la tarea Restablecer estado en el panel de tareas.

    Captura de pantalla que muestra el estado del monitor de restablecimiento de una alerta.

API de actualización de alertas

Si se desencadena un cierre de alertas desde sistemas externos como la administración de incidentes y la alerta no se cerró debido a que el monitor correspondiente es incorrecto, se pasará una excepción con los detalles de la alerta, que pueden consumir los sistemas externos.

Las siguientes API de actualización de alertas existentes se pueden usar para externalizar los datos de actualización de alertas. Estas dos API se han mejorado para poder externalizar este nuevo comportamiento:

  • API 1 de actualización de alertas

  • API 2 de actualización de alertas

En el ejemplo siguiente se muestran los detalles sobre cómo usar la excepción 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.")
                    }
            }           
        }

    }
}

Para determinar si una alerta se resuelve automáticamente

Siga estos pasos:

  1. Seleccione la alerta y, en los detalles de la alerta, seleccione el nombre del monitor de alertas. Se abre el cuadro de diálogo de propiedades del monitor.

  2. En las propiedades del monitor, seleccione la pestaña Alertas para ver si la opción Resolver automáticamente la alerta cuando el monitor vuelve a un estado correcto está seleccionado.

Para cerrar una alerta que se ha generado por un monitor

Siga estos pasos:

  1. Lea la alerta y examine sus propiedades. Compruebe los detalles de alerta para determinar si esta se ha generado por un monitor o por una regla. Use la información de producto de la alerta para determinar la causa.

  2. Solucione las causas de la alerta y lleve a cabo las acciones necesarias para resolver el problema.

  3. Cuando se resuelva el problema, seleccione Origen en los detalles de la alerta. Esto abrirá la vista Estado del objeto asociado a la alerta.

  4. Haga clic con el botón derecho en el objeto, seleccione Abrir y seleccione Explorador de estado parael nombre del objeto.

  5. Seleccione el monitor que generó la alerta y seleccione Restablecer estado en la barra de herramientas. Cierre el Explorador de estado y la vista Estado.

  6. Actualice la vista de alertas. Si la alerta sigue en la lista, seleccione la alerta y seleccione Cerrar alerta en el panel Acciones.

Nota:

La siguiente actualización (Cierre de alertas huérfanas) se aplica a Operations Manager 2019 UR3 y versiones posteriores.

Cierre de las alertas huérfanas

En Operations Manager 2019 RTM, UR1 y UR2, las alertas activas no se cierran después del estado de mantenimiento no persistente en determinados escenarios, como se detalla a continuación:

  1. Conmutación por error:

    • La conmutación por error que se puede desencadenar cuando el servidor de administración se queda sin conexión.
    • Debido a la adición de nuevos servidores de administración al conjunto de recursos, lo que conlleva un equilibrio de la carga.
    • Cuando un equipo sin agente conmuta por error y debe ser supervisado por otro servidor de administración, generando un nuevo estado de mantenimiento.
  2. El agente se desconecta y se vuelve a conectar después de algún tiempo, en el que el cambio de estado de mantenimiento no es consciente del estado anterior.

  3. Cuando un servidor de administración se desconecta y se vuelve a conectar.

  4. Cuando se borra la memoria caché del servicio de mantenimiento.

En general, el servicio de mantenimiento no contiene el último estado del monitor; Las alertas no se cierran al restablecer el monitor en buen estado.

Con Operations Manager 2019 UR3, todas las alertas huérfanas se cierran en última instancia, en función del tipo de monitor, como se detalla a continuación:

  • Monitor de servicio: se cierra inmediatamente.
  • Todos los monitores con el módulo a petición inmediata: se cierran inmediatamente.
  • Todos los monitores sin módulos a petición: se cierran en la segunda ejecución, en función de la frecuencia.
  • Monitor basado en eventos: se cierra con un evento correcto que se produce después de la inicialización.

La transición de estado de mantenimiento muestra un cambio menor cuando se inicializa el monitor; ejemplo siguiente:

Captura de pantalla que muestra la transición de estado de mantenimiento.

Tal y como se muestra en la ilustración anterior, durante la inicialización, el monitor primero pasa a un estado correcto. A continuación, hace los cálculos de nuevo y se pone en un estado correcto. Verá dos transiciones de cambio de estado del estado hueco a correcto.

Cambios en la experiencia de cierre de alertas

Con Operations Manager 2022, los administradores pueden cerrar la alerta de un monitor de estado de mantenimiento que está en mal estado.

En la versión 2019, no se pudo cerrar una alerta generada por un monitor a menos que el estado de mantenimiento del monitor correspondiente sea correcto. Si intenta cerrar una alerta generada por un monitor incorrecto, aparece un mensaje de error y la alerta no se cerraría.

Con Operations Manager 2022, los administradores pueden cambiar este comportamiento. Para hacerlo, deben ir a Administración>Configuración y seleccionar una de estas opciones:

  • Close alert(s) generated by monitor only when underlying monitor health is resolved or reset manually (Cerrar alertas generadas por un monitor solo cuando el estado de mantenimiento del monitor subyacente se ha resuelto o restablecido manualmente)
  • Cierre las alertas generadas por el monitor restableciendo el estado del monitor subyacente: esta opción permite cerrar alertas de monitores incorrectos mediante programación y en la interfaz de usuario. Esto restablece el estado del monitor subyacente, que cerrará implícitamente su alerta correspondiente. Esta opción también permite el cierre masivo de las alertas generadas por los monitores.

También puede realizar un seguimiento de cómo se ha cerrado la alerta si ve Propiedades de alerta>Historial.

Captura de pantalla que muestra la configuración del grupo de administración global.

Captura de pantalla que muestra el historial de alertas.

Pasos siguientes

  • Cuando se genera una alerta, puede ver alertas activas y detalles en la consola de operaciones y web para identificar posibles problemas y ayudar a identificar los pasos siguientes para resolverlas.

  • Después de investigar y resolver el problema detectado por uno o varios monitores, revise Cómo restablecer el estado para restablecer manualmente el estado si el monitor no está configurado para resolverse automáticamente o no desea esperar a que el monitor detecte el estado de mantenimiento.