Supervisión de datos de Azure Cosmos DB mediante la configuración de diagnóstico de Log Analytics de Azure Monitor
Artículo
SE APLICA A: NoSQL MongoDB Cassandra Gremlin Table
La configuración de diagnóstico de Azure se usa para recopilar los registros de los recursos. Los recursos emiten registros de recursos de Azure y proporcionan datos abundantes y frecuentes sobre el funcionamiento de ese recurso. Estos registros se capturan por solicitud y también se denominan registros de plano de datos. Algunos ejemplos de las operaciones del plano de datos son Delete, Insert y ReadFeed. El contenido de estos registros varía según el tipo de recurso.
Se recomienda crear la configuración de diagnóstico en modo específico del recurso (para todas las API excepto la API para Tabla) siguiendo las instrucciones de la pestaña API de REST. Esta opción proporciona optimizaciones de costos adicionales con una vista mejorada para controlar los datos.
Un área de trabajo de Log Analytics de Azure Monitor existente.
Advertencia
Si necesita eliminar un recurso, renombrarlo, moverlo o migrarlo entre grupos de recursos o suscripciones, primero debe eliminar su configuración de diagnóstico. De lo contrario, si vuelve a crear este recurso, la configuración de diagnóstico del recurso eliminado podría incluirse con el nuevo recurso, en función de la configuración del recurso para cada recurso. Si la configuración de diagnóstico se incluye con el nuevo recurso, se reanuda la recopilación de registros de recursos tal y como se define en la configuración de diagnóstico y envía los datos de métrica y registro aplicables al destino configurado anteriormente.
Además, se recomienda eliminar la configuración de diagnóstico de un recurso que vaya a eliminar y no planear usarla de nuevo con el fin de mantener limpio el entorno.
Crear configuraciones de diagnóstico
Aquí se explica el proceso de creación de la configuración de diagnóstico para su cuenta.
Nota:
La métrica para la exportación de registros como categoría no se admite actualmente.
En la sección Supervisión del menú de recursos, seleccione Configuración de diagnóstico. A continuación, seleccione la opción Agregar configuración de diagnóstico.
Importante
Es posible que vea un mensaje para "habilitar la consulta de texto [...] para un registro más detallado" si la característica de consulta de texto completo no está habilitada en su cuenta. Puede omitir esta advertencia de forma segura si no desea habilitar esta característica. Para obtener más información, consulte Habilitar la consulta de texto.
En el panel Configuración de diagnóstico, asigne un nombre a la configuración de ejemplo y a continuación, seleccione la categoría QueryRuntimeStatistics. Active la casilla Enviar al área de trabajo de Log Analytics y seleccione el área de trabajo existente. Por último, seleccione Recursos específicos como opción de destino.
Use el comando az monitor diagnostic-settings create para crear una configuración de diagnóstico con la CLI de Azure. Consulte la documentación de este comando para las descripciones de sus parámetros.
Cree un nuevo archivo llamado diagnosticSetting.bicep.
Escriba el siguiente contenido de plantilla de Azure Resource Manager que implementa la configuración de diagnóstico para el recurso de 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
En este ejemplo se establece la propiedad logAnalyticsDestinationType en Dedicated para habilitar tablas específicas de recursos.
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>"
Sugerencia
Use el comando az bicep decompile para convertir la plantilla de Azure Resource Manager en una plantilla de Bicep.
Habilitación de la consulta de texto completo para registrar texto de consulta
Azure Cosmos DB proporciona un registro avanzado para una solución de problemas detallada. Al habilitar la consulta de texto completo, puedes ver la consulta desofuscada para todas las solicitudes dentro de la cuenta de Azure Cosmos DB. También concedes permiso para que Azure Cosmos DB acceda a estos datos y los presente en los registros.
Advertencia
La habilitación de esta característica puede dar lugar a costos de registro adicionales; para obtener más información sobre los precios, visite Precios de Azure Monitor. Se recomienda deshabilitar esta característica después de solucionar los problemas.
En la página de la cuenta de Azure Cosmos DB existente, seleccione la opción Características en la sección Configuración del menú de recursos. A continuación, seleccione la característica Consulta de texto completo de diagnóstico.
En el cuadro de diálogo, seleccione Enable. Esta configuración se aplica en unos minutos. Todos los registros recién ingeridos ahora tienen el texto completo o PIICommand para cada solicitud.
Use la CLI de Azure para habilitar la consulta de texto completo para la cuenta de Azure Cosmos DB.
Habilite la consulta de texto completo mediante az rest otra vez con un verbo HTTP PATCH y una carga JSON.