Compartir a través de


Cerrar una alerta generada por un monitor

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

Cuando recibes una alerta, puedes ver en los detalles de dicha alerta si la alerta se generó mediante una regla o un monitor. Si un monitor generó la alerta, como procedimiento recomendado, debes permitir que el monitor resuelva automáticamente la alerta cuando el estado de mantenimiento vuelva a ser correcto. Si cierras la alerta mientras el objeto está en estado de advertencia o es incorrecto, el problema sigue sin resolverse, pero no se generarán más alertas.

Si el monitor genera una alerta cuando el estado de mantenimiento cambia a rojo y resuelves la alerta, también debes 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, al cerrar la alerta mientras el objeto está en estado de advertencia o es incorrecto, el problema sigue sin resolverse, pero no se generan más alertas. Este comportamiento, que a menudo conducía a un escenario en el que no hay ninguna alerta activa en el sistema, mientras que existe un problema subyacente, se ha corregido en Operations Manager 2019.

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

Puedes comprobar este nuevo comportamiento desde la consola del operador y la consola web.

Consola del operador

Siga estos pasos:

  1. Abre la consola de Operations Manager y selecciona Supervisión.

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

  2. En el panel de navegación, selecciona Alertas activas.

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

  4. Establece el estado de resolución como Cerrado.

    Aparece el mensaje siguiente para indicar el motivo del no cierre de la alerta:

    La alerta o alertas de la selección actual no se pueden cerrar porque el o los monitores, que generaron estas alertas siguen siendo incorrectos. Para obtener más información sobre la alerta que no se ha podido cerrar, mira el panel "Error de cierre de alerta" en la consola web de Operations Manager.

    Captura de pantalla en la que se muestra la consola del operador del mensaje de alerta cerrada.

    Nota:

    Para cerrar esta alerta, el estado de mantenimiento del monitor correspondiente debe restablecerse manualmente al estado correcto. Si autoresolve (resolución automática) para este monitor se establece en Verdadero, la alerta se cerrará automáticamente después de que se restablezca el estado de mantenimiento. De lo contrario, la alerta debe cerrarse manualmente después de que se restablezca el estado de mantenimiento.

Consola web

  1. Abre la consola web y selecciona Supervisión. Información general sobre la supervisión muestra un resumen de los estados de mantenimiento de los monitores y las alertas actuales.

  2. En el panel de navegación, selecciona Alertas activas.

  3. Abre una alerta, que ha sido generada por un monitor en estado incorrecto.

  4. Establece el estado de resolución como Cerrado y Guarda los cambios.

    Aparece el mensaje siguiente para indicar el motivo del no cierre de la alerta:

    La alerta actual no se puede cerrar porque el monitor que ha generado esta alerta sigue siendo incorrecto.

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

    Nota:

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

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

Siga estos pasos:

  1. Selecciona el panel Error de cierre de alerta en el panel de navegación. El panel enumera las alertas, que Operations Manager no pudo cerrar porque el monitor, que ha generado la alerta es incorrecto.

  2. Puedes restablecer el estado de mantenimiento del monitor para la alerta correspondiente, de las dos maneras siguientes:

    • Selecciona una alerta en el panel y, luego, selecciona la acción del panel Restablecer estado para alerta. O bien
    • Selecciona una alerta en este panel para ir a la página de exploración en profundidad de alertas (donde puedes visualizar toda la información pertinente de una alerta) y selecciona la tarea Restablecer estado en el panel de tareas.

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

Las API de actualización de alertas

Si se desencadena un cierre de alerta 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 los sistemas externos pueden consumir.

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.")
                    }
            }           
        }

    }
}

Determinar si una alerta se resuelve automáticamente

Siga estos pasos:

  1. Selecciona la alerta y después, en los detalles de la alerta, selecciona el nombre del monitor de alertas. Se abre el cuadro de diálogo de propiedades para el monitor.

  2. En las propiedades del monitor, selecciona la pestaña Alertas para ver si la opción Resolver automáticamente la alerta cuando el monitor vuelva a un estado normal está seleccionada.

Cierre de una alerta generada por un monitor

Siga estos pasos:

  1. Lee la alerta y examina sus propiedades. Comprueba los detalles de la alerta para determinar si la alerta se generó mediante un monitor o una regla. Usa el conocimiento del producto de la alerta para ayudar a determinar la causa de la alerta.

  2. Soluciona las causas de la alerta y realiza las acciones necesarias para resolver el problema.

  3. Cuando se resuelva el problema, selecciona Origen en los detalles de la alerta. Se abrirá la vista Estado para el objeto asociado a la alerta.

  4. Haz clic con el botón derecho en el objeto, selecciona Abrir y selecciona Explorador de estado para el nombre del objeto.

  5. Selecciona el monitor que generó la alerta y selecciona Restablecer estado en la barra de herramientas. Cierra el Explorador de estado y la vista Estado.

  6. Actualiza la vista de alertas. Si la alerta sigue en la lista, selecciona la alerta y selecciona 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 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 podría desencadenarse cuando el servidor de administración se desconecta.
    • Debido a la adición de nuevos servidores de administración al grupo de recursos, se produce un equilibrio de carga.
    • Cuando un equipo sin agente conmuta por error y otro servidor de administración debe supervisarlo, y el resultado es el 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. Servidor de administración desconectado y conectado de nuevo.

  4. Caché del servicio de mantenimiento desactivada.

En general, el servicio de mantenimiento no retiene el último estado del monitor y las alertas no se cierran al restablecer el monitor con un estado correcto.

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

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

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

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

Como se muestra en la ilustración anterior, durante la inicialización, el monitor se vuelve correcto. A continuación, vuelve a calcular y vuelve a estar en buen estado. Verás dos transiciones de cambio de estado del estado vacío a correcto.

Cambios en la experiencia de cierre de alertas

El administrador puede optar por elegir el cierre de alertas de un Monitor de estado, que está en estado incorrecto.

En la versión de 2019, una alerta generada por un monitor no podía cerrarse a menos que el estado de mantenimiento del monitor correspondiente fuese correcto. Si se intentaba cerrar una alerta generada por un monitor en un estado incorrecto, aparecía un mensaje de error y la alerta no se cerraba.

El administrador puede cambiar este comportamiento; para ello, vaya a Configuración de administración>y seleccione cualquiera de las opciones siguientes:

  • 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)
  • Cerrar alertas generadas por monitores restableciendo el estado de mantenimiento del monitor subyacente: esta opción te permite cerrar alertas de monitores en mal estado de forma programática 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

  • Al generarse una alerta, puedes Visualizar las alertas activas y los detalles en la consola web y de Operations para identificar los 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, consulta Cómo restablecer el estado para restablecer manualmente el estado si el monitor no está configurado para resolverlo automáticamente o si no quieres esperar a que el monitor detecte el estado de mantenimiento.