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 monitor per la capacità dell'unità disco potrebbe definire il verde come meno dell'85% pieno, il giallo come oltre l'85% pieno, e il rosso come oltre il 90% pieno. È 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 monitor genera un avviso quando lo stato di integrità diventa rosso e l'avviso viene risolto, è necessario reimpostare anche lo stato di integrità del monitor. 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 monitor non può essere chiuso a meno che lo stato di integrità del monitor corrispondente non sia sano. 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 delle operazioni

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 ulteriori dettagli sull'avviso che non è stato possibile chiudere, consulta 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'allerta, generata da un monitor in stato di malfunzionamento.

  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 il messaggio di avviso chiuso nella console web.

    Nota

    Per chiudere questo avviso, è necessario ripristinare manualmente lo stato dei monitor corrispondenti che hanno generato questo 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 monitor, 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 Reimposta integrità per avviso del dashboard. O
    • Seleziona un avviso in questo dashboard per navigare alla pagina di approfondimento degli avvisi (dove puoi visualizzare tutte le informazioni pertinenti relative a un avviso) e seleziona l'attività Reimposta integrità nel pannello attività.

    Screenshot che mostra lo stato di integrità del monitor dopo il ripristino per un allarme.

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 monitor.

  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 Esploratore salute peroggetto nome.

  5. Seleziona il monitor che ha generato l'avviso e seleziona Reimposta integrità sulla barra degli strumenti. Chiudere Esplora salute e la vista 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 uno stato di salute non permanente in determinati scenari, come descritto di seguito:

  1. Failover:

    • Il failover che potrebbe essere attivato quando il server di gestione va offline.
    • A causa dell'aggiunta di nuovi server di gestione al pool di risorse, con conseguente bilanciamento del carico.
    • Quando un computer senza agente effettua un failover e deve essere monitorato da un altro server di gestione, da cui deriva un nuovo stato di integrità.
  2. Agente disconnesso e riconnesso dopo un po' di tempo, durante il quale la modifica dello stato di integrità avviene senza essere a conoscenza dello stato precedente.

  3. Server di gestione disconnesso e connesso di nuovo.

  4. Cache del servizio sanitario ripulita.

In generale, il servizio sanitario non mantiene l'ultimo stato del monitor; gli avvisi non vengono chiusi quando si reimposta il monitor a uno stato sano.

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 monitor con modulo su richiesta immediata: chiudi immediatamente.
  • Tutti i monitor senza moduli su richiesta: chiudono alla 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 salute mostra una modifica minore durante l'inizializzazione del monitor; di seguito è riportato un esempio:

Screenshot che mostra la transizione dello stato di salute.

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

Modifiche nell'esperienza di chiusura degli avvisi

L'amministratore può scegliere di chiudere l'allerta di un monitor dello stato di salute, che è in uno stato non in salute.

Nella versione 2019, non è stato possibile chiudere un avviso generato da un monitor a meno che lo stato di integrità del monitor corrispondente sia in buono stato. 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 allarmi generati dal monitor solo quando lo stato del monitor sottostante viene risolto o reimpostato manualmente
  • Chiudere gli avvisi generati dal monitor reimpostando l'integrità del monitor sottostante: questa opzione consente di chiudere gli avvisi dei monitor malfunzionanti programmaticamente e nell'interfaccia utente. In questo modo viene impostata la salute del monitor sottostante, chiudendo implicitamente l'avviso corrispondente. Questa opzione consente anche la chiusura in blocco degli avvisi generati dai monitor.

È 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à.