Partilhar via


Criar configurações de diagnóstico em escala usando as Políticas e Iniciativas do Azure

Para monitorar os recursos do Azure, é necessário criar configurações de diagnóstico para cada recurso. Esse processo pode ser difícil de gerenciar quando você tem muitos recursos. Para simplificar o processo de criação e aplicação de configurações de diagnóstico em escala, use a Política do Azure para gerar automaticamente configurações de diagnóstico para recursos novos e existentes.

Cada tipo de recurso do Azure tem um conjunto exclusivo de categorias listadas nas configurações de diagnóstico. Cada tipo de recurso exige, portanto, uma definição de política separada. Alguns tipos de recursos têm definições de política internas que você pode atribuir sem modificação. Para outros tipos de recursos, você pode criar uma definição personalizada.

Grupos de categorias de log

Grupos de categorias de log, agrupe tipos semelhantes de logs. Os grupos de categorias facilitam a referência a vários logs em um único comando. Existe um grupo de categorias allLogs contendo todos os logs. Há também um grupo de categorias de auditoria que inclui todos os logs de auditoria. Usando para um grupo de categorias, você pode definir uma política que atualiza dinamicamente à medida que novas categorias de log são adicionadas ao grupo.

Definições de política internas para o Azure Monitor

Geralmente, há três definições de política internas para cada tipo de recurso, correspondentes aos três destinos para os quais enviar diagnósticos:

  • Áreas de trabalho do Log Analytics
  • Contas de Armazenamento do Azure
  • Hubs de eventos

Atribua as políticas para o tipo de recurso de acordo com os destinos necessários.

Existe um conjunto de políticas, políticas internas e iniciativas baseadas nos grupos de categorias do log de auditoria para ajudá-lo a aplicar configurações de diagnóstico com apenas algumas etapas. Para obter mais informações, consulte Habilitar configurações de diagnóstico por grupo de categorias usando políticas internas.

Para obter uma lista completa de políticas internas para o Azure Monitor, consulte Definições internas da Política do Azure para o Azure Monitor

Definições de política personalizadas

Para tipos de recursos que não têm uma política interna, você precisa criar uma definição de política personalizada. Você pode criar uma nova política manualmente no portal do Azure copiando uma política interna existente e modificando-a para seu tipo de recurso. Como alternativa, crie a política programaticamente usando um script na Galeria do PowerShell.

O script Create-AzDiagPolicy cria arquivos de política para um tipo de recurso específico que você pode instalar usando o PowerShell ou a CLI do Azure. Use o procedimento a seguir para criar uma definição de política personalizada para configurações de diagnóstico:

  1. Certifique-se de ter o Azure PowerShell instalado.

  2. Instale o script usando o seguinte comando:

    Install-Script -Name Create-AzDiagPolicy
    
  3. Execute o script usando os parâmetros para especificar para onde enviar os logs. Especifique uma assinatura e um tipo de recurso no prompt.

    Por exemplo, para criar uma definição de política que envia logs para um espaço de trabalho do Log Analytics e um hub de eventos, use o seguinte comando:

    Create-AzDiagPolicy.ps1 -ExportLA -ExportEH -ExportDir ".\PolicyFiles"  
    

    Como alternativa, você pode especificar uma assinatura e um tipo de recurso no comando. Por exemplo, para criar uma definição de política que envia logs para um espaço de trabalho do Log Analytics e um hub de eventos para bancos de dados do SQL Server, use o seguinte comando:

    Create-AzDiagPolicy.ps1 -SubscriptionID <subscription id> -ResourceType Microsoft.Sql/servers/databases  -ExportLA -ExportEH -ExportDir ".\PolicyFiles"  
    
  4. O script cria pastas separadas para cada definição de política. Cada pasta contém três arquivos chamados azurepolicy.json, azurepolicy.rules.json e azurepolicy.parameters.json. Se quiser criar a política manualmente no portal do Azure, você pode copiar e colar o conteúdo do azurepolicy.json porque ele inclui toda a definição de política. Use os outros dois arquivos com o PowerShell ou a CLI do Azure para criar a definição de política a partir de uma linha de comando.

    Os exemplos a seguir mostram como instalar a definição de política do PowerShell e da CLI do Azure. Cada exemplo inclui metadados para especificar uma categoria de Monitoramento para agrupar a nova definição de política com as definições de política internas.

    New-AzPolicyDefinition -name "Deploy Diagnostic Settings for SQL Server database to Log Analytics workspace" -policy .\Apply-Diag-Settings-LA-Microsoft.Sql-servers-databases\azurepolicy.rules.json -parameter .\Apply-Diag-Settings-LA-Microsoft.Sql-servers-databases\azurepolicy.parameters.json -mode All -Metadata '{"category":"Monitoring"}'
    
    az policy definition create --name 'deploy-diag-setting-sql-database--workspace' --display-name 'Deploy Diagnostic Settings for SQL Server database to Log Analytics workspace'  --rules 'Apply-Diag-Settings-LA-Microsoft.Sql-servers-databases\azurepolicy.rules.json' --params 'Apply-Diag-Settings-LA-Microsoft.Sql-servers-databases\azurepolicy.parameters.json' --subscription 'AzureMonitor_Docs' --mode All
    

Iniciativa

Em vez de criar uma atribuição para cada definição de política, uma estratégia comum é criar uma iniciativa que inclua as definições de política para criar configurações de diagnóstico para cada serviço do Azure. Crie uma atribuição entre a iniciativa e um grupo de gerenciamento, assinatura ou grupo de recursos, dependendo de como você gerencia seu ambiente. Esta estratégia oferece os seguintes benefícios:

  • Crie uma única atribuição para a iniciativa em vez de várias atribuições para cada tipo de recurso. Use a mesma iniciativa para vários grupos de monitoramento, assinaturas ou grupos de recursos.
  • Modifique a iniciativa quando precisar adicionar um novo tipo de recurso ou destino. Por exemplo, seus requisitos iniciais podem ser enviar dados apenas para um espaço de trabalho do Log Analytics, mas depois você deseja adicionar um hub de eventos. Modifique a iniciativa em vez de criar novas atribuições.

Para obter detalhes sobre como criar uma iniciativa, consulte Criar e atribuir uma definição de iniciativa. Considere as seguintes recomendações:

  • Defina Categoria como Monitoramento para agrupá-la com definições de política internas e personalizadas relacionadas.
  • Em vez de especificar os detalhes do espaço de trabalho do Log Analytics e do hub de eventos para definições de política incluídas na iniciativa, use um parâmetro de iniciativa comum. Esse parâmetro permite especificar facilmente um valor comum para todas as definições de política e alterar esse valor, se necessário.

Captura de tela que mostra as configurações para a definição da iniciativa.

Atribuição

Atribua a iniciativa a um grupo de gerenciamento, assinatura ou grupo de recursos do Azure, dependendo do escopo de seus recursos a serem monitorados. Um grupo de gerenciamento é útil para definir o escopo, especialmente se sua organização tiver várias assinaturas.

Captura de ecrã das definições do separador Noções básicas na secção Atribuir iniciativa da área de trabalho Definições de diagnóstico ao Log Analytics no portal do Azure.

Usando parâmetros de iniciativa, você pode especificar o espaço de trabalho ou quaisquer outros detalhes uma vez para todas as definições de política na iniciativa.

Captura de tela que mostra os parâmetros da iniciativa na guia Parâmetros.

Remediação

A iniciativa é aplicada a cada máquina virtual à medida que é criada. Uma tarefa de correção implanta as definições de política na iniciativa em recursos existentes, para que você possa criar configurações de diagnóstico para quaisquer recursos que já foram criados.

Ao criar a atribuição usando o portal do Azure, você tem a opção de criar uma tarefa de correção ao mesmo tempo. Consulte Corrigir recursos não compatíveis com a Política do Azure para obter detalhes sobre a correção.

Captura de tela que mostra a correção de iniciativa para um espaço de trabalho do Log Analytics.

Resolução de Problemas

A categoria de métrica não é suportada

Ao implantar uma configuração de diagnóstico, você recebe uma mensagem de erro, semelhante à categoria de métrica 'xxxx' não é suportada. Você pode receber esse erro mesmo que sua implantação anterior tenha sido bem-sucedida.

O problema ocorre ao usar um modelo do Gerenciador de Recursos, API REST, CLI do Azure ou Azure PowerShell. As configurações de diagnóstico criadas por meio do portal do Azure não são afetadas, pois apenas os nomes de categoria com suporte são apresentados.

Categorias de métricas diferentes das AllMetrics que não são suportadas, exceto para um número limitado de serviços do Azure. Anteriormente, outros nomes de categoria eram ignorados ao implantar uma configuração de diagnóstico, redirecionando-os para AllMetrics. A partir de fevereiro de 2021, a categoria métrica fornecida é validada. Essa alteração fez com que algumas implantações falhassem.

Para corrigir esse problema, atualize suas implantações para remover qualquer nome de categoria métrica diferente de AllMetrics. Se a implantação adicionar várias categorias, use apenas uma AllMetrics categoria. Se continuar a ter o problema, contacte o suporte do Azure através do portal do Azure.

A configuração desaparece devido a caracteres não-ASCII no resourceID

As configurações de diagnóstico não suportam resourceIDs com caracteres não-ASCII (por exemplo, Preproduccón). Como não é possível renomear recursos no Azure, você deve criar um novo recurso sem os caracteres não-ASCII. Se os caracteres estiverem em um grupo de recursos, você poderá movê-los para um novo grupo.

Próximos passos