Como fechar um alerta gerado por um monitor

Importante

Esta versão do Operations Manager chegou ao fim do suporte. Recomendamos que você atualize para o Operations Manager 2022.

Os monitores definem os estados de integridade de 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.

Quando você receber um alerta, você poderá ver nos detalhes do alerta se ele foi gerado por uma regra ou monitor. Se o alerta foi gerado por um monitor, como uma melhor prática, você deverá permitir que o monitor resolva automaticamente o alerta quando o estado de integridade retornar para íntegro. Se você fechar o alerta enquanto o objeto estiver em um estado de aviso ou não íntegro, o problema permanecerá não resolvido, mas nenhum alerta adicional 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á não resolvido, mas nenhum alerta adicional será gerado. Esse comportamento, que geralmente levou 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 esteja í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.

Verifique 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

    A Visão Geral do Monitoramento exibe um resumo dos estados de integridade dos monitores e os 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 um estado não íntegro.

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

    A seguinte mensagem será exibida para informar o motivo do não fechamento do alerta:

    Os alertas da 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 opção resolver automaticamente 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 deverá ser fechado manualmente depois que o estado de integridade for redefinido.

Console Web

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

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

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

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

    A seguinte mensagem será exibida para informar o motivo do não fechamento do alerta:

    Não é possível fechar o alerta atual, pois o monitor que gerou esse alerta ainda não está íntegro

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

    Observação

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

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

Siga estas etapas:

  1. Selecione Dashboard 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 devido ao monitor que gerou o alerta não íntegro.

  2. Redefina o estado de integridade do monitor para o alerta correspondente das duas seguintes maneiras:

    • Selecione um alerta no painel e, em seguida, a ação do painel Redefinir Integridade para o Alerta. Ou
    • Selecione um alerta neste dashboard para navegar até a página de detalhamento de alertas (em que 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 a integridade do monitor de redefinição de um alerta.

APIs de atualização de alerta

Se um fechamento de alerta for disparado de sistemas externos como o 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 APIs de atualização de alerta existentes a seguir podem ser usadas para externalizar dados de atualização de alerta. Estas duas APIs foram aprimoradas para habilitar a externalização desse novo comportamento:

  • API 1 de atualização de alerta

  • API 2 de atualização de alerta

A amostra a seguir descreve os detalhes de 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.")
                    }
            }           
        }

    }
}

Para determinar se um alerta será 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 Alertas para ver se a opção Resolve automaticamente o alerta quando o monitor retorna a um estado íntegro é selecionada.

Para 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 ele foi gerado por um monitor ou uma regra. Use o conhecimento do produto para que o alerta ajudar a determinar sua causa.

  2. Solucione o problema das 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á a exibição Estado do objeto associado ao alerta.

  4. Clique com o botão direito do mouse no objeto, aponte para Abrir e selecione Integridade Explorer 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 a exibição Estado.

  6. Atualize a exibição de alertas. Se o alerta ainda estiver listado, selecione o alerta 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.

Fechamento de alertas órfãos

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 apresenta failover e deve ser monitorado por outro servidor de gerenciamento, portanto, o novo status de integridade.
  2. O agente se desconectou e se conectou novamente após algum tempo, no qual a integridade status alteração 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 integridade não conté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 e posterior, todos os alertas órfãos são fechados ao final, dependendo do tipo de monitor, como detalhado abaixo:

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

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

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

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

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

Com o Operations Manager 2022, o administrador pode optar pelo encerramento de alerta de um Monitor de Integridade, que está em 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 esteja í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.

Com Operations Manager 2022, o administrador pode alterar esse comportamento navegando para Administração>Configurações 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 gerados pelo monitor redefinindo a integridade do monitor subjacente: essa opção permite que você feche 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 Ativos e Detalhes no Console de Operações e Web 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 resolve automaticamente ou se você não quiser esperar que o monitor detecte o estado de integridade.