Condividi tramite


Chiudere un avviso generato da un monitoraggio

I monitoraggi definiscono gli stati di integrità degli oggetti. Un oggetto può avere uno dei tre stati di integrità: verde (con esito positivo o integro), giallo (avviso) o rosso (critico o non integro). Ad esempio, un monitoraggio per la capacità dell'unità disco potrebbe definire il verde come pieno per meno dell'85%, il giallo come pieno per oltre l'85% e il rosso come pieno per oltre il 90%. È possibile configurare un monitoraggio per generare un avviso quando si verifica un cambiamento di stato.

Quando si riceve un avviso, è possibile visualizzare nei dettagli dell'avviso se l'avviso è stato generato da una regola o da un monitoraggio. Se l'avviso è stato generato da un monitoraggio, come procedura consigliata, è consigliabile consentire al monitoraggio di risolvere automaticamente l'avviso quando lo stato di integrità torna integro. Se si chiude l'avviso mentre l'oggetto si trova in uno stato di avviso o non integro, il problema rimane non risolto, ma non verranno generati altri avvisi.

Se il monitoraggio genera un avviso quando lo stato di integrità diventa rosso e si risolve l'avviso, è necessario reimpostare anche lo stato di integrità per il monitoraggio. Se il monitoraggio non viene reimpostato, la stessa condizione che ha generato un avviso può verificarsi di nuovo, ma non verrà generato alcun avviso perché lo stato di integrità non è cambiato.

In Operations Manager prima del 2019, se si chiude l'avviso mentre l'oggetto si trova in uno stato di avviso o non integro, il problema rimane non risolto, ma non vengono generati altri avvisi. Questo comportamento, che spesso ha portato a uno scenario in cui non è presente alcun avviso attivo nel sistema, mentre esiste un problema sottostante, è stato risolto in Operations Manager 2019.

Con Operations Manager 2019, un avviso generato da un monitoraggio non può essere chiuso a meno che lo stato di integrità del monitoraggio corrispondente non sia integro. Se si tenta di chiudere un avviso generato da un monitoraggio non integro, viene visualizzato un messaggio di errore e l'avviso non verrà chiuso.

È possibile controllare questo nuovo comportamento sia dalla console operatore che dalla console Web.

Console operatore

Seguire questa procedura:

  1. Aprire la console di Operations Manager e selezionare Monitoraggio

    Panoramica monitoraggio visualizza un riepilogo degli stati di integrità dei monitoraggi e degli avvisi correnti.

  2. Selezionare Avvisi attivi nel riquadro di spostamento.

  3. Fare clic con il pulsante destro del mouse su un avviso generato da un monitoraggio in stato non integro.

  4. Impostare lo stato di risoluzione su Chiuso.

    Il messaggio seguente indica il motivo della mancata chiusura dell'avviso:

    Gli avvisi nella selezione corrente non possono essere chiusi perché i monitor che hanno generato questi avvisi non sono ancora integri. Per altri dettagli sull'avviso che non è stato possibile chiudere, visualizzare il dashboard "Errore di chiusura degli avvisi" nella Console Web di Operations Manager

    Screenshot che mostra la console operatore dei messaggi di avviso chiusa.

    Nota

    Per chiudere questo avviso, lo stato di integrità del monitoraggio corrispondente deve essere reimpostato manualmente sullo stato integro. Se l'autoresolve per questo monitoraggio è impostato su true, l'avviso verrà chiuso automaticamente dopo la reimpostazione dello stato di integrità. In caso contrario, l'avviso deve essere chiuso manualmente dopo la reimpostazione dello stato di integrità.

Console Web

  1. Aprire la console Web e selezionare Monitoraggio. Panoramica monitoraggio visualizza un riepilogo degli stati di integrità dei monitoraggi e degli avvisi correnti.

  2. Selezionare Avvisi attivi nel riquadro di spostamento.

  3. Aprire un avviso, generato da un monitoraggio in stato non integro.

  4. Impostare lo stato di risoluzione su Chiuso e Salva modifiche.

    Il messaggio seguente indica il motivo della mancata chiusura dell'avviso:

    L'avviso corrente non può essere chiuso perché il monitoraggio che ha generato l'avviso non è ancora integro

    Screenshot che mostra la console Web del messaggio di avviso chiuso.

    Nota

    Per chiudere questo avviso, è necessario reimpostare manualmente l'integrità dei monitoraggi corrispondenti che hanno generato l'avviso.

Reimpostare manualmente lo stato di integrità di un monitoraggio per un avviso corrispondente

Seguire questa procedura:

  1. Nel riquadro di spostamento selezionare Dashboard Errore chiusura avvisi . Il dashboard elenca gli avvisi che Operations Manager non è riuscito a chiudere perché il monitoraggio, che ha generato l'avviso non è integro.

  2. È possibile reimpostare lo stato di integrità del monitoraggio per l'avviso corrispondente, nei due modi seguenti:

    • Selezionare un avviso nel dashboard e quindi selezionare l'azione del dashboard Reimposta integrità per avviso. O
    • Selezionare un avviso in questo dashboard per passare alla pagina di drill-down degli avvisi (in cui è possibile visualizzare tutte le informazioni pertinenti per un avviso) e selezionare l'attività Reimposta integrità nel riquadro attività.

    Screenshot che mostra l'integrità del monitoraggio di reimpostazione per un avviso.

API di aggiornamento degli avvisi

Se viene attivata una chiusura di avviso da sistemi esterni come la gestione degli eventi imprevisti e l'avviso non è stato chiuso a causa del monitoraggio corrispondente non integro, verrà passata un'eccezione con i dettagli dell'avviso, che potrebbero essere utilizzati da sistemi esterni.

Le API di aggiornamento degli avvisi esistenti seguenti possono essere usate per esternalizzare i dati di aggiornamento degli avvisi. Queste due API sono state migliorate per abilitare l'esternalizzazione di questo nuovo comportamento:

  • API di aggiornamento degli avvisi 1

  • API di aggiornamento degli avvisi 2

L'esempio seguente illustra i dettagli su come usare l'eccezione 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.")
                    }
            }           
        }

    }
}

Determinare se un avviso viene risolto automaticamente

Seguire questa procedura:

  1. Selezionare l'avviso e quindi nei dettagli dell'avviso selezionare il nome del monitoraggio degli avvisi. Verrà visualizzata la finestra di dialogo delle proprietà per il monitoraggio.

  2. Nelle proprietà del monitoraggio selezionare la scheda Avvisi per verificare se l'opzione Risolvi automaticamente l'avviso quando il monitoraggio torna a uno stato integro è selezionato.

Chiudere un avviso generato da un monitoraggio

Seguire questa procedura:

  1. Leggere l'avviso ed esaminarne le proprietà. Controllare i dettagli dell'avviso per determinare se l'avviso è stato generato da un monitoraggio o da una regola. Usare le informazioni sul prodotto per l'avviso per determinare la causa dell'avviso.

  2. Risolvere le cause dell'avviso ed eseguire le azioni necessarie per risolvere il problema.

  3. Quando il problema viene risolto, selezionare Origine nei dettagli dell'avviso. Verrà aperta la visualizzazione Stato per l'oggetto associato all'avviso.

  4. Fare clic con il pulsante destro del mouse sull'oggetto, scegliere Apri e selezionare Esplora stati per nome oggetto.

  5. Selezionare il monitoraggio che ha generato l'avviso e selezionare Reimposta integrità sulla barra degli strumenti. Chiudere Esplora stati e la visualizzazione Stato .

  6. Aggiornare la visualizzazione degli avvisi. Se l'avviso è ancora elencato, selezionare l'avviso e selezionare Chiudi avviso nel riquadro Azioni.

Nota

L'aggiornamento seguente (chiusura degli avvisi orfani) è applicabile per Operations Manager 2019 UR3 e versioni successive.

Chiusura di avvisi orfani

In Operations Manager 2019 RTM, UR1 e UR2, gli avvisi attivi non vengono chiusi dopo lo stato di integrità non persistente in determinati scenari, come descritto di seguito:

  1. Failover:

    • Failover che potrebbe essere attivato quando il server di gestione diventa offline.
    • A causa dell'aggiunta di nuovi server di gestione al pool di risorse, con conseguente bilanciamento del carico.
    • Quando un computer senza agente esegue il failover e deve essere monitorato da un altro server di gestione, di conseguenza il nuovo stato di integrità.
  2. Agente disconnesso e connesso di nuovo dopo qualche tempo, in cui lo stato di integrità cambia non è a conoscenza dello stato precedente.

  3. Server di gestione disconnesso e connesso di nuovo.

  4. Cache del servizio integrità cancellata.

In generale, il servizio integrità non mantiene l'ultimo stato del monitoraggio; gli avvisi non vengono chiusi durante la reimpostazione del monitoraggio su integri.

Con Operations Manager 2019 UR3, tutti gli avvisi orfani vengono chiusi, alla fine, a seconda del tipo di monitoraggio, come descritto di seguito:

  • Monitoraggio del servizio: chiudere immediatamente.
  • Tutti i monitoraggi con modulo immediato su richiesta: chiudi immediatamente.
  • Tutti i monitoraggi senza moduli su richiesta: chiudere la seconda esecuzione, a seconda della frequenza.
  • Monitoraggio basato su eventi: chiusura con un evento integro che si verifica dopo l'inizializzazione.

La transizione dello stato di integrità mostra una modifica secondaria durante l'inizializzazione del monitoraggio; di seguito è riportato un esempio:

Screenshot che mostra la transizione dello stato di integrità.

Come illustrato nella figura precedente, durante l'inizializzazione, il monitoraggio diventa prima integro. Quindi calcola di nuovo e diventa integro. Verranno visualizzate due transizioni di modifica dello stato dallo stato vuoto a integro.

Modifiche nell'esperienza di chiusura degli avvisi

L'amministratore può scegliere la chiusura dell'avviso di un Monitoraggio integrità, che è in stato Non integro.

Nella versione 2019, non è stato possibile chiudere un avviso generato da un monitoraggio a meno che lo stato di integrità del monitoraggio corrispondente non sia integro. Se si tenta di chiudere un avviso generato da un monitoraggio non integro, viene visualizzato un messaggio di errore e l'avviso non verrà chiuso.

L'amministratore può modificare questo comportamento passando a Impostazioni di amministrazione>e selezionando una delle opzioni seguenti:

  • Chiudere gli avvisi generati dal monitoraggio solo quando l'integrità del monitoraggio sottostante viene risolta o reimpostata manualmente
  • Chiudere gli avvisi generati dal monitoraggio reimpostando l'integrità del monitoraggio sottostante: questa opzione consente di chiudere gli avvisi dei monitor non integri a livello di codice e nell'interfaccia utente. In questo modo viene reimpostato l'integrità del monitoraggio sottostante, che chiude in modo implicito l'avviso corrispondente. Questa opzione consente anche la chiusura bulk degli avvisi generati dai monitoraggi.

È anche possibile tenere traccia del modo in cui l'avviso è stato chiuso visualizzando la cronologia delle proprietà>degli avvisi.

Screenshot che mostra le impostazioni del gruppo di gestione globale.

Screenshot che mostra la cronologia degli avvisi.

Passaggi successivi

  • Quando viene generato un avviso, è possibile visualizzare avvisi attivi e dettagli nella console operatore e nella console Web per identificare i possibili problemi e identificare i passaggi successivi per risolverli.

  • Dopo aver esaminato e risolto il problema rilevato da uno o più monitoraggi, vedere Come reimpostare l'integrità per reimpostare manualmente l'integrità se il monitoraggio non è configurato per la risoluzione automatica o non si vuole attendere che il monitoraggio rilevi lo stato di integrità.