Compartilhar via


Fechar um alerta gerado por um monitor

Os monitores definem os estados de integridade dos objetos. Um objeto pode ter um dos três estados de integridade: verde (bem-sucedido ou íntegro), amarelo (aviso) ou vermelho (crítico ou não íntegro). Por exemplo, um monitor para a capacidade da unidade de disco pode definir verde como menos de 85% cheio, amarelo como mais de 85% cheio e vermelho como mais de 90% cheio. Um monitor pode ser configurado para gerar um alerta quando ocorre uma mudança de estado.

Ao receber um alerta, você pode ver nos detalhes do alerta se o alerta foi gerado por uma regra ou um monitor. Se o alerta foi gerado por um monitor, como prática recomendada, você deve permitir que o monitor resolva automaticamente o alerta quando o estado de integridade retornar à íntegra. Se você fechar o alerta enquanto o objeto estiver em um estado de aviso ou não íntegro, o problema permanecerá sem solução, mas nenhum outro alerta será gerado.

Se o monitor gerar um alerta quando o estado de integridade mudar para vermelho e você resolver o alerta, você também deverá redefinir o estado de integridade do monitor. Se o monitor não for redefinido, a mesma condição que gerou um alerta poderá ocorrer novamente, mas nenhum alerta será gerado porque o estado de integridade não foi alterado.

No Operations Manager anterior a 2019, se você fechar o alerta enquanto o objeto estiver em um estado de aviso ou não íntegro, o problema permanecerá sem solução, mas nenhum outro alerta será gerado. Esse comportamento, que geralmente levava a um cenário em que não há nenhum alerta ativo no sistema, enquanto existe um problema subjacente, é corrigido no Operations Manager 2019.

Com o Operations Manager 2019, um alerta gerado por um monitor não pode ser fechado, a menos que o estado de integridade do monitor correspondente seja íntegro. Se você tentar fechar um alerta gerado por um monitor não íntegro, uma mensagem de erro será exibida e o alerta não será fechado.

Você pode verificar esse novo comportamento no console de Operações e no console Web.

Console de operações

Siga estas etapas:

  1. Abra o console do Operations Manager e selecione Monitoramento

    Visão geral do monitoramento exibe um resumo dos estados de integridade dos monitores e dos alertas atuais.

  2. Selecione Alertas Ativos no painel de navegação.

  3. Clique com o botão direito do mouse em um alerta, que é gerado por um monitor em estado não íntegro.

  4. Defina o estado da resolução como Fechado.

    A seguinte mensagem aparece para indicar o motivo do não encerramento do alerta:

    Os alertas na seleção atual não podem ser fechados, pois os monitores que geraram esses alertas ainda não estão íntegros. Para obter mais detalhes sobre o alerta que não pôde ser fechado, exiba o painel "Falha no fechamento do alerta" no Console Web do Operations Manager

    Captura de tela mostrando o console de operações de mensagem de alerta fechado.

    Observação

    Para fechar esse alerta, o estado de integridade do monitor correspondente deve ser redefinido manualmente para o estado íntegro. Se a resolução automática para esse monitor estiver definida como true, o alerta será fechado automaticamente depois que o estado de integridade for redefinido. Caso contrário, o alerta deve ser fechado manualmente depois que o estado de integridade for redefinido.

Console Web

  1. Abra o Web Console e selecione Monitoramento. Visão geral do monitoramento exibe um resumo dos estados de integridade dos monitores e dos alertas atuais.

  2. Selecione Alertas Ativos no painel de navegação.

  3. Abra um alerta, que foi gerado por um monitor em estado não íntegro.

  4. Defina o estado da resolução como Fechado e Salvar alterações.

    A seguinte mensagem aparece para indicar o motivo do não encerramento do alerta:

    O alerta atual não pode ser fechado, pois o monitor que gerou esse alerta ainda não está íntegro

    Captura de tela mostrando o console da web de mensagem de alerta fechado.

    Observação

    Para fechar esse alerta, você deve redefinir manualmente a integridade dos monitores correspondentes que geraram esse alerta.

Redefinir manualmente o estado de integridade de um monitor para um alerta correspondente

Siga estas etapas:

  1. Selecione Painel de Falha de Fechamento de Alerta no painel de navegação. O painel lista os alertas, que o Operations Manager não pôde fechar porque o monitor, que gerou o alerta, não está íntegro.

  2. Você pode redefinir o estado de integridade do monitor para o alerta correspondente, das duas maneiras a seguir:

    • Selecione um alerta no painel e, em seguida, selecione a ação do painel Redefinir Integridade para Alerta. Ou
    • Selecione um alerta neste painel para navegar até a página de detalhamento de alertas (onde você pode visualizar todas as informações relevantes para um alerta) e selecione a tarefa Redefinir Integridade no painel de tarefas.

    Captura de tela mostrando redefinir a integridade do monitor para um alerta.

APIs de atualização de alerta

Se um fechamento de alerta for disparado de sistemas externos, como gerenciamento de incidentes, e o alerta não tiver sido fechado devido ao monitor correspondente não estar íntegro, uma exceção será passada com os detalhes do alerta, que podem ser consumidos por sistemas externos.

As seguintes APIs de atualização de alerta existentes podem ser usadas para externalizar dados de atualização de alerta. Estas duas APIs foram aprimoradas para habilitar a externalização desse novo comportamento:

O exemplo a seguir mostra os detalhes sobre como usar a exceção 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 se um alerta é resolvido automaticamente

Siga estas etapas:

  1. Selecione o alerta e, em seguida, nos detalhes do alerta, selecione o nome do monitor de alerta. A caixa de diálogo de propriedades do monitor é aberta.

  2. Nas propriedades do monitor, selecione a guia Alerta para ver se a opção Resolver automaticamente o alerta quando o monitor retornar a um estado íntegro está selecionada.

Fechar um alerta gerado por um monitor

Siga estas etapas:

  1. Leia o alerta e examine suas propriedades. Verifique os detalhes do alerta para determinar se o alerta foi gerado por um monitor ou por uma regra. Use o conhecimento do produto para o alerta para ajudar a determinar a causa do alerta.

  2. Solucione as causas do alerta e execute as ações necessárias para resolver o problema.

  3. Quando o problema for resolvido, selecione Origem nos detalhes do alerta. Isso abrirá o modo de exibição Estado para o objeto associado ao alerta.

  4. Clique com o botão direito do mouse no objeto, aponte para Abrir e selecione Gerenciador de Integridade para o nome do objeto.

  5. Selecione o monitor que gerou o alerta e selecione Redefinir Integridade na barra de ferramentas. Feche o Gerenciador de Integridade e o modo de exibição Estado .

  6. Atualize a exibição de alertas. Se o alerta ainda estiver listado, selecione-o e selecione Fechar Alerta no painel Ações.

Observação

A atualização a seguir (fechamento de alertas órfãos) é aplicável ao Operations Manager 2019 UR3 e versões posteriores.

Encerramento de indicações órfãs

No Operations Manager 2019 RTM, UR1 e UR2, os alertas ativos não estão sendo fechados após o estado de integridade não persistente em determinados cenários, conforme detalhado abaixo:

  1. Failover:

    • O failover que pode ser disparado quando o servidor de gerenciamento fica offline.
    • Devido à adição de novos servidores de gerenciamento ao pool de recursos, levando ao balanceamento de carga.
    • Quando um computador sem agente faz failover e deve ser monitorado por outro servidor de gerenciamento, daí o novo status de integridade.
  2. O agente foi desconectado e conectado novamente após algum tempo, no qual a alteração do status de integridade não está ciente do estado anterior.

  3. O servidor de gerenciamento foi desconectado e conectado novamente.

  4. Cache do serviço de integridade limpo.

No geral, o serviço de saúde não mantém o último estado do monitor; Os alertas não são fechados durante a redefinição do monitor para íntegro.

Com o Operations Manager 2019 UR3, todos os alertas órfãos são fechados, eventualmente, dependendo do tipo de monitor, conforme detalhado abaixo:

  • Monitor de serviço: feche imediatamente.
  • Todos os monitores com módulo sob demanda imediato: feche imediatamente.
  • Todos os monitores sem módulos sob demanda: fecham na segunda execução, dependendo da frequência.
  • Monitor baseado em evento: feche com um evento íntegro que ocorre após a inicialização.

A transição do estado de integridade mostra uma pequena alteração quando o monitor está inicializando; Amostra abaixo:

Captura de tela mostrando a transição do estado de integridade.

Conforme mostrado na figura acima, durante a inicialização, o monitor primeiro fica íntegro. Em seguida, ele calcula novamente e se torna saudável. Você verá duas transições de alteração de estado de estado vazio para íntegro.

Alterações na Experiência de Fechamento de Alerta

O administrador pode optar por escolher o fechamento de alerta de um Monitor de Integridade, que está no estado Não Íntegro.

Na versão 2019, um alerta gerado por um monitor não pôde ser fechado, a menos que o estado de integridade do monitor correspondente seja íntegro. Se você tentar fechar um alerta gerado por um monitor não íntegro, uma mensagem de erro será exibida e o alerta não será fechado.

O administrador pode alterar esse comportamento navegando até Configurações de administração>e selecionando qualquer uma das opções abaixo:

  • Fechar alertas gerados pelo monitor somente quando a integridade do monitor subjacente for resolvida ou redefinida manualmente
  • Fechar alertas(s) gerados(s) pelo monitor redefinindo a integridade do monitor subjacente: essa opção permite fechar alertas de monitores não íntegros programaticamente e na interface do usuário. Isso redefine a integridade do monitor subjacente, o que fechará implicitamente seu alerta correspondente. Essa opção também permite o fechamento em massa de alertas gerados pelos monitores.

Você também pode rastrear como o alerta foi fechado exibindo Propriedades do Alerta>Histórico.

Captura de tela mostrando as configurações do grupo de gerenciamento global.

Captura de tela mostrando o histórico de alertas.

Próximas etapas

  • Quando um alerta é gerado, você pode Exibir Alertas e Detalhes Ativos no console Web e de Operações para identificar possíveis problemas e ajudar a identificar as próximas etapas para resolvê-los.

  • Depois de investigar e resolver o problema detectado por um ou mais monitores, examine Como redefinir a integridade para redefinir manualmente a integridade se o monitor não estiver configurado para resolução automática ou se você não quiser esperar que o monitor detecte o estado de integridade.