Partager via


Fermer une alerte générée par un moniteur

Les moniteurs définissent les états d’intégrité des objets. Un objet peut avoir l’un des trois états d’intégrité : vert (réussi ou sain), jaune (avertissement) ou rouge (critique ou défectueux). Par exemple, une analyse de la capacité du disque dur peut définir le vert comme plein à moins de 85 %, le jaune comme plein à plus de 85 % et le rouge comme plein à plus de 90 %. Une analyse peut être configurée pour générer une alerte lorsqu'un changement d'état se produit.

Lorsque vous recevez une alerte, vous pouvez voir dans les détails de l’alerte si l’alerte a été générée par une règle ou un moniteur. Si l’alerte a été générée par un moniteur, comme bonne pratique, vous devez autoriser le moniteur à résoudre automatiquement l’alerte lorsque l’état d’intégrité revient en bonne santé. Si vous fermez l’alerte pendant que l’objet est dans un état d’avertissement ou non sain, le problème reste non résolu, mais aucune autre alerte ne sera générée.

Si le moniteur génère une alerte lorsque l’état d’intégrité passe en rouge et que vous résolvez l’alerte, vous devez également réinitialiser l’état d’intégrité du moniteur. Si le moniteur n’est pas réinitialisé, la même condition que celle qui a généré une alerte peut se produire à nouveau, mais aucune alerte ne sera générée, car l’état d’intégrité n’a pas changé.

Dans Operations Manager antérieure à 2019, si vous fermez l’alerte pendant que l’objet est dans un état d’avertissement ou non sain, le problème reste non résolu, mais aucune autre alerte n’est générée. Ce comportement, qui a souvent conduit à un scénario où il n’existe aucune alerte active dans le système, alors qu’un problème sous-jacent existe, est résolu dans Operations Manager 2019.

Avec Operations Manager 2019, une alerte générée par un moniteur ne peut pas être fermée, sauf si l’état d’intégrité du moniteur correspondant est sain. Si vous essayez de fermer une alerte générée par un moniteur défectueux, un message d’erreur s’affiche et l’alerte ne sera pas fermée.

Vous pouvez vérifier ce nouveau comportement à partir de la console Opérateur et de la console Web.

Console Opérateur

Effectuez les étapes suivantes :

  1. Ouvrez la console Operations Manager et sélectionnez Surveillance

    La vue d’ensemble de la surveillance affiche un résumé des états d’intégrité des moniteurs et des alertes actuelles.

  2. Sélectionnez Alertes actives dans le volet de navigation.

  3. Cliquez avec le bouton droit sur une alerte, générée par un moniteur dans un état non sain.

  4. Définissez l’état de résolution comme Fermé.

    Le message suivant s’affiche pour indiquer la raison de la non-fermeture de l’alerte :

    Les alertes dans la sélection actuelle ne peuvent pas être fermées en tant que moniteurs, qui ont généré ces alertes sont toujours défectueux. Pour plus d’informations sur l’alerte qui n’a pas pu être fermée, consultez le tableau de bord « Échec de fermeture d’alerte » dans la console web Operations Manager

    Capture d’écran montrant la console des opérations de message d’alerte fermée.

    Remarque

    Pour fermer cette alerte, l’état d’intégrité du moniteur correspondant doit être réinitialisé manuellement à l’état sain. Si la résolution automatique de ce moniteur a la valeur true, l’alerte est fermée automatiquement après la réinitialisation de l’état d’intégrité. Sinon, l’alerte doit être fermée manuellement après la réinitialisation de l’état d’intégrité.

Console Web

  1. Ouvrez la console web, puis sélectionnez Surveillance. La vue d’ensemble de la surveillance affiche un résumé des états d’intégrité des moniteurs et des alertes actuelles.

  2. Sélectionnez Alertes actives dans le volet de navigation.

  3. Ouvrez une alerte, qui a été générée par un moniteur dans un état non sain.

  4. Définissez l’état de résolution en tant que Modifications fermées et enregistrer .

    Le message suivant s’affiche pour indiquer la raison de la non-fermeture de l’alerte :

    L’alerte actuelle ne peut pas être fermée, car le moniteur qui a généré cette alerte est toujours défectueux

    Capture d’écran montrant la console web du message d’alerte fermé.

    Remarque

    Pour fermer cette alerte, vous devez réinitialiser manuellement l’intégrité des moniteurs correspondants qui ont généré cette alerte.

Réinitialiser manuellement l’état d’intégrité d’un moniteur pour une alerte correspondante

Effectuez les étapes suivantes :

  1. Sélectionnez le tableau de bord Échec de fermeture d’alerte dans le volet de navigation. Le tableau de bord répertorie les alertes, que Operations Manager n’a pas pu fermer, car le moniteur, qui a généré l’alerte est défectueux.

  2. Vous pouvez réinitialiser l’état d’intégrité du moniteur pour l’alerte correspondante, de deux façons :

    • Sélectionnez une alerte dans le tableau de bord, puis sélectionnez l’action Réinitialiser l’intégrité de l’alerte du tableau de bord. Or
    • Sélectionnez une alerte dans ce tableau de bord pour accéder à la page d’exploration des alertes (où vous pouvez visualiser toutes les informations pertinentes pour une alerte), puis sélectionnez la tâche Réinitialiser l’intégrité dans le volet Office.

    Capture d’écran montrant la réinitialisation de l’intégrité du moniteur pour une alerte.

API de mise à jour des alertes

Si une fermeture d’alerte est déclenchée à partir de systèmes externes tels que la gestion des incidents et que l’alerte n’a pas été fermée en raison de l’état d’intégrité du moniteur correspondant, une exception est passée avec les détails de l’alerte, qui peuvent être consommés par des systèmes externes.

Les API de mise à jour d’alerte existantes suivantes peuvent être utilisées pour externaliser les données de mise à jour des alertes. Ces deux API ont été améliorées pour permettre l’externalisation de ce nouveau comportement :

L’exemple suivant montre les détails sur l’utilisation de l’exception 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.")
                    }
            }           
        }

    }
}

Déterminer si une alerte est résolue automatiquement

Effectuez les étapes suivantes :

  1. Sélectionnez l’alerte, puis, dans les détails de l’alerte, sélectionnez le nom du moniteur d’alerte. La boîte de dialogue propriétés du moniteur s’ouvre.

  2. Dans les propriétés du moniteur, sélectionnez l’onglet Alertes pour voir si l’option Résoudre automatiquement l’alerte lorsque le moniteur retourne à un état sain est sélectionné.

Fermer une alerte générée par un moniteur

Effectuez les étapes suivantes :

  1. Lisez l’alerte et examinez ses propriétés. Vérifiez les détails de l’alerte pour déterminer si l’alerte a été générée par un moniteur ou une règle. Utilisez les connaissances du produit pour l’alerte pour déterminer la cause de l’alerte.

  2. Résolvez les causes de l’alerte et prenez les mesures nécessaires pour résoudre le problème.

  3. Lorsque le problème est résolu, sélectionnez Source dans les détails de l’alerte. L’affichage État de l’objet associé à l’alerte s’ouvre.

  4. Cliquez avec le bouton droit sur l’objet, pointez sur Ouvrir, puis sélectionnez l’Explorateur d’intégrité pour le nom de l’objet.

  5. Sélectionnez le moniteur qui a généré l’alerte, puis sélectionnez Réinitialiser l’intégrité dans la barre d’outils. Fermez l’Explorateur d’intégrité et l’affichage État .

  6. Actualisez la vue alertes. Si l’alerte est toujours répertoriée, sélectionnez l’alerte, puis fermez l’alerte dans le volet Actions.

Remarque

La mise à jour suivante (fermeture des alertes orphelines) s’applique à Operations Manager 2019 UR3 et ultérieur.

Fermeture des alertes orphelines

Dans Operations Manager 2019 RTM, UR1 et UR2, les alertes actives ne sont pas fermées après l’état d’intégrité non persistant dans certains scénarios, comme indiqué ci-dessous :

  1. Basculement :

    • Basculement qui peut être déclenché lorsque le serveur d’administration est hors connexion.
    • En raison de l’ajout de nouveaux serveurs d’administration au pool de ressources, ce qui entraîne l’équilibrage de charge.
    • Lorsqu’un ordinateur sans agent bascule et doit être surveillé par un autre serveur d’administration, par conséquent, le nouvel état d’intégrité.
  2. Agent déconnecté et connecté après un certain temps, dans lequel le changement d’état d’intégrité n’est pas conscient de l’état précédent.

  3. Serveur d’administration déconnecté et connecté à nouveau.

  4. Cache du service d’intégrité effacé.

Dans l’ensemble, le service d’intégrité ne contient pas le dernier état du moniteur ; les alertes ne sont pas fermées lors de la réinitialisation du moniteur en mode sain.

Avec Operations Manager 2019 UR3, toutes les alertes orphelines sont fermées, en fonction du type de moniteur, comme indiqué ci-dessous :

  • Moniteur de service : fermez immédiatement.
  • Tous les moniteurs avec un module à la demande immédiat : fermer immédiatement.
  • Tous les moniteurs sans modules à la demande : fermez la deuxième exécution, en fonction de la fréquence.
  • Moniteur basé sur les événements : fermez avec un événement sain qui se produit après l’initialisation.

La transition d’état d’intégrité affiche une modification mineure lors de l’initialisation du moniteur ; exemple ci-dessous :

Capture d’écran montrant la transition d’état d’intégrité.

Comme illustré dans la figure ci-dessus, lors de l’initialisation, le moniteur devient sain. Ensuite, il calcule et devient sain. Vous verrez deux changements d’état passer d’un état creux à un état sain.

Modifications apportées à l’expérience de fermeture des alertes

L’administrateur peut choisir la fermeture d’alerte d’un moniteur d’intégrité, qui est dans un état non sain.

Dans la version 2019, une alerte générée par un moniteur n’a pas pu être fermée, sauf si l’état d’intégrité du moniteur correspondant est sain. Si vous essayez de fermer une alerte générée par un moniteur défectueux, un message d’erreur s’affiche et l’alerte n’est pas fermée.

L’administrateur peut modifier ce comportement en accédant aux paramètres d’administration>et en sélectionnant l’une des options ci-dessous :

  • Fermez les alertes générées par le moniteur uniquement lorsque la santé du moniteur sous-jacent est résolue ou réinitialisée manuellement.
  • Fermer les alertes générées par le moniteur en réinitialisant l’intégrité du moniteur sous-jacent : cette option vous permet de fermer les alertes des moniteurs défectueux par programmation et sur l’interface utilisateur. Cela réinitialise l’intégrité du moniteur sous-jacent, ce qui a pour conséquence de fermer implicitement l’alerte correspondante. Cette option permet également de fermer en bloc toutes les alertes générées par les moniteurs.

Vous pouvez également voir la manière dont l’alerte a été fermée en affichant Propriétés de l’alerte>Historique.

Capture d’écran montrant les paramètres du groupe d’administration global.

Capture d’écran montrant l’historique des alertes.

Étapes suivantes

  • Lorsqu’une alerte est générée, vous pouvez afficher les alertes actives et les détails dans les opérations et la console web pour identifier les problèmes possibles et identifier les étapes suivantes pour les résoudre.

  • Après avoir examiné et résolu le problème détecté par un ou plusieurs moniteurs, passez en revue Comment réinitialiser l’intégrité manuellement si le moniteur n’est pas configuré pour résoudre automatiquement ou si vous ne souhaitez pas attendre que le moniteur détecte l’état d’intégrité.