Настройка источника данных Azure Monitor
В этом документе объясняется, как настроить источник данных Azure Monitor и какие параметры конфигурации доступны. Общую информацию об источниках данных см. в разделах Источники данных Grafana и Управление источниками данных.
Прежде чем начать
Перед настройкой источника данных Azure Monitor убедитесь, что у вас есть следующее:
-
Разрешения Grafana: для настройки источников данных у вас должна быть роль
Organization administrator. Администраторы организации также могут настроить источник данных через YAML с помощью системы провижининга Grafana или с помощью Terraform. -
Предварительные требования Azure: в зависимости от выбранного метода аутентификации вам может потребоваться:
- Регистрация приложения в Microsoft Entra ID (ранее Azure AD) с субъектом-службой (для аутентификации App Registration)
- Управляемое удостоверение, включённое на вашей виртуальной машине Azure или в App Service (для аутентификации Managed Identity)
- Удостоверение рабочей нагрузки, настроенное в вашем кластере Kubernetes (для аутентификации Workload Identity)
- Аутентификация Microsoft Entra ID, настроенная для входа в Grafana (для аутентификации Current User)
Note
Пользователям Grafana Cloud: методы аутентификации Managed Identity и Workload Identity недоступны в Grafana Cloud, поскольку они требуют, чтобы Grafana работала на вашей инфраструктуре Azure. Вместо них используйте аутентификацию App Registration.
- Разрешения Azure RBAC: удостоверение, используемое для аутентификации, должно иметь роль
Readerна подписке Azure, содержащей ресурсы, которые вы хотите отслеживать. Для запросов Log Analytics удостоверению также нужны соответствующие разрешения на рабочих пространствах Log Analytics, к которым выполняются запросы. См. документацию Azure по назначению ролей.
Note
Плагин источника данных Azure Monitor встроен в Grafana. Дополнительная установка не требуется.
Добавление источника данных
Чтобы добавить источник данных Azure Monitor:
- Нажмите Connections в левом меню.
- Нажмите Add new connection.
- Введите
Azure Monitorв строке поиска. - Выберите Azure Monitor.
- Нажмите Add new data source в правом верхнем углу.
Вы попадёте на вкладку Settings, где можно настроить источник данных.
Выбор метода аутентификации
Источник данных Azure Monitor поддерживает пять методов аутентификации. Выбирайте исходя из того, где размещена Grafana, ваших требований безопасности и необходимости оповещений:
Note
Аутентификация Current User не поддерживает фоновые операции, такие как оповещения, отчёты и правила записи. Чтобы использовать оповещения с Current User, необходимо настроить резервные сервисные учётные данные. Тогда оповещения выполняются с разрешениями резервных учётных данных. Подробности см. в разделе Ограничения и резервные учётные данные.
Настройка аутентификации
Выберите один из следующих методов аутентификации и завершите настройку.
App Registration (клиентский секрет)
Используйте регистрацию приложения в Microsoft Entra ID (субъект-службу) для аутентификации. Этот метод работает с любым развёртыванием Grafana.
Предварительные требования App Registration
-
Создайте регистрацию приложения в Microsoft Entra ID. См. документацию Azure по созданию субъекта-службы.
-
Создайте клиентский секрет для регистрации приложения. См. документацию Azure по созданию клиентского секрета.
-
Назначьте роль
Readerрегистрации приложения на подписке или ресурсах, которые вы хотите отслеживать. См. документацию Azure по назначению ролей.
Настройка App Registration в интерфейсе
Провижининг App Registration через YAML
apiVersion: 1
datasources:
- name: Azure Monitor
type: grafana-azure-monitor-datasource
access: proxy
jsonData:
azureAuthType: clientsecret
cloudName: azuremonitor # See supported cloud names below
tenantId: <tenant-id>
clientId: <client-id>
subscriptionId: <subscription-id> # Optional, default subscription
secureJsonData:
clientSecret: <client-secret>
version: 1
App Registration (клиентский сертификат)
Используйте регистрацию приложения в Microsoft Entra ID с сертификатом.
Предварительные требования App Registration (клиентский сертификат)
- Создайте регистрацию приложения в Microsoft Entra ID. См. документацию Azure по созданию субъекта-службы.
- Создайте или получите существующий сертификат (примеры создания самоподписанных сертификатов PEM или PFX см. ниже).
- Загрузите сертификат в регистрацию приложения в формате PEM или PFX. См. документацию Azure.
- Назначьте роль
Readerрегистрации приложения на подписке или ресурсах, которые вы хотите отслеживать. См. документацию Azure по назначению ролей.
Добавление сертификата в регистрацию приложения
Добавьте публичный сертификат в вашу регистрацию приложения на портале Azure:
- Откройте регистрацию приложения в Azure.
- Выберите Certificates & secrets.
- Выберите Certificates.
- Нажмите Upload certificate.
- Загрузите файл сертификата, содержащий публичный сертификат (
.cer,.crtили.pem). - Сохраните изменения.
Загруженный сертификат используется Microsoft Entra ID для проверки подписи утверждения клиента (client assertion) от Grafana.
Форматы сертификатов
Источник данных Azure Monitor поддерживает следующие форматы сертификатов:
- PEM: укажите и сертификат, и закрытый ключ в текстовом формате PEM.
- PFX: укажите полезную нагрузку PFX в кодировке base64 в поле Client Certificate и укажите пароль сертификата.
Создание самоподписанных сертификатов
Следующие примеры предназначены для тестовых и лабораторных сред. Для продакшена используйте сертификаты от вашего внутреннего или публичного центра сертификации.
Создание самоподписанного сертификата PEM и закрытого ключа с помощью OpenSSL:
openssl genrsa -out key.pem 2048
openssl req -new -sha256 -key key.pem -out csr.csr
openssl req -x509 -sha256 -days 365 -key key.pem -in csr.csr -out certificate.pem
В этом примере:
certificate.pemзагружается в Certificates & secrets в Azure.certificate.pem— это клиентский сертификат, добавленный в Grafana.key.pem— это закрытый ключ, добавленный в Grafana.
Создание зашифрованного сертификата PFX в кодировке base64:
openssl genrsa -out key.pem 2048
openssl req -new -sha256 -key key.pem -out csr.csr
openssl req -x509 -sha256 -days 365 -key key.pem -in csr.csr -out certificate.pem
openssl pkcs12 -export -inkey key.pem -in certificate.pem -out certificate.pfx
openssl base64 -in certificate.pfx -out certificate.b64
Обязательно запомните пароль, который вы используете для шифрования сертификата.
В этом примере:
certificate.pemзагружается в Certificates & secrets в Azure.certificate.b64— это зашифрованный, закодированный файл, добавленный в Grafana (в поле клиентского сертификата).
Настройка App Registration (клиентский сертификат) в интерфейсе
Провижининг App Registration (клиентский сертификат) через YAML
Чтобы настроить источник данных Azure Monitor с аутентификацией по клиентскому сертификату, используйте следующую конфигурацию:
apiVersion: 1
datasources:
- name: Azure Monitor
type: grafana-azure-monitor-datasource
access: proxy
jsonData:
azureAuthType: clientcertificate
cloudName: azuremonitor # See supported cloud names below
tenantId: <tenant-id>
clientId: <client-id>
certificateFormat: pem # Use pem or pfx
subscriptionId: <subscription-id> # Optional, default subscription
secureJsonData:
clientCertificate: <certificate-content>
privateKey: <private-key-content> # pem only
certificatePassword: <certificate-password> # pfx only, if set
version: 1
Managed Identity
Используйте управляемое удостоверение Azure для безопасной аутентификации без учётных данных, когда Grafana размещена в Azure.
Note
Managed Identity доступен в Azure Managed Grafana или в самостоятельно управляемой Grafana, развёрнутой в Azure. Он недоступен в Grafana Cloud.
Предварительные требования Managed Identity
- Grafana должна быть размещена в Azure (App Service, виртуальные машины Azure или Azure Managed Grafana).
- Управляемое удостоверение должно быть включено на ресурсе Azure, на котором размещена Grafana.
- Управляемое удостоверение должно иметь роль
Readerна подписке или ресурсах, которые вы хотите отслеживать.
Подробности об управляемых удостоверениях Azure см. в документации Azure.
Конфигурация сервера Grafana для Managed Identity
Включите управляемое удостоверение в конфигурации сервера Grafana:
[azure]
managed_identity_enabled = true
Чтобы использовать управляемое удостоверение, назначенное пользователем, вместо назначенного системой, также задайте:
[azure]
managed_identity_enabled = true
managed_identity_client_id = <USER_ASSIGNED_IDENTITY_CLIENT_ID>
Caution
Если вы изменили параметр
forward_settings_to_pluginsв разделе[azure], проверьте, что в него включёнgrafana-azure-monitor-datasource. Этот параметр определяет, какие плагины получают конфигурацию Azure от сервера Grafana. По умолчанию включены все плагины Azure от Grafana Labs. Отсутствие этого параметра приводит к ошибкам401 Unauthorized, даже если Managed Identity правильно настроен на вашем ресурсе Azure.
Дополнительные сведения см. в разделе Конфигурация Azure в Grafana.
Настройка Managed Identity в интерфейсе
Провижининг Managed Identity через YAML
apiVersion: 1
datasources:
- name: Azure Monitor
type: grafana-azure-monitor-datasource
access: proxy
jsonData:
azureAuthType: msi
subscriptionId: <subscription-id> # Optional, default subscription
version: 1
Workload Identity
Используйте удостоверение рабочей нагрузки Azure для безопасной аутентификации в средах Kubernetes, таких как AKS.
Предварительные требования Workload Identity
- Grafana должна работать в среде Kubernetes с настроенной федерацией удостоверений рабочей нагрузки.
- Удостоверение рабочей нагрузки должно иметь роль
Readerна подписке или ресурсах, которые вы хотите отслеживать.
Подробности см. в документации по удостоверениям рабочей нагрузки Azure.
Конфигурация сервера Grafana для Workload Identity
Включите удостоверение рабочей нагрузки в конфигурации сервера Grafana:
[azure]
workload_identity_enabled = true
Необязательные переменные конфигурации:
[azure]
workload_identity_enabled = true
workload_identity_tenant_id = <IDENTITY_TENANT_ID> # Microsoft Entra ID tenant containing the managed identity
workload_identity_client_id = <IDENTITY_CLIENT_ID> # Client ID if different from default
workload_identity_token_file = <TOKEN_FILE_PATH> # Path to the token file
Caution
Если вы изменили параметр
forward_settings_to_pluginsв разделе[azure], проверьте, что в него включёнgrafana-azure-monitor-datasource. Подробности см. в разделе Конфигурация сервера Grafana для Managed Identity.
Дополнительные сведения см. в разделах Конфигурация Azure в Grafana и Документация по удостоверениям рабочей нагрузки Azure.
Настройка Workload Identity в интерфейсе
Провижининг Workload Identity через YAML
apiVersion: 1
datasources:
- name: Azure Monitor
type: grafana-azure-monitor-datasource
access: proxy
jsonData:
azureAuthType: workloadidentity
subscriptionId: <subscription-id> # Optional, default subscription
version: 1
Current User
Передавайте учётные данные Azure вошедшего в Grafana пользователя в источник данных для управления доступом на уровне пользователя.
Note
Аутентификация Current User — это функция общего доступа. Свяжитесь со службой поддержки Grafana, чтобы включить эту функцию в Grafana Cloud.
Предварительные требования Current User
Ваш экземпляр Grafana должен быть настроен с аутентификацией Microsoft Entra ID. См. документацию по аутентификации Microsoft Entra ID.
Настройка регистрации приложения Azure
Регистрация приложения, используемая для входа в Grafana, требует дополнительной настройки:
Включение выдачи токенов:
- На портале Azure откройте вашу регистрацию приложения.
- Выберите Authentication в боковом меню.
- В разделе Implicit grant and hybrid flows установите оба флажка: Access tokens и ID tokens.
- Сохраните изменения.
Добавление разрешений API:
- На портале Azure откройте вашу регистрацию приложения.
- Выберите API Permissions в боковом меню.
- Убедитесь, что эти разрешения присутствуют в разделе Microsoft Graph:
openid,profile,emailиoffline_access. - Добавьте следующие разрешения:
- Azure Service Management > Delegated permissions >
user_impersonation - APIs my organization uses > Найдите Log Analytics API > Delegated permissions >
Data.Read
- Azure Service Management > Delegated permissions >
Дополнительные сведения см. в документации Azure.
Обновление областей (scopes) Grafana:
Обновите раздел scopes в конфигурации аутентификации Azure в Grafana, добавив область .default:
.default openid email profile
Конфигурация сервера Grafana для Current User
Включите аутентификацию текущего пользователя в конфигурации сервера Grafana:
[azure]
user_identity_enabled = true
По умолчанию это также включает резервные сервисные учётные данные. Чтобы отключить резервные учётные данные на уровне экземпляра:
[azure]
user_identity_enabled = true
user_identity_fallback_credentials_enabled = false
Caution
Если вы изменили параметр
forward_settings_to_pluginsв разделе[azure], проверьте, что в него включёнgrafana-azure-monitor-datasource. Подробности см. в разделе Конфигурация сервера Grafana для Managed Identity.
Ограничения и резервные учётные данные
Аутентификация Current User не поддерживает серверные функции, такие как оповещения, отчёты и записываемые запросы, поскольку учётные данные пользователя недоступны для фоновых операций.
Чтобы поддержать эти функции, необходимо настроить резервные сервисные учётные данные, обычно регистрацию приложения с клиентским секретом. Когда они включены, Grafana использует резервные учётные данные для серверных операций. Операции с использованием резервных учётных данных ограничены разрешениями этих учётных данных, а не разрешениями пользователя.
Caution
Если вы используете аутентификацию Current User без настройки резервных сервисных учётных данных, правила оповещений, правила записи и отчёты завершаются ошибками аутентификации. Дополнительные сведения см. в документации по оповещениям.
Note
Кэширование запросов и ресурсов по умолчанию отключено для источников данных, использующих аутентификацию Current User.
Настройка Current User в интерфейсе
Провижининг Current User через YAML
Note
Свойство
oauthPassThruобязательно для аутентификации Current User. СвойствоdisableGrafanaCacheпредотвращает возврат кэшированных ответов для ресурсов, к которым у пользователей нет доступа.
apiVersion: 1
datasources:
- name: Azure Monitor
type: grafana-azure-monitor-datasource
access: proxy
jsonData:
azureAuthType: currentuser
oauthPassThru: true
disableGrafanaCache: true
subscriptionId: <subscription-id> # Optional, default subscription
version: 1
Дополнительные параметры конфигурации
Эти параметры применяются ко всем методам аутентификации.
Общие параметры
Тайм-аут запроса
Тайм-аут источника данных по умолчанию составляет 30 секунд. Запросы Azure Log Analytics на стороне Azure могут выполняться до 3 минут, особенно для сложных запросов KQL, больших диапазонов времени или запросов по нескольким рабочим пространствам. Если запросы завершаются ошибками DatasourceError, context deadline exceeded или тайм-аута, увеличьте тайм-аут.
Чтобы изменить тайм-аут:
- Откройте настройки вашего источника данных Azure Monitor.
- Прокрутите до раздела Misc в нижней части страницы конфигурации.
- Задайте значение Timeout. Значение
300(300 секунд / 5 минут) покрывает максимальную длительность серверного запроса Azure Log Analytics. - Нажмите Save & test.
Caution
Этот тайм-аут также влияет на вычисление оповещений. Если ваши правила оповещений используют запросы Log Analytics, выполняющиеся дольше 30 секунд, необходимо увеличить этот параметр, иначе вычисление оповещений будет завершаться ошибками тайм-аута. Для оповещений также убедитесь, что интервал вычисления оповещения достаточно велик, чтобы вместить длительность запроса.
Чтобы задать тайм-аут в файле провижининга, добавьте timeout в раздел jsonData:
datasources:
- name: Azure Monitor
type: grafana-azure-monitor-datasource
access: proxy
jsonData:
timeout: 300
Включение Basic Logs
Включите Enable Basic Logs, чтобы разрешить запросы к таблицам Basic Logs в поддерживаемых рабочих пространствах Log Analytics.
Note
Запросы к таблицам Basic Logs влекут дополнительные расходы за каждый запрос.
Включение Batch API
Включите Enable Batch API, чтобы запрашивать метрики для нескольких ресурсов одним запросом с помощью Azure Monitor Metrics Batch API. Вместо отправки одного запроса на ресурс Grafana группирует подходящие запросы метрик и отправляет их вместе. Это сокращает количество вызовов Azure, что повышает производительность запросов и снижает вероятность троттлинга на дашбордах, запрашивающих множество ресурсов.
Note
Этот параметр доступен только при включённом переключателе функции
datasources.azureMonitorBatchAPI.
Поскольку запросы к Batch API отправляются на конечную точку плоскости данных metrics.monitor.azure.com, для его использования вам нужна роль Monitoring Reader на уровне подписки.
Note
Metrics Batch API имеет бесплатный месячный лимит, после которого дополнительные вызовы влекут расходы. Текущие тарифы см. в разделе Цены Azure Monitor.
Private data source connect (только Grafana Cloud)
Если вы используете Grafana Cloud и вам нужно подключиться к ресурсам Azure в частной сети, используйте Private Data Source Connect (PDC).
- Нажмите раскрывающийся список Private data source connect, чтобы выбрать вашу конфигурацию PDC.
- Нажмите Manage private data source connect, чтобы просмотреть сведения о подключении PDC.
Дополнительные сведения см. в разделах Private data source connect и Настройка PDC.
Настройка exemplars
Вы можете связать метрики Azure Monitor с трассировками в источнике данных трассировок, настроив exemplars. Это позволяет переходить от точки данных метрики напрямую к связанным трассировкам для более глубокого исследования.
Чтобы настроить exemplars:
- Откройте настройки вашего источника данных Azure Monitor.
- Прокрутите до раздела конфигурации Exemplar.
- Нажмите Add.
- Выберите Data source в раскрывающемся списке. Источник данных должен быть серверным компонентом трассировок, таким как Tempo, Zipkin, Jaeger или X-Ray.
- (Необязательно) Настройте метку URL, чтобы изменить ссылку.
- Нажмите Save & test.
После настройки ссылки на exemplars появляются на поддерживаемых визуализациях метрик Azure Monitor, позволяя перейти к соответствующей трассировке в вашем источнике данных трассировок.
Поддерживаемые имена облаков
При провижининге источника данных используйте следующие значения cloudName:
Note
Для аутентификации Current User имена облаков отличаются: используйте
AzureCloudдля публичного облака,AzureChinaCloudдля китайского национального облака иAzureUSGovernmentдля облака правительства США.
Проверка подключения
После настройки источника данных нажмите Save & test. Успешное подключение отображает сообщение, подтверждающее, что учётные данные действительны и имеют доступ к настроенной подписке по умолчанию.
Если проверка не проходит, убедитесь, что:
- Ваши учётные данные верны (поля tenant ID, client ID и client secret или сертификата)
- Удостоверение имеет необходимые разрешения Azure RBAC
- Для Managed Identity или Workload Identity конфигурация сервера Grafana верна
- Есть сетевое подключение к конечным точкам Azure
Провижининг источника данных
Вы можете определить и настроить источник данных Azure Monitor в файлах YAML в рамках системы провижининга Grafana. Дополнительные сведения о провижининге см. в разделе Провижининг Grafana.
Краткий справочник по провижинингу
Все методы поддерживают необязательное поле subscriptionId для задания подписки по умолчанию.
Полные примеры YAML см. в разделах о методах аутентификации выше.
Настройка с помощью Terraform
Вы можете настроить источник данных Azure Monitor с помощью провайдера Grafana для Terraform. Этот подход обеспечивает рабочие процессы «инфраструктура как код» и контроль версий для вашей конфигурации Grafana.
Предварительные требования Terraform
- Установленный Terraform
- Провайдер Grafana для Terraform, настроенный с соответствующими учётными данными
- Для Grafana Cloud: токен Cloud Access Policy с разрешениями на источники данных
Конфигурация провайдера
Настройте провайдер Grafana для подключения к вашему экземпляру Grafana:
terraform {
required_providers {
grafana = {
source = "grafana/grafana"
version = ">= 2.0.0"
}
}
}
# For Grafana Cloud
provider "grafana" {
url = "<YOUR_GRAFANA_CLOUD_STACK_URL>"
auth = "<YOUR_SERVICE_ACCOUNT_TOKEN>"
}
# For self-hosted Grafana
# provider "grafana" {
# url = "http://localhost:3000"
# auth = "<API_KEY_OR_SERVICE_ACCOUNT_TOKEN>"
# }
Примеры Terraform
Следующие примеры показывают, как настроить источник данных Azure Monitor для каждого метода аутентификации.
App Registration (клиентский секрет):
resource "grafana_data_source" "azure_monitor" {
type = "grafana-azure-monitor-datasource"
name = "Azure Monitor"
json_data_encoded = jsonencode({
azureAuthType = "clientsecret"
cloudName = "azuremonitor"
tenantId = "<TENANT_ID>"
clientId = "<CLIENT_ID>"
subscriptionId = "<SUBSCRIPTION_ID>"
})
secure_json_data_encoded = jsonencode({
clientSecret = "<CLIENT_SECRET>"
})
}
App Registration (клиентский сертификат с PEM):
resource "grafana_data_source" "azure_monitor" {
type = "grafana-azure-monitor-datasource"
name = "Azure Monitor"
json_data_encoded = jsonencode({
azureAuthType = "clientcertificate"
cloudName = "azuremonitor"
tenantId = "<TENANT_ID>"
clientId = "<CLIENT_ID>"
certificateFormat = "pem"
subscriptionId = "<SUBSCRIPTION_ID>"
})
secure_json_data_encoded = jsonencode({
clientCertificate = "<CERTIFICATE_CONTENT>"
privateKey = "<PRIVATE_KEY_CONTENT>"
})
}
App Registration (клиентский сертификат с PFX):
resource "grafana_data_source" "azure_monitor" {
type = "grafana-azure-monitor-datasource"
name = "Azure Monitor"
json_data_encoded = jsonencode({
azureAuthType = "clientcertificate"
cloudName = "azuremonitor"
tenantId = "<TENANT_ID>"
clientId = "<CLIENT_ID>"
certificateFormat = "pfx"
subscriptionId = "<SUBSCRIPTION_ID>"
})
secure_json_data_encoded = jsonencode({
clientCertificate = "<CERTIFICATE_CONTENT_BASE64_ENCODED>"
certificatePassword = "<CERTIFICATE_PASSWORD>"
})
}
Managed Identity:
resource "grafana_data_source" "azure_monitor" {
type = "grafana-azure-monitor-datasource"
name = "Azure Monitor"
json_data_encoded = jsonencode({
azureAuthType = "msi"
subscriptionId = "<SUBSCRIPTION_ID>"
})
}
Workload Identity:
resource "grafana_data_source" "azure_monitor" {
type = "grafana-azure-monitor-datasource"
name = "Azure Monitor"
json_data_encoded = jsonencode({
azureAuthType = "workloadidentity"
subscriptionId = "<SUBSCRIPTION_ID>"
})
}
Current User:
resource "grafana_data_source" "azure_monitor" {
type = "grafana-azure-monitor-datasource"
name = "Azure Monitor"
json_data_encoded = jsonencode({
azureAuthType = "currentuser"
oauthPassThru = true
disableGrafanaCache = true
subscriptionId = "<SUBSCRIPTION_ID>"
})
}
С включённым Basic Logs:
Добавьте basicLogsEnabled = true в любую из приведённых выше конфигураций:
resource "grafana_data_source" "azure_monitor" {
type = "grafana-azure-monitor-datasource"
name = "Azure Monitor"
json_data_encoded = jsonencode({
azureAuthType = "clientsecret"
cloudName = "azuremonitor"
tenantId = "<TENANT_ID>"
clientId = "<CLIENT_ID>"
subscriptionId = "<SUBSCRIPTION_ID>"
basicLogsEnabled = true
})
secure_json_data_encoded = jsonencode({
clientSecret = "<CLIENT_SECRET>"
})
}
Дополнительные сведения о провайдере Grafana для Terraform см. в документации провайдера и описании ресурса grafana_data_source.