Запрос данных в Azure Monitor с использованием Azure Data Explorer

Azure Data Explorer поддерживает запросы между службами Azure Data Explorer, Application Insights (AI) и Log Analytics (LA). Вы можете отправлять запросы к своей рабочей области Log Analytics или Application Insights с помощью инструментов Azure Data Explorer для работы с запросами и в запросах между службами. В этой статье описано, как создать запрос между службами и добавить рабочую область Log Analytics или Application Insights в пользовательский веб-интерфейс Azure Data Explorer.

Поток запросов между службами в Azure Data Explorer:

Схема, на которой показан поток с использованием прокси-сервера в Azure Data Explorer.

Добавление рабочей области Log Analytics/Application Insights в клиентские средства Azure Data Explorer

Чтобы включить запросы между службами для своих кластеров, добавьте рабочую область Log Analytics или Application Insights в клиентские средства Azure Data Explorer.

  1. Прежде чем подключиться к кластеру Log Analytics или Application Insights, убедитесь, что в меню слева отображается собственный кластер Azure Data Explorer (например, кластер help).

    Снимок экрана: меню слева с выбранным кластером help в качестве собственного кластера Azure Data Explorer.

  2. В пользовательском интерфейсе Azure Data Explorer (https://dataexplorer.azure.com/clusters) выберите Добавить кластер.

  3. В окне Добавление кластера добавьте URL-адрес кластера Log Analytics (LA) или Application Insights (AI).

    • Для Log Analytics (LA): https://ade.loganalytics.io/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>
    • Для Application Insights (ИИ): https://ade.applicationinsights.io/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.insights/components/<ai-app-name>

    Примечание

    Укажите https://ade.applicationinsights.io/subscriptions/<subscription-id> , чтобы просмотреть все базы данных в подписке. Этот синтаксис также работает для кластеров Log Analytics.

  4. Выберите Добавить.

    Снимок экрана: окно

    Примечание

    • Есть разные конечные точки для следующих действий:
    • Azure для государственных организаций — adx.monitor.azure.us/
    • Azure для Китая — adx.monitor.azure.cn/
    • Если вы добавляете подключение к более чем одной рабочей области Log Analytics или Application Insights, присвойте ему в каждом случае отдельное имя. В противном случае в левой области они будут отображаться с одним именем.
  5. Когда подключение будет установлено, рабочая область Log Analytics или Application Insights отобразится на панели слева с вашим собственным кластером Azure Data Explorer.

    Снимок экрана: кластеры Log Analytics и Azure Data Explorer.

Примечание

На запросы, выполняемые из Azure Data Explorer к данным в Azure Monitor, распространяются ограничения на межресурсные запросы.

Выполнение запросов

Запросы можно выполнять с помощью клиентских средств, поддерживающих запросы Kusto, например следующих: Kusto Explorer, пользовательский веб-интерфейс Azure Data Explorer, Jupyter Kqlmagic, Flow, Power Query, PowerShell, Lens, REST API.

Примечание

Возможность отправки запросов между службами используется только для получения данных. Дополнительные сведения см. в разделе Поддержка функций.

Совет

  • Имя базы данных должно совпадать с именем ресурса, указанного в запросе между службами. В именах учитывается регистр.
  • При использовании запросов между службами убедитесь, что имена приложений Application Insights и рабочих областей Log Analytics указаны правильно.
  • Если имена содержат специальные знаки, в запросе между службами они будут заменены кодировкой URL-адресов.
  • Если имена содержат символы, которые не соответствуют правилам для именования идентификаторов KQL, они заменяются символом тире - .

Отправка прямых запросов к рабочим областям Log Analytics или Application Insights из клиентских средств Azure Data Explorer

Вы можете выполнять запросы к рабочим областям Log Analytics или Application Insights из клиентских средств Azure Data Explorer.

  1. Убедитесь, что рабочая область выбрана на панели слева.

  2. Выполните приведенный ниже запрос:

Perf | take 10 // Demonstrate cross-service query on the Log Analytics workspace

Снимок экрана: отправка запроса к рабочей области Log Analytics.

Отправка запросов между рабочими областями Log Analytics или Application Insights и собственным кластером Azure Data Explorer

При выполнении запросов между кластерами убедитесь, что на панели слева выбран собственный кластер Azure Data Explorer. В следующих примерах демонстрируется объединение таблиц кластера Azure Data Explorer (с помощью union) с рабочей областью Log Analytics.

Выполните следующие запросы:

union StormEvents, cluster('https://ade.loganalytics.io/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>').database('<workspace-name>').Perf
| take 10
let CL1 = 'https://ade.loganalytics.io/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>';
union <ADX table>, cluster(CL1).database(<workspace-name>).<table name>

Снимок экрана: отправка запросов между рабочими областями из пользовательского веб-интерфейса Azure Data Explorer.

Совет

Использование оператора join вместо union может потребовать наличия hint для его выполнения в собственном кластере Azure Data Explorer.

Объединение данных из кластера Azure Data Explorer в одном арендаторе с ресурсом Azure Monitor в другом

Межтенантные запросы между службами не поддерживаются. Вы выполняете вход в один арендатор для выполнения запроса с двумя ресурсами.

Если ресурс Azure Data Explorer находится в арендаторе А, а рабочая область Log Analytics — в арендаторе Б, используйте один из следующих двух методов:

  1. Azure Data Explorer позволяет добавлять роли для субъектов в разные арендаторы. Добавьте свой идентификатор пользователя в арендаторе B в качестве полномочного пользователя в кластере Azure Data Explorer. Убедитесь, что свойство TrustedExternalTenant в кластере Azure Data Explorer содержит арендатор B. Выполните полный перекрестный запрос в арендаторе B.

  2. Используйте Lighthouse для проецирования ресурса Azure Monitor в арендатор A.

Подключение к кластерам Azure Data Explorer из разных арендаторов

Kusto Explorer автоматически выполняет за вас вход в арендатор, которому изначально принадлежит учетная запись пользователя. Чтобы получить доступ к ресурсам в других арендаторах с помощью одной учетной записи пользователя, для tenantId необходимо явно указать в строке подключения следующее: Data Source=https://ade.applicationinsights.io/subscriptions/SubscriptionId/resourcegroups/ResourceGroupName;Initial Catalog=NetDefaultDB;AAD Federated Security=True;Authority ID=TenantId

Поддержка функций

Запросы между службами Azure Data Explorer поддерживают функции как для Application Insights, так и для Log Analytics. Эта возможность позволяет выполнять межкластерные запросы для указания прямых ссылок на табличную функцию Azure Monitor. Для запросов между службами поддерживаются следующие команды:

  • .show functions
  • .show function {FunctionName}
  • .show database {DatabaseName} schema as json

На следующем рисунке показан пример запрашивания табличной функции из пользовательского веб-интерфейса Azure Data Explorer. Чтобы использовать функцию, запустите ее по имени в окне "Запрос".

Снимок экрана: запрашивание табличной функции из пользовательского веб-интерфейса Azure Data Explorer.

Дополнительные примеры синтаксиса

При вызове кластеров Application Insights или Log Analytics доступны следующие параметры синтаксиса:

Описание синтаксиса Application Insights Log Analytics
База данных в кластере, которая содержит только определенный ресурс в этой подписке (рекомендуется для межкластерных запросов) cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.insights/components/<ai-app-name>').database('<ai-app-name>') cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>').database('<workspace-name>')
Кластер, содержащий все приложения и рабочие области в этой подписке cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>') cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>')
Кластер, содержащий все приложения и рабочие области в подписке, которые входят в эту группу ресурсов cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>') cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>')
Кластер, содержащий только определенный ресурс в этой подписке cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.insights/components/<ai-app-name>') cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>')
Для конечных точек в USGov cluster('https://adx.monitor.azure.us/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>')
Для конечных точек в Китае (21Vianet) cluster('https://adx.monitor.azure.cn/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>')