Você pode coletar logs de recursos no Azure usando configurações de diagnóstico. Os recursos emitem logs de recursos do Azure e fornecem dados ricos e frequentes sobre a operação desse recurso. Esses logs são capturados por solicitação e também são chamados de logs do plano de dados. Alguns exemplos das operações do plano de dados incluem excluir, inserir e readFeed. O conteúdo destes registos varia consoante o tipo de recurso.
Para saber mais sobre configurações de diagnóstico, consulte Configurações de diagnóstico no Azure Monitor.
Observação
Recomendamos criar a configuração de diagnóstico no modo específico do recurso (para todas as APIs, exceto API para Tabela) seguindo as instruções na guia API REST. Essa opção fornece otimizações de custos adicionais com uma exibição aprimorada para o tratamento de dados.
Pré-requisitos
- Uma conta existente do Azure Cosmos DB.
- Um espaço de trabalho existente do Azure Monitor Log Analytics.
Warning
Se você precisar excluir, renomear ou mover um recurso, ou migrá-lo entre grupos de recursos ou assinaturas, primeiro exclua suas configurações de diagnóstico. Caso contrário, se recriar este recurso, as definições de diagnóstico do recurso eliminado poderão ser incluídas com o novo recurso, dependendo da configuração de cada recurso. Se as definições de diagnóstico estiverem incluídas com o novo recurso, isto retoma a coleção de registos de recursos conforme definido na definição de diagnóstico e envia os dados de métricas e registos aplicáveis para o destino previamente configurado.
Além disso, é uma boa prática eliminar as definições de diagnóstico de um recurso que irá apagar e que não planeia usar novamente, para manter o seu ambiente limpo.
Criar as definições de diagnóstico
Aqui, percorremos o processo de criação de configurações de diagnóstico para sua conta.
Observação
A métrica para exportar logs como uma categoria não é suportada no momento.
Inicie sessão no portal Azure.
Navegue até sua conta existente do Azure Cosmos DB.
Na seção Monitoramento do menu de recursos, selecione Configurações de diagnóstico. Em seguida, selecione a opção Adicionar configuração de diagnóstico.
Importante
Você pode ver um prompt para "ativar consulta de texto completo [...] para registo mais detalhado" se a funcionalidade de consulta de texto completo não estiver ativada na sua conta. Pode ignorar este aviso com segurança se não pretender ativar esta funcionalidade. Para obter mais informações, consulte habilitar consulta de texto completo.
No painel Configurações de diagnóstico , nomeie a configuração como exemplo e selecione a categoria QueryRuntimeStatistics . Habilite a caixa de seleção Enviar para o espaço de trabalho do Log Analytics, selecionando seu espaço de trabalho existente. Por fim, selecione Recurso específico como a opção de destino.
Use o az monitor diagnostic-settings create comando para criar uma configuração de diagnóstico com a CLI do Azure. Para saber mais sobre os parâmetros do comando, consulte a documentação.
Certifique-se de que iniciou sessão na CLI do Azure. Para obter mais informações, consulte Entrar com a CLI do Azure.
Use az monitor diagnostic-settings create para criar a configuração.
az monitor diagnostic-settings create \
--resource $(az cosmosdb show \
--resource-group "<resource-group-name>" \
--name "<account-name>" \
--query "id" \
--output "tsv" \
) \
--workspace $(az monitor log-analytics workspace show \
--resource-group "<resource-group-name>" \
--name "<account-name>" \
--query "id" \
--output "tsv" \
) \
--name "example-setting" \
--export-to-resource-specific true \
--logs '[
{
"category": "QueryRuntimeStatistics",
"enabled": true
}
]'
Importante
Este exemplo usa o --export-to-resource-specific argumento para habilitar tabelas específicas de recursos.
Analise os resultados da criação da sua nova configuração usando az monitor diagnostics-settings show.
az monitor diagnostic-settings show \
--name "example-setting" \
--resource $(az cosmosdb show \
--resource-group "<resource-group-name>" \
--name "<account-name>" \
--query "id" \
--output "tsv" \
)
Use a API REST do Azure Monitor para criar uma configuração de diagnóstico por meio do console interativo.
Certifique-se de que iniciou sessão na CLI do Azure. Para obter mais informações, consulte Entrar com a CLI do Azure.
Crie a configuração de diagnóstico para seu recurso do Azure Cosmos DB usando uma solicitação HTTP PUT e az rest.
diagnosticSettingName="example-setting"
resourceId=$(az cosmosdb show \
--resource-group "<resource-group-name>" \
--name "<account-name>" \
--query "id" \
--output "tsv" \
)
workspaceId=$(az monitor log-analytics workspace show \
--resource-group "<resource-group-name>" \
--name "<account-name>" \
--query "id" \
--output "tsv" \
)
az rest \
--method "PUT" \
--url "$resourceId/providers/Microsoft.Insights/diagnosticSettings/$diagnosticSettingName" \
--url-parameters "api-version=2021-05-01-preview" \
--body '{
"properties": {
"workspaceId": "'"$workspaceId"'",
"logs": [
{
"category": "QueryRuntimeStatistics",
"enabled": true
}
],
"logAnalyticsDestinationType": "Dedicated"
}
}'
Importante
Este exemplo define a logAnalyticsDestinationType propriedade como Dedicated para habilitar tabelas específicas de recursos.
Use az rest novamente com um verbo HTTP GET para obter as propriedades da configuração de diagnóstico.
diagnosticSettingName="example-setting"
resourceId=$(az cosmosdb show \
--resource-group "<resource-group-name>" \
--name "<account-name>" \
--query "id" \
--output "tsv" \
)
az rest \
--method "GET" \
--url "$resourceId/providers/Microsoft.Insights/diagnosticSettings/$diagnosticSettingName" \
--url-parameters "api-version=2021-05-01-preview"
Use um modelo Bicep para criar a configuração de diagnóstico.
Certifique-se de que iniciou sessão na CLI do Azure. Para obter mais informações, consulte Entrar com a CLI do Azure.
Crie um novo arquivo chamado diagnosticSetting.bicep.
Insira o seguinte conteúdo do modelo Bicep que implanta a configuração de diagnóstico para seu recurso do Azure Cosmos DB.
@description('The name of the diagnostic setting to create.')
param diagnosticSettingName string = 'example-setting'
@description('The name of the Azure Cosmos DB account to monitor.')
param azureCosmosDbAccountName string
@description('The name of the Azure Monitor Log Analytics workspace to use.')
param logAnalyticsWorkspaceName string
resource azureCosmosDbAccount 'Microsoft.DocumentDB/databaseAccounts@2021-06-15' existing = {
name: azureCosmosDbAccountName
}
resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2023-09-01' existing = {
name: logAnalyticsWorkspaceName
}
resource diagnosticSetting 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = {
name: diagnosticSettingName
scope: azureCosmosDbAccount
properties: {
workspaceId: logAnalyticsWorkspace.id
logAnalyticsDestinationType: 'Dedicated'
logs: [
{
category: 'QueryRuntimeStatistics'
enabled: true
}
]
}
}
Importante
Este exemplo define a logAnalyticsDestinationType propriedade como Dedicated para habilitar tabelas específicas de recursos.
Implante o modelo usando az deployment group create.
az deployment group create \
--resource-group "<resource-group-name>" \
--template-file diagnosticSetting.bicep \
--parameters \
azureCosmosDbAccountName="<azure-cosmos-db-account-name>" \
logAnalyticsWorkspaceName="<log-analytics-workspace-name>"
Tip
Use o az bicep build comando para converter o modelo Bicep em um modelo do Azure Resource Manager.
Use um modelo do Azure Resource Manager para criar a configuração de diagnóstico.
Certifique-se de que iniciou sessão na CLI do Azure. Para obter mais informações, consulte Entrar com a CLI do Azure.
Crie um novo arquivo chamado diagnosticSetting.bicep.
Insira o seguinte conteúdo de modelo do Azure Resource Manager que implanta a configuração de diagnóstico para seu recurso do Azure Cosmos DB.
{
"$schema": "<https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#>",
"contentVersion": "1.0.0.0",
"parameters": {
"diagnosticSettingName": {
"type": "string",
"defaultValue": "example-setting",
"metadata": {
"description": "The name of the diagnostic setting to create."
}
},
"azureCosmosDbAccountName": {
"type": "string",
"metadata": {
"description": "The name of the Azure Cosmos DB account to monitor."
}
},
"logAnalyticsWorkspaceName": {
"type": "string",
"metadata": {
"description": "The name of the Azure Monitor Log Analytics workspace to use."
}
}
},
"resources": [
{
"type": "Microsoft.Insights/diagnosticSettings",
"apiVersion": "2021-05-01-preview",
"scope": "[format('Microsoft.DocumentDB/databaseAccounts/{0}', parameters('azureCosmosDbAccountName'))]",
"name": "[parameters('diagnosticSettingName')]",
"properties": {
"workspaceId": "[resourceId('Microsoft.OperationalInsights/workspaces', parameters('logAnalyticsWorkspaceName'))]",
"logAnalyticsDestinationType": "Dedicated",
"logs": [
{
"category": "QueryRuntimeStatistics",
"enabled": true
}
]
}
}
]
}
Importante
Este exemplo define a logAnalyticsDestinationType propriedade como Dedicated para habilitar tabelas específicas de recursos.
Implante o modelo usando az deployment group create.
az deployment group create \
--resource-group "<resource-group-name>" \
--template-file azuredeploy.json \
--parameters \
azureCosmosDbAccountName="<azure-cosmos-db-account-name>" \
logAnalyticsWorkspaceName="<log-analytics-workspace-name>"
Tip
Use o az bicep decompile comando para converter o modelo do Azure Resource Manager em um modelo Bicep.
Habilitar consulta de texto completo para registrar texto de consulta
O Azure Cosmos DB fornece log avançado para solução de problemas detalhada. Ao habilitar a consulta de texto completo, você pode exibir a consulta desofuscada para todas as solicitações na sua conta do Azure Cosmos DB. Você também dá permissão para o Azure Cosmos DB acessar e exibir esses dados em seus logs.
Warning
Habilitar esta funcionalidade pode resultar em custos adicionais de registos. Para obter detalhes de preços, consulte Preços do Azure Monitor. Recomenda-se desativar esse recurso após a solução de problemas.
Na página de conta existente do Azure Cosmos DB, selecione a opção Recursos na seção Configurações do menu de recursos. Em seguida, selecione o recurso de consulta de texto completo de Diagnóstico.
Na caixa de diálogo, selecione Enable. Essa configuração é aplicada em poucos minutos. Todos os logs recém-ingeridos agora têm o texto completo ou o texto PIICommand para cada solicitação.
Use a CLI do Azure para habilitar a consulta de texto completo para sua conta do Azure Cosmos DB.
Ative a possibilidade de consulta de texto integral usando az rest novamente com um verbo HTTP PATCH e uma carga JSON.
az rest \
--method "PATCH" \
--url $(az cosmosdb show \
--resource-group "<resource-group-name>" \
--name "<account-name>" \
--query "id" \
--output "tsv" \
) \
--url-parameters "api-version=2021-05-01-preview" \
--body '{
"properties": {
"diagnosticLogSettings": {
"enableFullTextQuery": "True"
}
}
}'
Aguarde alguns minutos até que a operação seja concluída. Verifique o status da consulta de texto completo usando az rest novamente com HTTP GET.
az rest \
--method "GET" \
--url $(az cosmosdb show \
--resource-group "<resource-group-name>" \
--name "<account-name>" \
--query "id" \
--output "tsv" \
) \
--url-parameters "api-version=2021-05-01-preview" \
--query "{accountName:name,fullTextQueryEnabled:properties.diagnosticLogSettings.enableFullTextQuery}"
A saída deve ser semelhante a este exemplo.
{
"accountName": "<account-name>",
"fullTextQueryEnabled": "True"
}
Conteúdo relacionado