Журналы ресурсов в Azure можно собирать с помощью параметров диагностики. Ресурсы излучают журналы ресурсов Azure и предоставляют подробные, частые данные о функционировании этого ресурса. Эти журналы записываются на каждый запрос, и они также называются журналами канала передачи данных. Примеры операций с плоскостью данных включают Delete, Insert и ReadFeed. Содержимое этих журналов зависит от типа ресурса.
Дополнительные сведения о параметрах диагностики см. в статье "Параметры диагностики" в Azure Monitor.
Замечание
Мы рекомендуем создать параметр диагностики в режиме конкретного ресурса (для всех API, кроме API для таблицы), следуя инструкциям на вкладке REST API . Этот параметр обеспечивает дополнительную оптимизацию затрат с улучшенным представлением для обработки данных.
Предпосылки
- Существующая учетная запись Azure Cosmos DB.
- Существующая рабочая область Azure Monitor Log Analytics.
Предупреждение
Если необходимо удалить, переименовать или переместить ресурс или перенести его в группы ресурсов или подписки, сначала удалите его параметры диагностики. В противном случае, если вы воссоздадите этот ресурс, диагностические настройки для удаленного ресурса могут быть включены в новый ресурс в зависимости от конфигурации каждого ресурса. Если настройки диагностики включены с новым ресурсом, это возобновляет сбор логов ресурса, как определено в настройках диагностики, и отправляет соответствующие метрики и данные логов на ранее настроенное место назначения.
Также рекомендуется удалять диагностические настройки для ресурса, который вы собираетесь удалить и не планируете использовать снова, чтобы поддерживать чистоту вашей среды.
Создание параметров диагностики
Здесь мы рассмотрим процесс создания параметров диагностики для вашей учетной записи.
Замечание
Метрика для экспорта журналов в виде категории в настоящее время не поддерживается.
Войдите на портал Azure.
Перейдите к существующей учетной записи Azure Cosmos DB.
В разделе "Мониторинг" в меню ресурсов выберите параметры диагностики. Затем выберите опцию "Добавить параметр диагностики".
Important
Может появиться запрос "Включить полнотекстовый запрос [...] для более подробного ведения журнала" если функция полнотекстового запроса не включена в вашей учетной записи. Это предупреждение можно игнорировать, если вы не хотите включить эту функцию. Дополнительные сведения см. в разделе "Включение полнотекстового запроса".
В области диагностических параметров назовите параметр example-setting и выберите категорию QueryRuntimeStatistics. Установите флажок "Отправить в рабочую область Log Analytics", выбрав существующую рабочую область. Наконец, выберите Ресурс-специфичный в качестве целевого параметра.
Используйте команду az monitor diagnostic-settings create, чтобы создать параметр диагностики в Azure CLI. Дополнительные сведения о параметрах команды см. в документации.
Убедитесь, что вы вошли в Azure CLI. Дополнительные сведения см. в разделе Вход с помощью Azure CLI.
Используется az monitor diagnostic-settings create для создания параметра.
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
}
]'
Important
В этом примере используется --export-to-resource-specific аргумент для включения таблиц, относящихся к ресурсам.
Просмотрите результаты создания нового параметра с помощью 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" \
)
Используйте REST API Azure Monitor для создания параметра диагностики с помощью интерактивной консоли.
Убедитесь, что вы вошли в Azure CLI. Дополнительные сведения см. в разделе Вход с помощью Azure CLI.
Создайте параметр диагностики для ресурса Azure Cosmos DB с помощью HTTP-запроса PUT и 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"
}
}'
Important
Этот пример устанавливает свойство logAnalyticsDestinationType на Dedicated, чтобы включить таблицы, относящиеся к ресурсам.
Используйте az rest еще раз с http-командой GET , чтобы получить свойства параметра диагностики.
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"
Используйте шаблон Bicep для создания параметра диагностики.
Убедитесь, что вы вошли в Azure CLI. Дополнительные сведения см. в разделе Вход с помощью Azure CLI.
Создайте файл с именем diagnosticSetting.bicep.
Введите следующее содержимое шаблона Bicep, которое развертывает диагностическую настройку для ресурса 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
}
]
}
}
Important
Этот пример устанавливает свойство logAnalyticsDestinationType на Dedicated, чтобы включить таблицы, относящиеся к ресурсам.
Разверните шаблон с помощью 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
az bicep build Используйте команду для преобразования шаблона Bicep в шаблон Azure Resource Manager.
Используйте шаблон Azure Resource Manager для создания параметра диагностики.
Убедитесь, что вы вошли в Azure CLI. Дополнительные сведения см. в разделе Вход с помощью Azure CLI.
Создайте файл с именем diagnosticSetting.bicep.
Введите следующее содержимое шаблона Azure Resource Manager, которое развертывает параметр диагностики для ресурса 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
}
]
}
}
]
}
Important
Этот пример устанавливает свойство logAnalyticsDestinationType на Dedicated, чтобы включить таблицы, относящиеся к ресурсам.
Разверните шаблон с помощью 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
az bicep decompile Используйте команду для преобразования шаблона Azure Resource Manager в шаблон Bicep.
Включение полнотекстового запроса для регистрации текста запроса
Azure Cosmos DB поддерживает расширенные функции ведения журнала для подробного устранения неполадок. Включив полнотекстовый запрос, вы можете просмотреть деобфускированный запрос для всех запросов в учетной записи Azure Cosmos DB. Вы также даете разрешение Azure Cosmos DB для доступа к этим данным и их отображения в логах.
Предупреждение
Включение этой функции может привести к дополнительным затратам на ведение журнала. Сведения о ценах см. в разделе о ценах На Azure Monitor. Рекомендуется отключить эту функцию после устранения неполадок.
На странице существующей учетной записи Azure Cosmos DB выберите параметр "Компоненты " в разделе "Параметры " в меню ресурсов. Затем выберите функцию полнотекстового запроса для диагностики.
В диалоговом окне выберите Enable. Этот параметр применяется в течение нескольких минут. Теперь для каждого запроса все новые журналы имеют полный текст или текст PIICommand.
Используйте Azure CLI, чтобы включить полнотекстовый запрос для учетной записи Azure Cosmos DB.
Включите полнотекстовый запрос снова с помощью az rest, используя HTTP-глагол PATCH и 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"
}
}
}'
Подождите несколько минут, пока операция завершится. Проверьте состояние полнотекстового запроса, используя az rest с использованием протокола 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}"
Выходные данные должны быть похожи на этот пример.
{
"accountName": "<account-name>",
"fullTextQueryEnabled": "True"
}
Связанный контент