Документацияbreadcrumb arrow Grafanabreadcrumb arrow Документация GlaberGraphbreadcrumb arrow Как кодbreadcrumb arrow Инфраструктура как кодbreadcrumb arrow Terraformbreadcrumb arrow Управление Cloud Provider Observability в Grafana Cloud с помощью Terraform

Управление Cloud Provider Observability в Grafana Cloud с помощью Terraform

Управляйте Cloud Provider Observability, включая ресурсы Amazon CloudWatch и Microsoft Azure, в Grafana Cloud с помощью Terraform. Дополнительные сведения о Cloud Provider Observability см. в документации Cloud Provider Observability.

Прежде чем начать

Прежде чем начать, убедитесь, что у вас есть следующее:

  • Учётная запись Grafana Cloud
    • Дополнительные сведения о настройке учётной записи Grafana Cloud см. в разделе Get started.
  • Terraform, установленный на вашей машине
  • Права администратора в вашем экземпляре Grafana
    • Дополнительные сведения о назначении ролей Grafana RBAC см. в разделе Assign RBAC roles.

Note

Сохраните все перечисленные ниже файлы конфигурации Terraform в одном каталоге.

Настройка аутентификации для провайдера Grafana

Провайдер Grafana — это логическая абстракция вышестоящего API, с помощью которой можно взаимодействовать с ресурсами Grafana Cloud. Его необходимо настроить со следующей информацией:

  • Токен политики доступа Grafana Cloud, включающий разрешения, которые нужны провайдеру для доступа к Grafana Cloud Provider API.
  • Региональная конечная точка API облачного провайдера, определяющая, к какому стеку Grafana Cloud вы обращаетесь.

Чтобы настроить аутентификацию для провайдера Grafana:

  1. Создайте политику доступа и токен Grafana Cloud.

    • Чтобы создать политику доступа для вашей организации, обратитесь к шагам Create an access policy for a stack и используйте следующие области доступа, перечисленные для поддерживаемых ресурсов Amazon CloudWatch или Microsoft Azure:
      • Amazon CloudWatch
        • Сбор метрик или сбор метаданных ресурсов
          • integration-management:read
          • integration-management:write
          • stacks:read
        • Потоки метрик
          • metrics:write
        • Журналы доступа ALB, журналы с Lambda или журналы с Amazon Data Firehose
          • logs:write
    • Microsoft Azure
      • Бессерверные метрики
        • integration-management:read
        • integration-management:write
        • stacks:read
      • Журналы с функциями Azure
        • logs:write
  2. Получите региональную конечную точку API Cloud Provider.

    • Чтобы получить региональную конечную точку API облачного провайдера, используйте ваш токен политики доступа и следующую команду, которая возвращает список всех принадлежащих вам стеков Grafana вместе с соответствующими именами хостов Cloud Provider API:
    Bash
    curl -sH "Authorization: Bearer @@@GRAFANA_CLOUD_ACCESS_POLICY_TOKEN@@@" "https://grafana.com/api/instances" | \
    jq '[.items[]|{stackName: .slug, clusterName:.clusterSlug, cloudProviderAPIURL: "https://cloud-provider-api-\(.clusterSlug).grafana.net"}]'

    Note

    Если эта конечная точка не работает, возможно, ваша конечная точка Grafana Cloud Provider API использует новый формат URL. Дополнительные сведения о URL Grafana Cloud см. в разделе Determine Grafana Cloud URLs based on region.

  3. Создайте файл с именем cloud-provider.tf и добавьте следующий блок кода:

    tf
    terraform {
        required_providers {
        grafana = {
            source  = "grafana/grafana"
        }
      }
    }
    
    provider "grafana" {
        cloud_api_url      = "<@@@CLOUD_PROVIDER_API_URL@@@"
        cloud_access_policy_token     = "@@@CLOUD_ACCESS_POLICY_TOKEN@@@>"
    }
  4. Создайте файл variables.tf и вставьте переменные CLOUD_ACCESS_POLICY_TOKEN и CLOUD_PROVIDER_API_URL со своими значениями.

  5. Выполните следующую команду Terraform:

    tf
    terraform apply -var-file="variables.tf"

Настройка ресурсов

Инструкции по настройке конкретных ресурсов Amazon CloudWatch и Microsoft Azure в Cloud Provider Observability с помощью Terraform см. в следующих документах:

  • Amazon CloudWatch
    • Сбор метрик: извлекайте метрики CloudWatch из нескольких регионов для вашей учётной записи AWS без необходимости устанавливать Grafana Alloy.
    • Потоки метрик: отправляйте метрики с помощью потоков метрик CloudWatch с использованием Amazon Data Firehose, получая аналитику в реальном времени и масштабируемость при упрощении конфигурации и снижении затрат и ручных усилий.
    • Журналы доступа ALB: отправляйте журналы доступа балансировщика нагрузки приложений из AWS в Grafana Cloud с помощью функции Lambda.
    • Журналы с Lambda: отправляйте журналы в Grafana Cloud из нескольких сервисов AWS с помощью функции lambda-promtail.
    • Журналы с Amazon Data Firehose: отправляйте журналы из AWS в Grafana Cloud с помощью Amazon Data Firehose и минимальной инфраструктуры.
  • Microsoft Azure
    • Бессерверные метрики: отслеживайте ресурсы Azure без необходимости настраивать или развёртывать коллектор, используя Cloud Provider Observability.
    • Журналы с функциями Azure: отправляйте журналы событий Azure в конечную точку Loki с помощью функции Azure, которая подписывается на концентратор событий Azure.

Ресурсы облачного провайдера Grafana

С помощью Terraform можно определять следующие ресурсы и источники данных Cloud Provider Observability:

Имя ресурса Описание
grafana_cloud_provider_aws_account Представляет роль AWS IAM, которая даёт Grafana Cloud право извлекать метрики Amazon CloudWatch для набора регионов. Обычно существует один такой ресурс на каждую настроенную учётную запись AWS. Полную справку по этому ресурсу см. в справочной документации Terraform Grafana Provider.
grafana_cloud_provider_aws_cloudwatch_scrape_job Представляет задание сбора AWS в Grafana. Настраивает Grafana на получение списка метрик и статистики для одного или нескольких сервисов AWS для заданного grafana_cloud_provider_aws_account. Полную справку по этому ресурсу см. в справочной документации Terraform Grafana Provider.
grafana_cloud_provider_aws_resource_metadata_scrape_job Представляет задание сбора метаданных ресурсов AWS в Grafana. Этот ресурс настраивает Grafana на получение метаданных ресурсов для одного или нескольких сервисов AWS для заданного grafana_cloud_provider_aws_account. Полную справку по этому ресурсу см. в справочной документации Terraform Grafana Provider.
grafana_cloud_provider_azure_credential Ресурс, представляющий учётные данные субъекта-службы Azure, используемые Grafana Cloud для извлечения метрик Azure Monitor из одной или нескольких подписок. Полную справку по этому ресурсу см. в документации ресурса Terraform Grafana Provider.