Настройка источника данных Google Cloud Monitoring
В этом документе приведены инструкции по настройке источника данных Google Cloud Monitoring в Grafana.
Прежде чем начать
Прежде чем начать, убедитесь, что у вас есть следующее:
- Права в Grafana: для настройки источников данных у вас должна быть роль
Organization administrator. - Проект GCP: проект Google Cloud Platform.
- Права в GCP: права на создание сервисного аккаунта или настройку параметров сервисного аккаунта GCE по умолчанию в вашем проекте GCP.
Источник данных Google Cloud Monitoring предустановлен в Grafana как в Grafana OSS, так и в Grafana Enterprise, поэтому устанавливать ничего не нужно. Подробнее о том, как обновляется отдельный плагин, см. в разделе Обновления плагина.
Настройка аутентификации в GCP
Прежде чем запрашивать данные из Google Cloud Monitoring, необходимо настроить аутентификацию. Все запросы к Google API выполняются на стороне сервера бэкендом Grafana.
Варианты аутентификации и подробности настройки описаны в разделе Аутентификация в Google.
При настройке аутентификации в Google учитывайте следующие требования, специфичные для Google Cloud Monitoring.
Настройка сервисного аккаунта GCP
Когда вы создаёте сервисный аккаунт Google Cloud Platform (GCP) и файл ключа, у сервисного аккаунта должна быть роль Monitoring Viewer (Role > Select a role > Monitoring > Monitoring Viewer):
Предоставление области действия сервисному аккаунту GCE по умолчанию
Если Grafana работает на виртуальной машине Google Compute Engine (GCE), то при настройке сервисного аккаунта GCE по умолчанию вам также необходимо предоставить этому сервисному аккаунту доступ к области действия “Cloud Monitoring API”.
Включение API Google Cloud Platform
Прежде чем запрашивать данные из Google Cloud Monitoring, необходимо включить нужные API в вашем проекте GCP.
-
Откройте страницы API Monitoring и Cloud Resource Manager:
-
На каждой странице нажмите Enable.
Enable GCP APIs
Добавление источника данных
Чтобы добавить источник данных Google Cloud Monitoring:
- В меню слева нажмите Connections.
- Нажмите Add new connection.
- Введите
Google Cloud Monitoringв строке поиска. - Выберите Google Cloud Monitoring.
- В правом верхнем углу нажмите Add new data source.
Вы попадёте на вкладку Settings, где выполняется настройка источника данных.
Настройка источника данных в интерфейсе
Ниже приведены параметры настройки источника данных Google Cloud Monitoring.
Аутентификация
Настройте, как Grafana проходит аутентификацию в Google Cloud.
Настройка аутентификации Google JWT File
Эти настройки появляются, когда в качестве способа аутентификации выбран Google JWT File.
Настройка Forward OAuth Identity
Эти настройки появляются, когда в качестве способа аутентификации выбран Forward OAuth Identity.
Аутентификация Google в Grafana должна запрашивать следующие области действия, чтобы переданный токен мог читать данные Cloud Monitoring. Укажите полный список в разделе [auth.google] файла grafana.ini или custom.ini, либо в поле Scopes в интерфейсе настроек SSO:
[auth.google]
scopes = openid email profile https://www.googleapis.com/auth/monitoring.read
openid,email,profile: стандартные области действия для входа в Grafana. Необходимы для входа пользователя.https://www.googleapis.com/auth/monitoring.read: необходима, чтобы переданный токен мог вызывать Cloud Monitoring API.
После изменения областей действия каждый пользователь должен выйти из системы, отозвать существующее разрешение на странице https://myaccount.google.com/permissions и войти снова. Google повторно использует предыдущее согласие, пока разрешение не отозвано, поэтому существующие сессии продолжают работать с токенами, выданными для старого набора областей действия.
Настройка Workload Identity Federation
Доступно только в Grafana Cloud.
Эти настройки появляются, когда в качестве способа аутентификации выбран Workload Identity Federation. Этот способ позволяет выполнять каждый запрос от имени вошедшего пользователя, аутентифицируясь через внешний провайдер идентификации OIDC, например Okta, вместо ключа сервисного аккаунта. Его настройка охватывает Google Cloud, ваш стек Grafana Cloud и сам источник данных. Полная процедура описана в разделе Использование Workload Identity Federation.
Note
Учётные данные Workload Identity Federation привязаны к сессии вошедшего пользователя, поэтому функции, работающие без участия пользователя, не работают. К ним относятся оповещения, запланированные отчёты и публичные дашборды. Если вы полагаетесь на эти функции, используйте вместо этого ключ сервисного аккаунта (Google JWT File).
Настройка имперсонации сервисного аккаунта
Используйте имперсонацию сервисного аккаунта, чтобы Grafana аутентифицировалась как другой сервисный аккаунт, а не тот, что указан в JWT-токене.
Private data source connect
Доступно только в Grafana Cloud.
Используйте private data source connect (PDC), чтобы подключаться к данным в защищённой сети и запрашивать их, не открывая эту сеть для входящего трафика из Grafana Cloud. Подробнее о работе PDC см. в разделе Private data source connect. Шаги по настройке подключения PDC описаны в разделе Настройка Grafana private data source connect (PDC).
Сохранение и проверка
Нажмите Save & test, чтобы проверить подключение. При успешном подключении отображается следующее сообщение:
Successfully queried the Google Cloud Monitoring API.
Провижининг источника данных
Вы можете определять и настраивать источник данных в YAML-файлах в рамках системы провижининга Grafana. Дополнительные сведения о провижининге и доступные параметры настройки см. в разделе Провижининг Grafana.
Примеры провижининга
С использованием способа аутентификации JWT (файл ключа сервисного аккаунта):
apiVersion: 1
datasources:
- name: Google Cloud Monitoring
type: stackdriver
access: proxy
jsonData:
tokenUri: https://oauth2.googleapis.com/token
clientEmail: stackdriver@myproject.iam.gserviceaccount.com
authenticationType: jwt
defaultProject: my-project-name
universeDomain: googleapis.com
secureJsonData:
privateKey: |
-----BEGIN PRIVATE KEY-----
POSEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCb1u1Srw8ICYHS
...
yA+23427282348234=
-----END PRIVATE KEY-----
С использованием способа аутентификации JWT (путь к приватному ключу сервисного аккаунта):
apiVersion: 1
datasources:
- name: Google Cloud Monitoring
type: stackdriver
access: proxy
jsonData:
tokenUri: https://oauth2.googleapis.com/token
clientEmail: stackdriver@myproject.iam.gserviceaccount.com
authenticationType: jwt
defaultProject: my-project-name
universeDomain: googleapis.com
privateKeyPath: /etc/secrets/gce.pem
С использованием аутентификации GCE Default Service Account:
apiVersion: 1
datasources:
- name: Google Cloud Monitoring
type: stackdriver
access: proxy
jsonData:
authenticationType: gce
universeDomain: googleapis.com
Провижининг источника данных с помощью Terraform
Вы можете провижинить источник данных Google Cloud Monitoring с помощью Terraform и провайдера Grafana для Terraform.
Дополнительные сведения о провижининге ресурсов с помощью Terraform см. в документации Grafana as code с использованием Terraform.
Предварительные требования для 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-managed Grafana
# provider "grafana" {
# url = "http://localhost:3000"
# auth = "<API_KEY_OR_SERVICE_ACCOUNT_TOKEN>"
# }
Примеры Terraform
Следующие примеры показывают, как настроить источник данных Google Cloud Monitoring для каждого способа аутентификации.
С использованием способа аутентификации JWT (файл ключа сервисного аккаунта):
resource "grafana_data_source" "google_cloud_monitoring" {
type = "stackdriver"
name = "Google Cloud Monitoring"
json_data_encoded = jsonencode({
tokenUri = "https://oauth2.googleapis.com/token"
clientEmail = "<SERVICE_ACCOUNT_EMAIL>"
authenticationType = "jwt"
defaultProject = "<GCP_PROJECT_ID>"
universeDomain = "googleapis.com"
})
secure_json_data_encoded = jsonencode({
privateKey = "<PRIVATE_KEY_CONTENT>"
})
}
С использованием способа аутентификации JWT (путь к приватному ключу сервисного аккаунта):
resource "grafana_data_source" "google_cloud_monitoring" {
type = "stackdriver"
name = "Google Cloud Monitoring"
json_data_encoded = jsonencode({
tokenUri = "https://oauth2.googleapis.com/token"
clientEmail = "<SERVICE_ACCOUNT_EMAIL>"
authenticationType = "jwt"
defaultProject = "<GCP_PROJECT_ID>"
universeDomain = "googleapis.com"
privateKeyPath = "/etc/secrets/gce.pem"
})
}
С использованием аутентификации GCE Default Service Account:
resource "grafana_data_source" "google_cloud_monitoring" {
type = "stackdriver"
name = "Google Cloud Monitoring"
json_data_encoded = jsonencode({
authenticationType = "gce"
universeDomain = "googleapis.com"
})
}
Все доступные параметры настройки описаны в документации по ресурсу источника данных провайдера Grafana.
Дальнейшие шаги
После настройки источника данных Google Cloud Monitoring вы можете:
- Запрашивать метрики GCP с помощью типов запросов визуальный Builder, MQL, SLO или PromQL.
- Создавать шаблонные переменные для динамичных, многократно используемых дашбордов.
- Добавлять аннотации для наложения событий GCP на графики.
- Настраивать оповещения, чтобы получать уведомления на основе метрик и SLO из GCP.
- Исследовать свои данные, чтобы анализировать метрики без создания дашборда.
- Создавать дашборды для сервисов GCP на основе дашбордов сообщества и дашбордов от Grafana.