Crie configurações de diagnóstico em escala usando 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 o Azure Policy 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, portanto, requer uma definição de política separada. Alguns tipos de recursos têm definições de política integrada que podem ser atribuídas sem modificação. Para outros tipos de recursos, crie uma definição personalizada.
Grupos de categorias de log
Os grupos de categoria de log agrupam 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 que contém todos os logs. Há também um grupo de categorias de auditoria que inclui todos os logs de auditoria. Ao usar um grupo de categoria, você pode definir uma política que é atualizada dinamicamente conforme 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 o diagnóstico será enviado:
- Workspaces 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.
Um conjunto de políticas internas e iniciativas com base nos grupos de categoria de log de auditoria foi desenvolvido para ajudá-lo a aplicar as configurações de diagnóstico com apenas algumas etapas. Para obter mais informações, confira Habilitar configurações de diagnóstico por grupo de categoria usando políticas internas.
Para obter uma lista completa de políticas internas do Azure Monitor, confira definições internas de Azure Policy para Azure Monitor
Definições de políticas personalizadas
Para tipos de recursos que não têm uma política integrada, crie uma definição de política personalizada. É possível 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 pode ser instalado 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:
Verifique se o Azure PowerShell está instalado.
Instale o script usando o comando a seguir:
Install-Script -Name Create-AzDiagPolicy
Execute o script usando os parâmetros para especificar para onde enviar os logs. Será necessário especificar uma assinatura e um tipo de recurso.
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 comando a seguir:
Create-AzDiagPolicy.ps1 -ExportLA -ExportEH -ExportDir ".\PolicyFiles"
Como alternativa, especifique 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 SQL Server, use o comando a seguir:
Create-AzDiagPolicy.ps1 -SubscriptionID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -ResourceType Microsoft.Sql/servers/databases -ExportLA -ExportEH -ExportDir ".\PolicyFiles"
O script cria pastas separadas para cada definição de política. Cada pasta contém três arquivos denominados azurepolicy.json, azurepolicy.rules.json e aazurepolicy.parameters.json. Para criar a política manualmente no portal do Azure, copie e cole o conteúdo de 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 em uma linha de comando.
Os exemplos a seguir mostram como instalar a definição de política pelo PowerShell e pela 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 integradas.
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 a fim de gerar configurações de diagnóstico para cada serviço do Azure. Crie uma atribuição entre a iniciativa e um grupo de gerenciamento, uma assinatura ou um grupo de recursos, dependendo de como seu ambiente é gerenciado. Essa estratégia oferece os seguintes benefícios:
- Crie uma única atribuição para a iniciativa em vez de diversas atribuições para cada tipo de recurso. Use a mesma iniciativa para diversos grupos de monitoramento, assinaturas ou grupos de recursos.
- Modifique a iniciativa quando precisar incluir um novo tipo de recurso ou destino. Por exemplo, os requisitos iniciais podem consistir no envio de dados somente para um espaço de trabalho do Log Analytics. No entanto, é possível que você queira incluir o hub de eventos posteriormente. 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 as definições de política personalizadas e integradas relacionadas.
- Em vez de especificar os detalhes para o espaço de trabalho do Log Analytics e o hub de eventos com relação às definições de política incluídas na iniciativa, use um parâmetro de iniciativa comum. Isso parâmetro permite especificar facilmente um valor comum para todas as definições de política e alterar esse valor, se necessário.
Atribuição
Atribua a iniciativa a um grupo de gerenciamento, uma assinatura ou um grupo de recursos do Azure, dependendo do escopo dos recursos que serão monitorados. Um grupo de gerenciamento é útil para a política de escopo, especialmente quando sua organização tem várias assinaturas.
Usando os parâmetros de iniciativa, especifique o espaço de trabalho ou qualquer outro detalhe uma vez para todas as definições de política na iniciativa.
Remediação
A iniciativa será aplicada a cada máquina virtual à medida que for criada. Uma tarefa de correção implanta as definições de política na iniciativa para os 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 Correção de recursos fora de conformidade com o Azure Policy para obter detalhes sobre a correção.
Solução de problemas
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 tem suporte. Você pode receber esse erro mesmo que sua implantação anterior tenha sido bem-sucedida.
O problema ocorre ao usar um modelo do Resource Manager, a API REST, a CLI do Azure ou o 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.
Esse problema é causado por uma alteração recente na API subjacente. Categorias de métricas diferentes de ''AllMetrics'' não têm suporte e nunca tiveram, exceto para alguns serviços específicos do Azure. No passado, outros nomes de categoria foram ignorados ao se implantar uma configuração de diagnóstico. O back-end do Azure Monitor redirecionava essas categorias para 'AllMetrics'. A partir de fevereiro de 2021, o back-end foi atualizado para confirmar especificamente que a categoria de métrica fornecida é precisa. Essa alteração causou a falha de algumas implantações.
Caso receba esse erro, atualize suas implantações para substituir quaisquer nomes de categoria de métricas por 'AllMetrics' para corrigir o problema. Se a implantação tiver sido adicionada anteriormente a várias categorias, apenas uma com a referência 'AllMetrics' deverá ser mantida. Caso continue tendo esse problema, entre em contato com o Suporte do Azure pelo portal do Azure.
A configuração desapareceu devido a caracteres não ASCII no resourceID
As configurações de diagnóstico não dão suporte a resourceIDs com caracteres não ASCII (por exemplo, Preproducción). Como não é possível renomear recursos no Azure, sua única opção é criar um novo recurso sem os caracteres não ASCII. Se os caracteres estão em um grupo de recursos, você pode mover esses recursos para um novo. Caso contrário, você precisará recriar o recurso.