Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
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 ID на портале Azure выберите Регистрация приложений>Новая регистрация.
Присвойте приложению имя и измените область аренды, если значение по умолчанию не подходит для вашей среды. URI перенаправления не требуется.
После регистрации вы можете просмотреть сведения о приложении. Запомните ID приложения (клиента) и ID каталога (арендатора). Эти данные понадобятся позже в этом процессе.
Создайте секрет клиента приложения, который аналогичен созданию пароля для использования с именем пользователя. Выберите Сертификаты и секреты>Новый секрет клиента. Присвойте секрету имя, чтобы обозначить его назначение и выберите срок действия. Здесь выбран вариант 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 для принятия журналов.