Detectar e solucionar problemas de alterações de configuração frequentes no Operations Manager

Este artigo discute como detectar e solucionar problemas de alterações de configuração frequentes no System Center Operations Manager.

Versão original do produto: Microsoft System Center 2012 Operations Manager
Número de KB original: 2603913

Visão geral da configuração

O serviço de Configuração de Gerenciamento do System Center é responsável por calcular a configuração de todos os serviços de integridade no grupo de gerenciamento do Operations Manager. A configuração de um serviço de saúde consiste nas regras, monitores, descobertas e tarefas para o serviço de saúde e para todas as instâncias que o serviço de saúde monitora.

Para calcular todas as configurações necessárias para cada serviço de integridade, o serviço de Configuração de Gerenciamento deve ter uma lista dos seguintes itens:

  • Todas as instâncias de todas as classes monitoradas
  • As relações de hospedagem entre instâncias
  • As regras, monitores, descobertas e outros fluxos de trabalho atribuídos às classes monitoradas
  • Os serviços de saúde responsáveis pelo monitoramento das instâncias

Além disso, o serviço de Configuração de Gerenciamento deve ser capaz de ler a associação de todos os grupos de instâncias no grupo de gerenciamento. O serviço de Configuração de Gerenciamento também deve aplicar quaisquer substituições para regras e monitores direcionados a esses grupos, classes ou instâncias individuais.

Objetos em um grupo de gerenciamento serão definidos como instâncias de classes monitoradas com base em dados de descoberta enviados por fluxos de trabalho de descoberta. Se uma propriedade chave de um objeto for alterada, esse objeto poderá ser adicionado como uma nova instância de uma classe monitorada. Caso contrário, esse objeto não é mais considerado uma instância dessa classe.

À medida que a lista muda para as classes das quais o objeto é membro, a configuração também muda para o serviço de integridade que monitora esse objeto. Essas alterações ocorrem como regras, monitores, descobertas, tarefas e substituições são adicionadas ou removidas da configuração anterior.

Rotatividade de configuração

Os agentes podem não receber uma configuração estável nos seguintes cenários:

  • Uma grande quantidade de dados de descoberta é enviada ao serviço de Configuração de Gerenciamento.
  • Os dados de descoberta são enviados muito rápido para que o serviço de Configuração de Gerenciamento seja processado antes que mais dados de descoberta sejam enviados. Esse cenário ocorre porque os dados sempre estarão no processo de cálculo.

O envio frequente de dados de descoberta, também conhecido como churn de configuração, pode fazer com que alguns serviços de integridade sejam executados em configurações antigas ou fazer com que a configuração de servidores de gerenciamento fique obsoleta. Esse comportamento faz com que alguns serviços de saúde apareçam esmaecidos (indisponíveis) no console de Operações.

Os dados de descoberta são enviados por um serviço de integridade quando um fluxo de trabalho de descoberta é executado. A introdução de um novo pacote de gerenciamento a um grupo de gerenciamento pode fazer com que vários fluxos de trabalho de descoberta sejam executados em cada agente. E, à medida que novas instâncias são descobertas, descobertas adicionais podem ser executadas em alguns agentes. Alterações em grupos, substituições e outros fluxos de trabalho podem fazer com que os fluxos de trabalho de descoberta sejam executados em agentes. E a introdução de novos agentes também pode fazer com que o serviço de Configuração de Gerenciamento atualize o espaço da instância usando a configuração do novo agente.

O serviço de Gerenciamento de Configuração é forçado a recalcular a configuração do serviço de integridade com frequência nos seguintes cenários:

  • Um fluxo de trabalho de descoberta é configurado para ser executado com muita frequência.
  • As propriedades que são descobertas pela alteração do fluxo de trabalho sempre que o fluxo de trabalho de descoberta é executado.

Se esses cenários ocorrerem para muitos agentes ou servidores de gerenciamento já estiverem sob uma carga de trabalho pesada, o serviço de Gerenciamento de Configuração poderá não conseguir acompanhar a taxa de alteração e a rotatividade de configuração poderá ocorrer.

Identificar o churn de configuração usando o log de eventos do servidor de gerenciamento

Um evento que se assemelha ao seguinte no servidor de gerenciamento de eventos do Operations Manager indica que a configuração do grupo de gerenciamento foi alterada devido a novos dados de descoberta:

Nome do log: Operations Manager
Fonte: OpsMgr Connector
ID do evento: 21024
Nível: Informações
Computador: <Nome>
Descrição:
A configuração do OpsMgr pode estar desatualizada para o grupo <de gerenciamento ManagementGroupName> e solicitou a configuração atualizada do Serviço de Configuração. O cookie de estado atual(desatualizado) é "3A B0 1E 5C 81 F3 12 F5 56 B7 8A EF F8 01 BA 09 86 55 06 48 "

Um evento que se assemelha ao seguinte indica que o serviço de Configuração de Gerenciamento terminou de processar os novos dados de descoberta e calculou as alterações necessárias à configuração do grupo de gerenciamento, com base nos novos dados:

Nome do log: Operations Manager
Fonte: OpsMgr Connector
ID do evento: 21025
Nível: Informações
Computador: <Nome>
Descrição:
O OpsMgr recebeu uma nova configuração para o grupo <de gerenciamento ManagementGroupName> do Serviço de Configuração. O novo cookie de estado é "34 FA 11 61 4D B8 03 59 3D 1D 66 B7 83 F3 C0 AA 7A 6F 1A 3B"

Em um ambiente típico, cada evento 21024 deve ser seguido pelo evento 21025. Se os dados de descoberta não fizeram com que nenhum dado de configuração fosse alterado, a ID do evento será 21026. Em um grande grupo de gerenciamento, os pares de eventos 21024 e 21025 ou 21026 devem ocorrer várias vezes por hora. Cadeias de caracteres longas de eventos de 21024 sem um evento correspondente de 21025 ou 21026 é um sinal de rotatividade de configuração. Além disso, o log de eventos pode mostrar o seguinte evento que indica que o churn foi detectado:

Nome do log: Operations Manager
Fonte: Serviço de Configuração opsMgr
ID do evento: 29202
Nível: Aviso
Computador: <Nome>
Descrição:
O Serviço de Configuração opsMgr não pôde recuperar um estado consistente do banco de dados OpsMgr devido a alterações frequentes no banco de dados.
Isso pode ser devido a um aumento normal e temporário de dados de descoberta; no entanto, marcar as alterações mais recentes para determinar se esse aumento é inesperado.
Alteração de objeto de monitoramento mais recente:
Instância = %1
Classe = %2
Tempo modificado = %3
Alteração de relação de monitoramento mais recente:
Instância de relacionamento = %4
Instância de origem = %5
Instância de destino = %6
RelationshipClass = %7
Tempo modificado = %8

A Camada de Acesso a Dados deve ler várias tabelas quando a Camada de Acesso a Dados consultar alterações. Se uma das tabelas for modificada após a leitura, mas antes de todas as tabelas serem lidas, a Camada de Acesso a Dados registrará a ID do evento anterior 29202 e tentará novamente. Se uma entidade ou instância de relacionamento foi lida durante esse tempo, as informações sobre essas instâncias serão incluídas nos campos de eventos. Caso contrário, esses campos serão deixados vazios.

Identificar possíveis causas de rotatividade de configuração usando o Operations Manager Data Warehouse

Em grupos de gerenciamento nos quais o componente Operations Manager Reporting foi instalado, várias consultas SQL podem ser usadas para identificar fluxos de trabalho que estão enviando alterações frequentes. Essas consultas devem ser executadas em SQL Server Management Studio na instância Data Warehouse.

Total de alterações enviadas por fluxos de trabalho de descoberta nas últimas 24 horas:

select
   ManagedEntityTypeSystemName,
   DiscoverySystemName,
   count(*) As 'Changes'
from
   (
      select distinct
         MP.ManagementPackSystemName,
         MET.ManagedEntityTypeSystemName,
         PropertySystemName,
         D.DiscoverySystemName,
         D.DiscoveryDefaultName,
         MET1.ManagedEntityTypeSystemName As 'TargetTypeSystemName',
         MET1.ManagedEntityTypeDefaultName As 'TargetTypeDefaultName',
         ME.Path,
         ME.Name,
         C.OldValue,
         C.NewValue,
         C.ChangeDateTime
      from
         dbo.vManagedEntityPropertyChange C
         inner join
            dbo.vManagedEntity ME
            on ME.ManagedEntityRowId = C.ManagedEntityRowId
         inner join
            dbo.vManagedEntityTypeProperty METP
            on METP.PropertyGuid = C.PropertyGuid
         inner join
            dbo.vManagedEntityType MET
            on MET.ManagedEntityTypeRowId = ME.ManagedEntityTypeRowId
         inner join
            dbo.vManagementPack MP
            on MP.ManagementPackRowId = MET.ManagementPackRowId
         inner join
            dbo.vManagementPackVersion MPV
            on MPV.ManagementPackRowId = MP.ManagementPackRowId
         left join
            dbo.vDiscoveryManagementPackVersion DMP
            on DMP.ManagementPackVersionRowId = MPV.ManagementPackVersionRowId
            AND CAST(DefinitionXml.query('data(/Discovery/DiscoveryTypes/DiscoveryClass/@TypeID)') AS nvarchar(max)) like '%' + MET.ManagedEntityTypeSystemName + '%'
         left join
            dbo.vManagedEntityType MET1
            on MET1.ManagedEntityTypeRowId = DMP.TargetManagedEntityTypeRowId
         left join
            dbo.vDiscovery D
            on D.DiscoveryRowId = DMP.DiscoveryRowId
      where
         ChangeDateTime > dateadd(hh, - 24, getutcdate())
   )
   As # T
group by
   ManagedEntityTypeSystemName,
   DiscoverySystemName
order by
   count(*) DESC

Essa consulta cria três colunas. A primeira coluna é a classe de objeto na qual o fluxo de trabalho é direcionado. A segunda coluna indica o nome interno do fluxo de trabalho de descoberta. A terceira coluna indica o número total de alterações de propriedade para todas as instâncias dessa classe que foram enviadas pelo fluxo de trabalho nas últimas 24 horas. O número total de alterações, para todas as classes, representa o número de vezes que o serviço de Gerenciamento de Configuração deve recalcular a configuração de um serviço de integridade do agente.

O número de alterações para algumas classes de objetos, mesmo em um ambiente estável, pode nunca chegar a zero. Qualquer alteração, como adicionar ou remover uma propriedade, agentes adicionados ou desativados, funções de servidor que são adicionadas ou alteradas, e assim por diante, são refletidas nos números retornados. Em ambientes em que a rotatividade de configuração é experimentada, um ou vários fluxos de trabalho provavelmente mostrarão um valor maior do que outros fluxos de trabalho.

As propriedades foram alteradas nas últimas 24 horas:

select distinct
   MP.ManagementPackSystemName,
   MET.ManagedEntityTypeSystemName,
   PropertySystemName,
   D.DiscoverySystemName,
   D.DiscoveryDefaultName,
   MET1.ManagedEntityTypeSystemName As 'TargetTypeSystemName',
   MET1.ManagedEntityTypeDefaultName As 'TargetTypeDefaultName',
   ME.Path,
   ME.Name,
   C.OldValue,
   C.NewValue,
   C.ChangeDateTime
from
   dbo.vManagedEntityPropertyChange C
   inner join
      dbo.vManagedEntity ME
      on ME.ManagedEntityRowId = C.ManagedEntityRowId
   inner join
      dbo.vManagedEntityTypeProperty METP
      on METP.PropertyGuid = C.PropertyGuid
   inner join
      dbo.vManagedEntityType MET
      on MET.ManagedEntityTypeRowId = ME.ManagedEntityTypeRowId
   inner join
      dbo.vManagementPack MP
      on MP.ManagementPackRowId = MET.ManagementPackRowId
   inner join
      dbo.vManagementPackVersion MPV
      on MPV.ManagementPackRowId = MP.ManagementPackRowId
   left join
      dbo.vDiscoveryManagementPackVersion DMP
      on DMP.ManagementPackVersionRowId = MPV.ManagementPackVersionRowId
      AND CAST(DefinitionXml.query('data(/Discovery/DiscoveryTypes/DiscoveryClass/@TypeID)') AS nvarchar(max)) like '%' + MET.ManagedEntityTypeSystemName + '%'
   left join
      dbo.vManagedEntityType MET1
      on MET1.ManagedEntityTypeRowId = DMP.TargetManagedEntityTypeRowId
   left join
      dbo.vDiscovery D
      on D.DiscoveryRowId = DMP.DiscoveryRowId
where
   ChangeDateTime > dateadd(hh, - 24, getutcdate())
ORDER BY
   MP.ManagementPackSystemName,
   MET.ManagedEntityTypeSystemName

Essa consulta pode identificar quais propriedades foram alteradas nas últimas 24 horas. Combinada com a consulta anterior, essa consulta pode mostrar quais eram os valores antigos e novos para a propriedade, quais agentes enviaram a alteração, o fluxo de trabalho que conduziu a descoberta e o pacote de gerenciamento no qual ela estava contida.

Reduzir a rotatividade de configuração

Pacotes de gerenciamento mais antigos introduziram fluxos de trabalho de descoberta que enviavam alterações de propriedade com muita frequência. As versões atuais da maioria dos pacotes de gerenciamento modificaram esses fluxos de trabalho de descoberta para enviar dados com menos frequência ou os pacotes de gerenciamento não consultam propriedades voláteis que mudam com frequência. Recomendamos atualizar pacotes de gerenciamento que contêm fluxos de trabalho que ocorrem com frequência na consulta anterior.

Se uma nova versão do pacote de gerenciamento não estiver disponível ou a nova versão não puder ser implantada agora, o intervalo de descoberta poderá ser ajustado usando substituição para ser executado com menos frequência. Às vezes, a descoberta responsável pela rotatividade de configuração pode ser desabilitada por substituição. Se a descoberta estiver desabilitada por várias semanas, os objetos descobertos pelo fluxo de trabalho poderão ser retirados do banco de dados. No entanto, desabilitar a descoberta pode fornecer uma solução alternativa de curto prazo para eliminar a rotatividade de configuração, desde que uma solução permanente possa ser implementada antes que qualquer objeto seja preparado do banco de dados. O fluxo de trabalho também pode ser habilitado para intervalos curtos para reencontrar os objetos antes de serem preparados.

Alguns fluxos de trabalho nesses pacotes de gerenciamento mais antigos são discutidos em O que é a rotatividade de configuração?

Se o fluxo de trabalho for de uma descoberta personalizada que tem como destino uma propriedade volátil, como espaço livre em disco, a descoberta deve ser reescrita para que não tenha como destino uma propriedade que seja alterada com frequência. Os fluxos de trabalho de descoberta não devem atingir instâncias que tenham um tempo de vida curto (várias semanas ou menos). Os fluxos de trabalho de descoberta não devem coletar propriedades dessas instâncias que são alteradas com frequência (uma ou mais vezes por mês). Dados voláteis não são considerados no cálculo de uma configuração. Portanto, os dados voláteis devem ser coletados por regras de desempenho e não por fluxos de trabalho de descoberta.

Ajuste adicional de desempenho

Em grandes grupos de gerenciamento (maior que 1.000 agentes), o RMS (servidor de gerenciamento raiz) pode ficar ocupado com operações que normalmente não causam problemas em grupos de gerenciamento menores. Nessa situação, mesmo uma pequena taxa de alterações de propriedade pode causar rotatividade frequente devido ao tempo necessário para processar as alterações. Várias alterações de configuração podem ser usadas para reduzir a sobrecarga operacional do RMS e permitir que ele processe uma taxa típica de alterações de propriedade rapidamente o suficiente para evitar a rotatividade de configuração. Essas alterações de configuração são discutidas em Otimizações de Desempenho para o Operations Manager 2007 R2 e 2012.

Forçar a alteração de configuração para o grupo de gerenciamento

Se a rotatividade de configuração para o grupo de gerenciamento ocorrer constantemente, quaisquer alterações para reduzir a frequência dos fluxos de trabalho de problemas ou para desabilitar os fluxos de trabalho de problema nunca serão propagadas aos agentes. Nesse caso, o fluxo de dados de descoberta de entrada deve ser bloqueado para permitir que o serviço de Gerenciamento de Configurações do System Center calcule uma configuração atual na qual o fluxo de trabalho que produz esses dados seja desabilitado ou executado com menos frequência.

Os dados de descoberta são enviados ao OperationsManager banco de dados por meio do DAS (System Center Data Access Service). Os dados são enviados pela primeira vez ao DAS pelo serviço de Gerenciamento do System Center no RMS. O RMS obtém esses dados de agentes ou de outros servidores de gerenciamento. Você pode usar o firewall do Windows ou alguns outros meios de rede para bloquear conexões de entrada com o RMS na porta 5723. Esse procedimento de bloqueio impede que os dados de descoberta sejam enviados ao OperationsManager banco de dados tempo suficiente para que o serviço de Gerenciamento de Configuração calcule a configuração atual para os agentes que estão enviando os dados.

O serviço System Center Management e o System Center Data Access Service no RMS não devem ser interrompidos ou desabilitados enquanto o serviço de Gerenciamento de Configuração estiver calculando a configuração atual. O serviço de Gerenciamento de Configurações do System Center requer o seguinte para concluir o cálculo da configuração do grupo de gerenciamento:

  • O serviço de Gerenciamento do System Center no RMS deve estar em execução e íntegro.
  • O Serviço de Acesso a Dados do System Center deve ser capaz de se comunicar com o banco de dados.

Além disso, alguns dados podem ficar atrasados nos agentes e em outros servidores de gerenciamento, enquanto o serviço de Gerenciamento de Configuração está calculando a configuração atual. Portanto, o firewall ou a exclusão da porta devem ser levantados assim que você vir a ID do evento 21025 no log de eventos do Operations Manager no RMS. Este evento indica que o serviço de Gerenciamento de Configuração calculou a nova configuração para o grupo de gerenciamento em que o fluxo de trabalho agora está desabilitado ou modificado

Identificar possíveis causas de rotatividade de configuração usando relatórios do Operations Manager

Novos relatórios foram introduzidos. Esses relatórios fornecem insights sobre o volume geral de dados que o grupo de gerenciamento processa. Esses relatórios podem ser usados para estabelecer uma linha de base padrão e identificar oportunidades para ajustar fluxos de trabalho de descoberta de objetos. Assim que a rotatividade de configuração for identificada e endereçada, esses relatórios poderão ser usados para planejamento de longo prazo para evitar recorrências de rotatividade.

  • Relatório volume por gerenciamento de dados

    O relatório Volume de Dados por Pacote de Gerenciamento compila informações sobre o volume de dados que os pacotes de gerenciamento geram. O relatório lista o número de ocorrências por pacote de gerenciamento para os seguintes tipos de dados:

    • Descobertas
    • Alertas
    • Desempenho (número de instâncias que são enviadas para contadores de desempenho e que são coletadas pelo pacote de gerenciamento)
    • Eventos
    • Alterações de estado
  • Volume de dados por fluxo de trabalho e relatório de instância

    O relatório Volume de Dados por Fluxo de Trabalho e Instância compila informações sobre o volume de dados gerados, organizados por fluxos de trabalho (descobertas, regras, monitores e assim por diante) e por instâncias.

    Há duas maneiras de acessar este relatório:

    • No relatório Volume de Dados por Pacote de Gerenciamento , selecione uma das células de contagem na tabela na parte superior do relatório para abrir o relatório Volume de Dados por Fluxo de Trabalho e Instância para os pacotes de gerenciamento.
    • Execute o relatório diretamente da seção Reporting no console de Operações. Se você executar o relatório Volume de Dados por Fluxo de Trabalho e Instância diretamente, deverá definir os parâmetros do relatório para personalizar os resultados. Este relatório fornece detalhes para obter informações no relatório Volume de Dados por Pacote de Gerenciamento . Portanto, as configurações de parâmetro padrão podem não fornecer as informações que você está procurando.