Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве описывается настройка примера преобразования в правиле сбора данных в рабочей области с помощью шаблонов системы Resource Manager. Преобразования в Azure Monitor позволяют фильтровать или изменять входящие данные до отправки в место назначения. Преобразования рабочей области обеспечивают поддержку преобразований времени приема для рабочих процессов, которые еще не используют конвейер приема данных Azure Monitor.
Преобразования рабочей области хранятся вместе в одном правиле сбора данных (DCR) для рабочей области. Это правило называется DCR рабочей области. Каждое преобразование связано с определенной таблицей. Преобразование применяется ко всем данным, отправленным в эту таблицу из любого рабочего процесса, не использующим DCR.
Примечание.
В этом руководстве используются шаблоны Resource Manager и REST API для настройки преобразования рабочей области. См руководство: добавление преобразования в правило сбора данных рабочей области в Azure Monitor с помощью портала Azure.
Из этого руководства вы узнаете, как:
- Настройте преобразование рабочей области для таблицы в рабочей области Log Analytics.
- Напишите запрос к журналу для преобразования времени загрузки данных.
Примечание.
В этом учебнике используется PowerShell из Azure Cloud Shell для выполнения вызовов REST API с помощью API таблиц Azure Monitor и портал Azure для установки шаблонов Resource Manager. Для выполнения этих вызовов можно использовать любой другой метод.
Предварительные требования
Для работы с этим руководством вам нужно следующее:
- Рабочая область Log Analytics, в которой у вас есть как минимум права участника.
- Разрешения на создание объектов правила сбора данных в рабочей области.
- В таблице уже должны быть некоторые данные.
- Эту таблицу уже нельзя связать с DCR преобразования рабочей области.
Обзор
В этом руководстве вы уменьшите требования к хранилищу LAQueryLogs для таблицы, отфильтровав определенные записи. Вы также удаляете содержимое столбца, чтобы при анализе данных разместить определенные данные в пользовательском столбце. Таблица LAQueryLogs создается при включении аудита запросов журнала в рабочей области. Используйте тот же базовый процесс, чтобы создать преобразование для любой поддерживаемой таблицы в рабочей области Log Analytics.
Включение журналов аудита запросов
Чтобы создать таблицу , с которой вы будете работать, необходимо включить LAQueryLogs для рабочей области. Для всех преобразований времени приема делать это не требуется. Это нужно только для создания примера данных, которые будет использовать этот пример преобразования.
В меню Рабочие области Log Analytics на портале Azure выберите Параметры диагностики, а затем — Добавить параметр диагностики.
Укажите имя для параметра диагностики и выберите ту же рабочую область, чтобы сохранять в ней данные аудита. Выберите категорию Аудит и нажмите кнопку Сохранить, чтобы сохранить параметры диагностики и закрыть страницу параметров.
Выберите Журналы, а затем выполните несколько запросов для внесения данных в
LAQueryLogs. Необязательно, чтобы эти запросы возвращали данные.
Обновление схемы таблицы
Перед созданием преобразования необходимо внести в таблицу следующие два изменения:
- Таблица должна быть активирована для преобразования пространства работы. Это необходимо для любой таблицы с преобразованием, даже если преобразование не изменяет схему таблицы.
- Все дополнительные столбцы, заполненные преобразованием, нужно добавить в таблицу.
Используйте API обновления таблиц, чтобы настроить таблицу с помощью приведенного ниже кода PowerShell. Вызов API активирует таблицу для преобразований в рабочем пространстве, независимо от того, определены ли пользовательские столбцы. В этом примере он включает пользовательский столбец с именем Resources_CF, который будет заполнен запросом преобразования.
Внимание
Имена всех пользовательских столбцов, добавляемых во встроенную таблицу, должны заканчиваться на _CF. Для столбцов, добавленных в настраиваемую таблицу (таблица с именем, заканчивающимся на _CL), этот суффикс не требуется.
Нажмите кнопку Cloud Shell на портале Azure и убедитесь, что для среды задано значение PowerShell.
Скопируйте следующий код PowerShell и замените параметр Path значениями для рабочей области.
$tableParams = @' { "properties": { "schema": { "name": "LAQueryLogs", "columns": [ { "name": "Resources_CF", "description": "The list of resources, this query ran against", "type": "string", "isDefaultDisplay": true, "isHidden": false } ] } } } '@ Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}/tables/LAQueryLogs?api-version=2021-12-01-preview" -Method PUT -payload $tableParamsВставьте код в командную строку Cloud Shell, чтобы запустить его.
Чтобы проверить, добавлен ли столбец, перейдите в меню Рабочая область Log Analytics на портале Azure. Выберите Журналы, чтобы открыть Log Analytics, а затем разверните таблицу
LAQueryLogs, чтобы просмотреть ее столбцы.
Определение запроса преобразования
Используйте Log Analytics, чтобы протестировать запрос преобразования перед его добавлением в правило сбора данных.
Откройте рабочую область в меню Рабочие области Log Analytics на портале Azure и выберите Журналы, чтобы открыть Log Analytics.
Выполните следующий запрос, чтобы просмотреть содержимое таблицы
LAQueryLogs. Обратите внимание на содержимое столбцаRequestContext. Преобразование извлечет имя рабочей области из этого столбца и удалит остальные данные в нем.LAQueryLogs | take 10Измените запрос следующим образом:
LAQueryLogs | where QueryText !contains 'LAQueryLogs' | extend Context = parse_json(RequestContext) | extend Workspace_CF = tostring(Context['workspaces'][0]) | project-away RequestContext, ContextЭто вносит следующие изменения:
- Удалите строки, связанные с запросом непосредственно к таблице
LAQueryLogs, чтобы сэкономить место, так как эти записи журнала не нужны. - Добавьте столбец для имени запрашиваемой рабочей области.
- Удалите данные из столбца
RequestContextдля экономии пространства.
- Удалите строки, связанные с запросом непосредственно к таблице
Внесите следующие изменения в запрос, чтобы использовать его в преобразовании:
- Вместо указания имени таблицы (
LAQueryLogsв этом случае) в качестве источника данных для этого запроса используйте ключевое словоsource. Это виртуальная таблица, которая всегда представляет входящие данные в запросе преобразования. - Удалите все операторы, которые не поддерживаются запросами преобразования. Дополнительные сведения о поддерживаемых функциях KQL см. в разделе "Поддерживаемые функции KQL".
- Сведите запрос в одну строку, чтобы его можно было поместить в JSON DCR.
Ниже приведен запрос, который будет использоваться в преобразовании после этих изменений:
source | where QueryText !contains 'LAQueryLogs' | extend Context = parse_json(RequestContext) | extend Resources_CF = tostring(Context['workspaces']) |extend RequestContext = ''- Вместо указания имени таблицы (
Создание правила сбора данных (DCR)
Поскольку это первое преобразование в рабочей области, необходимо создать рабочую трансформацию DCR. При создании преобразований рабочей области для других таблиц в той же рабочей области они должны храниться в этом же DCR.
На портале Azure в поле поиска введите шаблон, а затем выберите Развернуть настраиваемый шаблон.
Выберите Создать собственный шаблон в редакторе.
Вставьте приведенный ниже шаблон Resource Manager в редактор и нажмите кнопку Сохранить. Этот шаблон определяет DCR и содержит запрос преобразования. Вам не нужно изменять этот шаблон, так как он соберет значения для своих параметров.
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "dataCollectionRuleName": { "type": "string", "metadata": { "description": "Specifies the name of the Data Collection Rule to create." } }, "location": { "type": "string", "defaultValue": "westus2", "allowedValues": [ "westus2", "eastus2", "eastus2euap" ], "metadata": { "description": "Specifies the location in which to create the Data Collection Rule." } }, "workspaceResourceId": { "type": "string", "metadata": { "description": "Specifies the Azure resource ID of the Log Analytics workspace to use." } } }, "resources": [ { "type": "Microsoft.Insights/dataCollectionRules", "name": "[parameters('dataCollectionRuleName')]", "location": "[parameters('location')]", "apiVersion": "2021-09-01-preview", "kind": "WorkspaceTransforms", "properties": { "destinations": { "logAnalytics": [ { "workspaceResourceId": "[parameters('workspaceResourceId')]", "name": "clv2ws1" } ] }, "dataFlows": [ { "streams": [ "Microsoft-Table-LAQueryLogs" ], "destinations": [ "clv2ws1" ], "transformKql": "source |where QueryText !contains 'LAQueryLogs' | extend Context = parse_json(RequestContext) | extend Resources_CF = tostring(Context['workspaces']) |extend RequestContext = ''" } ] } } ], "outputs": { "dataCollectionRuleId": { "type": "string", "value": "[resourceId('Microsoft.Insights/dataCollectionRules', parameters('dataCollectionRuleName'))]" } } }На экране Настраиваемое развертывание укажите значения для параметров Подписка и Группа ресурсов, чтобы сохранить правило сбора данных, а затем укажите значения, определенные в шаблоне. К ним относятся Имя для правила сбора данных и Идентификатор ресурса рабочей области, который вы собрали на предыдущем шаге. Расположение должно совпадать с расположением рабочей области. Значение параметра Регион уже будет заполнено и используется как место для правила сбора данных.
После проверки сведений, щелкните Проверить и создать, а затем Создать.
По завершении развертывания разверните поле Сведения о развертывании и щелкните правило сбора данных, чтобы просмотреть сведения о нем. Щелкните Представление JSON.
Скопируйте идентификатор ресурса для правила сбора данных. Он понадобится вам на следующем шаге.
Связывание рабочей области с DCR
Последним шагом для включения преобразования является связывание DCR с рабочей областью.
Внимание
Рабочая область может быть подключена только к одному DCR, а связанное DCR должно содержать эту рабочую область в качестве назначения.
Используйте API обновления рабочих областей, чтобы настроить таблицу с помощью приведенного ниже кода PowerShell.
Нажмите кнопку Cloud Shell, чтобы снова открыть Cloud Shell . Скопируйте следующий код PowerShell и замените параметры значениями для рабочей области и DCR.
$defaultDcrParams = @' { "properties": { "defaultDataCollectionRuleResourceId": "/subscriptions/{subscription}/resourceGroups/{resourcegroup}/providers/Microsoft.Insights/dataCollectionRules/{DCR}" } } '@ Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}?api-version=2021-12-01-preview" -Method PATCH -payload $defaultDcrParamsВставьте код в командную строку Cloud Shell, чтобы запустить его.
Тестовое преобразование
Преобразование вступает в силу в течение 30 минут. После этого вы можете протестировать его, выполнив запрос к таблице. Будут затронуты только данные, отправленные в таблицу после применения преобразования.
В этом учебнике выполните несколько примерных запросов для отправки данных в таблицу LAQueryLogs. Также добавьте запросы к LAQueryLogs, чтобы убедиться, что преобразование отфильтровывает эти записи. Обратите внимание, что у выходных данных есть новый столбец Workspace_CF, а записей для LAQueryLogs нет.
Устранение неполадок
В этом разделе описаны различные состояния ошибок, которые могут у вас возникать, и способы их устранения.
IntelliSense в Log Analytics не распознает новые столбцы в таблице
Для обновления кэша, на базе которого работает технология IntelliSense, может потребоваться до 24 часов.
Преобразование в динамическом столбце не работает
В настоящее время существует известная ошибка, затрагивающая динамические столбцы. Временное решение заключается в анализе данных динамического столбца явным образом с помощью метода parse_json() перед выполнением каких-либо операций с ними.