Руководство по отправке данных в Azure Monitor с помощью API приема журналов (шаблоны Resource Manager)
API приема журналов в Azure Monitor позволяет отправлять пользовательские данные в рабочую область Log Analytics. В этом руководстве используются шаблоны Azure Resource Manager (шаблоны ARM) для пошаговой настройки компонентов, необходимых для поддержки API, а затем предоставляет пример приложения с помощью REST API и клиентских библиотек для .NET, Go, Java, JavaScript и Python.
Примечание.
В этом руководстве используются шаблоны ARM для настройки компонентов, необходимых для поддержки API приема журналов. См. руководство. Отправка данных в журналы Azure Monitor с помощью API приема журналов (портал Azure) для аналогичного руководства, использующего пользовательский интерфейс портал Azure для настройки этих компонентов.
Действия, необходимые для настройки API приема журналов, приведены ниже.
- Создайте приложение Microsoft Entra для проверки подлинности в API.
- Создайте настраиваемую таблицу в рабочей области Log Analytics. Это таблица, в которую будут отправляться данные.
- Создайте правило сбора данных (DCR), чтобы направить данные в целевую таблицу.
- Предоставьте приложению Microsoft Entra доступ к DCR.
- Пример кода для отправки данных в Azure Monitor с помощью API приема журналов для отправки данных с помощью API приема журналов.
Примечание.
В этой статье содержатся параметры использования конечной точки приема DCR или конечной точки сбора данных (DCE). Вы можете выбрать один из них, но DCE требуется с API приема журналов, если используется приватная ссылка. См. раздел "Когда требуется DCE?".
Необходимые компоненты
Для работы с этим учебником необходимы указанные ниже компоненты.
- Рабочая область Log Analytics, в которой у вас есть по крайней мере права участника.
- Разрешения на создание объектов DCR в рабочей области.
Сбор сведений о рабочей области
Начните со сбора сведений из рабочей области, которые вам потребуются.
Перейдите в рабочую область в меню рабочих областей Log Analytics в портал Azure. На странице "Свойства" скопируйте идентификатор ресурса и сохраните его для последующего использования.
Создание приложения Microsoft Entra
Начните с регистрации приложения Microsoft Entra для проверки подлинности в API. Любая схема проверки подлинности Resource Manager поддерживается, но в этом руководстве описана схема потока предоставления учетных данных клиента.
В меню идентификатора microsoft Entra в портал Azure выберите Регистрация приложений> РегистрацияNew.
Присвойте приложению имя и измените область аренды, если значение по умолчанию не подходит для вашей среды. URI перенаправления не требуется.
После регистрации вы можете просмотреть сведения о приложении. Сохраните идентификатор приложения (клиента) и идентификатор каталога (арендатора). Эти данные понадобятся позже в этом процессе.
Создайте секрет клиента приложения, который аналогичен созданию пароля для использования с именем пользователя. Выберите Сертификаты и секреты>Новый секрет клиента. Присвойте секрету имя, чтобы обозначить его назначение и выберите срок действия. Здесь выбран вариант 12 месяцев . Для реализации рабочей среды следует следовать рекомендациям по процедуре смены секретов или использовать более безопасный режим проверки подлинности, например сертификат.
Нажмите кнопку "Добавить ", чтобы сохранить секрет, а затем запишите значение. Убедитесь, что вы записываете это значение, так как его невозможно восстановить после выхода из этой страницы. Используйте те же меры безопасности, что и для хранения пароля, так как это функциональный эквивалент.
Создание конечной точки сбора данных
DCE не требуется, если используется конечная точка приема DCR.
Создание новой таблицы в рабочей области Log Analytics
Перед отправкой данных в пользовательскую таблицу сначала необходимо ее создать. В таблице этого руководства будут указаны пять столбцов, показанных в схеме ниже. Свойства name
, type
и description
являются обязательными для каждого столбца. Свойства isHidden
и isDefaultDisplay
имеют значение по умолчанию false
, если они не указаны явно. Возможные типы данных: string
, int
, long
, real
, boolean
, dateTime
, guid
и dynamic
.
Примечание.
В этом руководстве powerShell из Azure Cloud Shell используется для вызова REST API с помощью API таблиц Azure Monitor. Для выполнения этих вызовов можно использовать любой другой допустимый метод.
Внимание
Пользовательские таблицы должны использовать суффикс _CL
.
Нажмите кнопку Cloud Shell в портал Azure и убедитесь, что среда имеет значение PowerShell.
Скопируйте следующий код PowerShell и замените переменные в параметре Path соответствующими значениями рабочей области в команде
Invoke-AzRestMethod
. Вставьте код в командную строку Cloud Shell, чтобы выполнить его.$tableParams = @' { "properties": { "schema": { "name": "MyTable_CL", "columns": [ { "name": "TimeGenerated", "type": "datetime", "description": "The time at which the data was generated" }, { "name": "Computer", "type": "string", "description": "The computer that generated the data" }, { "name": "AdditionalContext", "type": "dynamic", "description": "Additional message properties" }, { "name": "CounterName", "type": "string", "description": "Name of the counter" }, { "name": "CounterValue", "type": "real", "description": "Value collected for the counter" } ] } } } '@ Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}/tables/MyTable_CL?api-version=2022-10-01" -Method PUT -payload $tableParams
Создать правило сбора данных
DCR определяет, как данные будут обрабатываться после получения. В том числе:
- Схема данных, отправляемых в конечную точку
- Преобразование , которое будет применено к данным перед отправкой в рабочую область
- Рабочая область назначения и таблица преобразованных данных будут отправлены в
В поле поиска портал Azure введите шаблон и выберите "Развернуть пользовательский шаблон".
Выберите Создать собственный шаблон в редакторе.
Вставьте следующий шаблон ARM в редактор и нажмите кнопку "Сохранить".
Обратите внимание на следующие сведения в DCR, определенных в этом шаблоне.
streamDeclarations
: определения столбцов входящих данных.destinations
: Рабочая область назначения.dataFlows
: сопоставляет поток с конечной рабочей областью и задает запрос преобразования и целевую таблицу. Выходные данные целевого запроса — это то, что будет отправлено в целевую таблицу.
{ "$schema": "https://schema.management.azure.com/schemas/2019-08-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", "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": "2023-03-11", "kind": "Direct", "properties": { "streamDeclarations": { "Custom-MyTableRawData": { "columns": [ { "name": "Time", "type": "datetime" }, { "name": "Computer", "type": "string" }, { "name": "AdditionalContext", "type": "string" }, { "name": "CounterName", "type": "string" }, { "name": "CounterValue", "type": "real" } ] } }, "destinations": { "logAnalytics": [ { "workspaceResourceId": "[parameters('workspaceResourceId')]", "name": "myworkspace" } ] }, "dataFlows": [ { "streams": [ "Custom-MyTableRawData" ], "destinations": [ "myworkspace" ], "transformKql": "source | extend jsonContext = parse_json(AdditionalContext) | project TimeGenerated = Time, Computer, AdditionalContext = jsonContext, CounterName=tostring(jsonContext.CounterName), CounterValue=toreal(jsonContext.CounterValue)", "outputStream": "Custom-MyTable_CL" } ] } } ], "outputs": { "dataCollectionRuleId": { "type": "string", "value": "[resourceId('Microsoft.Insights/dataCollectionRules', parameters('dataCollectionRuleName'))]" } } }
На экране пользовательского развертывания укажите подписку и группу ресурсов для хранения DCR. Затем укажите значения, определенные в шаблоне. Значения включают имя DCR и идентификатор ресурса рабочей области, собранные на предыдущем шаге. Расположение должно быть тем же расположением, которое указано в рабочей области. Регион уже будет заполнен и будет использоваться для расположения DCR.
Нажмите кнопку "Просмотр и создание ", а затем нажмите кнопку "Создать " после просмотра сведений.
По завершении развертывания разверните поле сведений о развертывании и выберите DCR, чтобы просмотреть его сведения. Выберите представление JSON.
Скопируйте неизменяемый идентификатор и URI приема журналов для DCR. Эти данные будут использоваться при отправке данных в Azure Monitor с помощью API.
Назначение разрешений DCR
После создания DCR приложение должно быть предоставлено ему разрешение. Разрешение позволит любому приложению использовать правильный идентификатор приложения и ключ приложения для отправки данных в новый DCR.
В списке DCR в портал Azure выберите контроль доступа (IAM)>Добавить назначение ролей.
Выберите "Издатель метрик мониторинга" и нажмите кнопку "Далее". Вместо этого можно создать настраиваемое действие с действием данных
Microsoft.Insights/Telemetry/Write
.Выберите "Пользователь", "Группа" или "Субъект-служба " для назначения доступа и выберите " Выбрать участников". Выберите созданное приложение и нажмите кнопку "Выбрать".
Нажмите кнопку "Проверить и назначить " и проверьте сведения перед сохранением назначения роли.
Пример кода
Пример кода для отправки данных в Azure Monitor с помощью API приема журналов для примера кода с помощью компонентов, созданных в этом руководстве.