Последнее обновление: июня 23, 2026

Настройка источника данных Amazon CloudWatch

В этом документе приведены инструкции по настройке источника данных Amazon CloudWatch и объясняются доступные параметры конфигурации. Общую информацию о добавлении источников данных и управлении ими см. в разделе Управление источниками данных.

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

  • Для настройки источника данных CloudWatch вам нужна роль Organization administrator. Администраторы организации также могут настроить источник данных через YAML с помощью системы provisioning Grafana.

  • Grafana поставляется со встроенным плагином источника данных CloudWatch, поэтому устанавливать плагин не требуется.

  • Ознакомьтесь со своей конфигурацией безопасности CloudWatch и подготовьте необходимые сертификаты безопасности, клиентские сертификаты и клиентские ключи.

Ключевые концепции

Если вы только начинаете работать с AWS, эти термины будут встречаться по всему разделу настройки:

Термин Описание
IAM policy JSON-документ, привязанный к идентификатору и предоставляющий разрешения на действия AWS API.
IAM role Идентификатор с разрешениями, которые доверенные сущности могут временно принимать на себя вместо использования долгоживущих ключей.
Assume role Механизм AWS, позволяющий одному идентификатору временно принять разрешения IAM-роли; часто используется для доступа между учётными записями.
External ID Общее значение в trust policy роли, которое не позволяет другой стороне принять роль от вашего имени.
STS (Security Token Service) Сервис AWS, выдающий краткоживущие временные учётные данные, используемые при принятии роли.
Cross-account observability (OAM) Возможность AWS, управляемая через Observability Access Manager, которая связывает monitoring- и source-учётные записи, позволяя запрашивать метрики и логи между учётными записями.

Добавление источника данных CloudWatch

Выполните следующие шаги, чтобы настроить новый источник данных CloudWatch:

  1. В меню слева нажмите Connections.
  2. Нажмите Add new connection
  3. Введите CloudWatch в строке поиска.
  4. Выберите CloudWatch data source.
  5. Нажмите Add new data source в правом верхнем углу.

Grafana перейдёт на вкладку Settings, где вы настроите конфигурацию CloudWatch.

Настройка источника данных в интерфейсе

Ниже приведены параметры конфигурации источника данных CloudWatch.

Настройка Описание
Name Имя источника данных. Задаёт имя, по которому вы ссылаетесь на источник данных в панелях и запросах.
Default Переключатель для выбора источника данных по умолчанию в панелях дашборда. При переходе к панели дашборда он будет выбран по умолчанию.

Запросы плагина Grafana к AWS выполняются от имени роли или пользователя AWS Identity and Access Management (IAM). Пользователь или роль IAM должны иметь связанные политики для выполнения определённых действий API.

Параметры аутентификации и подробности конфигурации см. в разделе Аутентификация AWS.

Настройка Описание
Authentication Provider Указывает, какую цепочку учётных данных AWS использовать. Запросы плагина Grafana к AWS выполняются от имени роли или пользователя IAM. Пользователь или роль IAM должны иметь необходимые политики для выполнения требуемых действий API.

Access & secret key:

Для аутентификации необходимо использовать и access key ID, и secret access key.

Настройка Описание
Access Key ID Введите ваш key ID.
Secret Access Key Введите ваш secret access key.

Credentials file:

Когда вы выбираете провайдер аутентификации Credentials file, вы можете указать, какой профиль читать из общего файла учётных данных AWS.

Настройка Описание
Credentials Profile Name Имя профиля в ~/.aws/credentials, как указано в файле учётных данных. Оставьте пустым, чтобы использовать профиль default.

Assume Role:

Настройка Описание
Assume Role ARN Опционально. Укажите ARN роли IAM, которую нужно принять. Это гарантирует, что выбранный метод аутентификации используется для принятия роли, а не напрямую.
External ID Если вы принимаете роль в другой учётной записи AWS, требующей external ID, укажите его здесь.

Additional Settings:

Настройка Описание
Endpoint Опционально. Укажите пользовательский endpoint для сервиса AWS.
Default Region Укажите регион AWS. Пример: если регион — US West (Oregon), используйте us-west-2.
Namespaces of Custom Metrics Добавьте одно или несколько пространств имён пользовательских метрик через запятую (например, Namespace1,Namespace2). Grafana не может автоматически загружать пользовательские пространства имён с помощью CloudWatch GetMetricData API. Чтобы сделать пользовательские метрики доступными в редакторе запросов, вручную укажите пространства имён в поле Namespaces of Custom Metrics в конфигурации источника данных.

Proxy configuration:

Настройки Proxy Configuration отображаются только когда поддержка HTTP-прокси для отдельных источников данных включена опцией per_datasource_http_proxy_enabled в файле конфигурации Grafana. Они позволяют каждому источнику данных CloudWatch использовать собственный исходящий HTTP-прокси для запросов к AWS.

Настройка Описание
Proxy Type Выберите способ настройки прокси: Environment (default) использует переменные окружения HTTP_PROXY и HTTPS_PROXY, None отключает прокси, а URL позволяет указать URL прокси. Не задавайте это, когда включён Secure Socks Proxy.
Proxy URL Только когда Proxy Type имеет значение URL. URL прокси, например https://localhost:3004. Не включайте имя пользователя и пароль в URL.
Proxy Username Только когда Proxy Type имеет значение URL. Опционально. Имя пользователя прокси.
Proxy Password Только когда Proxy Type имеет значение URL. Опционально. Пароль прокси.

CloudWatch Logs:

Настройка Описание
Query Result Timeout Grafana опрашивает CloudWatch Logs каждую секунду, пока AWS не вернёт статус Done или не будет достигнут тайм-аут. При превышении тайм-аута возвращается ошибка. Для оповещений приоритет имеет тайм-аут, заданный в файле конфигурации Grafana. Введите корректную строку длительности, например 30m, 30s или 200ms. Значение по умолчанию — 30m.
Default Log Groups Опционально. Указывает группы логов по умолчанию для запросов CloudWatch Logs.

Application Signals trace link:

Настройка Описание
Data source Выберите источник данных Application Signals из выпадающего меню.

Grafana автоматически создаёт ссылку на трейс в источнике данных Application Signals, если логи содержат поле @xrayTraceId. Чтобы использовать эту возможность, у вас уже должен быть настроен источник данных Application Signals. Подробности см. в документации источника данных Application Signals. Чтобы увидеть ссылку Application Signals, выберите строку лога в представлении Explore или в панели Logs дашборда, чтобы открыть раздел с подробностями лога.

Чтобы логировать @xrayTraceId, см. документацию AWS Application Signals. Чтобы передать это поле в Grafana, ваши запросы к логам также должны содержать поле @xrayTraceId, например с помощью запроса fields @message, @xrayTraceId.

Private data source connect — только для пользователей Grafana Cloud.

Настройка Описание
Private data source connect Устанавливает приватное защищённое соединение между стеком Grafana Cloud и источниками данных внутри частной сети. Используйте выпадающее меню, чтобы найти URL PDC. Инструкции по настройке см. в разделах Private data source connect (PDC) и Configure PDC. Нажмите Manage private data source connect, чтобы открыть страницу вашего PDC-подключения и просмотреть сведения о конфигурации.

После настройки параметров источника данных Amazon CloudWatch нажмите Save & test внизу, чтобы проверить соединение. При успешной проверке Grafana подтверждает, что она получила доступ к обоим API CloudWatch:

1. Successfully queried the CloudWatch metrics API.
2. Successfully queried the CloudWatch logs API.

Note

Чтобы устранять проблемы при настройке источника данных CloudWatch, проверьте файл /var/log/grafana/grafana.log. Типичные проблемы включают недействительные учётные данные, отсутствующие регионы и учётные данные только для метрик.

Примеры политик IAM

Чтобы читать метрики CloudWatch, а также теги, инстансы, регионы и alarms EC2, вы должны предоставить Grafana разрешения через IAM. Вы можете привязать эти разрешения к роли или пользователю IAM, которого вы настроили в разделе Аутентификация AWS.

Разрешения только для метрик:

JSON
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowReadingMetricsFromCloudWatch",
      "Effect": "Allow",
      "Action": [
        "CloudWatch:DescribeAlarmsForMetric",
        "CloudWatch:DescribeAlarmHistory",
        "CloudWatch:DescribeAlarms",
        "CloudWatch:ListMetrics",
        "CloudWatch:GetMetricData",
        "CloudWatch:GetInsightRuleReport"
      ],
      "Resource": "*"
    },
    {
      "Sid": "AllowReadingTagsInstancesRegionsFromEC2",
      "Effect": "Allow",
      "Action": ["ec2:DescribeTags", "ec2:DescribeInstances", "ec2:DescribeRegions"],
      "Resource": "*"
    },
    {
      "Sid": "AllowReadingResourcesForTags",
      "Effect": "Allow",
      "Action": "tag:GetResources",
      "Resource": "*"
    },
    {
      "Sid": "AllowReadingResourceMetricsFromPerformanceInsights",
      "Effect": "Allow",
      "Action": "pi:GetResourceMetrics",
      "Resource": "*"
    }
  ]
}

Разрешения только для логов:

JSON
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowReadingLogsFromCloudWatch",
      "Effect": "Allow",
      "Action": [
        "logs:DescribeLogGroups",
        "logs:ListAggregateLogGroupSummaries",
        "logs:GetLogGroupFields",
        "logs:StartQuery",
        "logs:StopQuery",
        "logs:GetQueryResults",
        "logs:GetLogEvents"
      ],
      "Resource": "*"
    },
    {
      "Sid": "AllowReadingTagsInstancesRegionsFromEC2",
      "Effect": "Allow",
      "Action": ["ec2:DescribeTags", "ec2:DescribeInstances", "ec2:DescribeRegions"],
      "Resource": "*"
    },
    {
      "Sid": "AllowReadingResourcesForTags",
      "Effect": "Allow",
      "Action": "tag:GetResources",
      "Resource": "*"
    }
  ]
}

Разрешения для метрик и логов:

JSON
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowReadingMetricsFromCloudWatch",
      "Effect": "Allow",
      "Action": [
        "CloudWatch:DescribeAlarmsForMetric",
        "CloudWatch:DescribeAlarmHistory",
        "CloudWatch:DescribeAlarms",
        "CloudWatch:ListMetrics",
        "CloudWatch:GetMetricData",
        "CloudWatch:GetInsightRuleReport"
      ],
      "Resource": "*"
    },
    {
      "Sid": "AllowReadingResourceMetricsFromPerformanceInsights",
      "Effect": "Allow",
      "Action": "pi:GetResourceMetrics",
      "Resource": "*"
    },
    {
      "Sid": "AllowReadingLogsFromCloudWatch",
      "Effect": "Allow",
      "Action": [
        "logs:DescribeLogGroups",
        "logs:ListAggregateLogGroupSummaries",
        "logs:GetLogGroupFields",
        "logs:StartQuery",
        "logs:StopQuery",
        "logs:GetQueryResults",
        "logs:GetLogEvents"
      ],
      "Resource": "*"
    },
    {
      "Sid": "AllowReadingTagsInstancesRegionsFromEC2",
      "Effect": "Allow",
      "Action": ["ec2:DescribeTags", "ec2:DescribeInstances", "ec2:DescribeRegions"],
      "Resource": "*"
    },
    {
      "Sid": "AllowReadingResourcesForTags",
      "Effect": "Allow",
      "Action": "tag:GetResources",
      "Resource": "*"
    }
  ]
}

Разрешения для наблюдаемости между учётными записями

JSON
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": ["oam:ListSinks", "oam:ListAttachedLinks"],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}

Note

Наблюдаемость между учётными записями позволяет получать метрики и логи из разных учётных записей в одном регионе, но вы не можете запрашивать EC2 Instance Attributes между учётными записями, поскольку они поступают из API EC2, а не из API CloudWatch.

Дополнительную информацию о настройке аутентификации см. в разделе Настройка аутентификации AWS.

Справочник разрешений

В следующей таблице объясняется, зачем нужно каждое разрешение и является ли оно обязательным, чтобы вы могли ограничить политику только теми возможностями, которые используете. Предоставляйте cloudwatch:GetMetricData только для метрик, действия logs: — только для логов, а действия EC2 и tag — только если вы используете соответствующие шаблонные переменные. Предоставление неиспользуемого разрешения не влияет на функциональность.

Разрешение Назначение Обязательность
cloudwatch:ListMetrics Перечисляет доступные метрики и заполняет поля namespace, metric и dimension в редакторе запросов. Обязательно для запросов метрик и шаблонных переменных метрик.
cloudwatch:GetMetricData Получает точки данных метрик для запросов и выражений метрик. Обязательно для запросов метрик.
cloudwatch:GetInsightRuleReport Получает данные из правил CloudWatch Contributor Insights. Опционально. Нужно только если вы запрашиваете правила Contributor Insights.
cloudwatch:DescribeAlarms, cloudwatch:DescribeAlarmsForMetric, cloudwatch:DescribeAlarmHistory Читает конфигурацию и историю alarms CloudWatch. Опционально. Нужно только если вы отображаете данные alarm.
pi:GetResourceMetrics Получает метрики Performance Insights для поддерживаемых ресурсов, например баз данных RDS. Опционально. Нужно только если вы запрашиваете метрики Performance Insights.
logs:DescribeLogGroups Перечисляет группы логов и заполняет селектор групп логов. Обязательно для запросов логов и шаблонной переменной Log Groups.
logs:StartQuery, logs:StopQuery, logs:GetQueryResults Выполняет запросы CloudWatch Logs Insights и получает их результаты. Обязательно для запросов логов.
logs:GetLogGroupFields Получает поля, доступные в группе логов, для автодополнения. Опционально. Улучшает работу редактора запросов логов.
logs:GetLogEvents Получает отдельные события логов. Опционально. Нужно только для запросов, читающих необработанные события логов.
logs:Unmask Раскрывает данные, замаскированные политикой защиты данных CloudWatch Logs. Опционально. Нужно только для просмотра замаскированных конфиденциальных данных.
ec2:DescribeRegions Перечисляет доступные регионы AWS. Опционально. Нужно только если вы полагаетесь на динамическое обнаружение регионов.
ec2:DescribeInstances, ec2:DescribeTags Определяет атрибуты и теги инстансов EC2 для переменных dimension и EC2. Опционально. Нужно только для шаблонных переменных EC2 Instance Attributes.
ec2:DescribeVolumes Определяет ID томов EBS для шаблонной переменной EBS Volume IDs. Опционально. Нужно только для шаблонных переменных EBS Volume IDs.
tag:GetResources Определяет ARN ресурсов для шаблонной переменной Resource ARNs. Опционально. Нужно только для шаблонных переменных Resource ARNs.
oam:ListSinks, oam:ListAttachedLinks Обнаруживает связанные учётные записи для наблюдаемости CloudWatch между учётными записями. Опционально. Нужно только для наблюдаемости между учётными записями.

Когда вы используете Assume Role ARN, привяжите эти разрешения на запросы к принимаемой роли. Основным учётным данным нужно только разрешение на выполнение sts:AssumeRole. Подробности см. в разделе Assume a role.

Защита данных CloudWatch Logs

CloudWatch Logs может защищать данные, применяя политики защиты данных групп логов. Когда защита данных включена для группы логов, любые конфиденциальные данные, соответствующие выбранным вами идентификаторам, автоматически маскируются. Чтобы просматривать замаскированные данные, ваша роль или пользователь IAM должны иметь разрешение logs:Unmask. Подробнее см. руководство AWS по маскированию конфиденциальных данных логов.

Настройка источника данных через grafana.ini

Файл конфигурации Grafana включает раздел AWS, где можно настроить параметры источника данных:

Параметр конфигурации Описание
allowed_auth_providers Задаёт список провайдеров аутентификации, разрешённых для источника данных CloudWatch, через запятую. Значение по умолчанию — default,keys,credentials: default (AWS SDK Default), keys (Access and secret key) и credentials (Credentials file). Провайдер ec2_iam_role (роль IAM EC2) также доступен, но не включён по умолчанию.
assume_role_enabled Позволяет отключить assume role (ARN) в источнике данных CloudWatch. Функция assume role (ARN) включена по умолчанию в open source Grafana.
per_datasource_http_proxy_enabled Позволяет каждому экземпляру источника данных CloudWatch использовать собственную конфигурацию HTTP-прокси для запросов к AWS вместо общего прокси. Отключено по умолчанию. Установите true, чтобы включить.
list_metrics_page_limit Задаёт лимит страниц API List Metrics. Когда в редакторе запросов указано пользовательское пространство имён, List Metrics API заполняет поля Metrics и Dimension. API разбит на страницы и возвращает до 500 результатов на страницу, а источник данных также по умолчанию ограничивает количество страниц до 500. Этот параметр настраивает указанный лимит.

Provisioning источника данных

Вы можете определять и настраивать источник данных в YAML-файлах в рамках системы provisioning Grafana. Дополнительную информацию о provisioning и доступных параметрах конфигурации см. в разделе Provision Grafana.

Использование AWS SDK (по умолчанию):

YAML
apiVersion: 1
datasources:
  - name: CloudWatch
    type: CloudWatch
    jsonData:
      authType: default
      defaultRegion: eu-west-2

Использование имени профиля учётных данных (не по умолчанию):

YAML
apiVersion: 1

datasources:
  - name: CloudWatch
    type: CloudWatch
    jsonData:
      authType: credentials
      defaultRegion: eu-west-2
      customMetricsNamespaces: 'CWAgent,CustomNameSpace'
      profile: secondary

Использование accessKey и secretKey:

YAML
apiVersion: 1

datasources:
  - name: CloudWatch
    type: CloudWatch
    jsonData:
      authType: keys
      defaultRegion: eu-west-2
    secureJsonData:
      accessKey: '<your access key>'
      secretKey: '<your secret key>'

Использование AWS SDK Default и ARN роли IAM для принятия:

YAML
apiVersion: 1
datasources:
  - name: CloudWatch
    type: CloudWatch
    jsonData:
      authType: default
      assumeRoleArn: arn:aws:iam::123456789012:root
      defaultRegion: eu-west-2

Настройка с помощью Terraform

Вы можете настроить источник данных CloudWatch с помощью Terraform и провайдера Grafana для Terraform.

Дополнительную информацию о provisioning ресурсов с помощью Terraform см. в разделе Grafana as code с помощью Terraform.

В следующем примере используется метод аутентификации Access and secret key:

hcl
resource "grafana_data_source" "cloudwatch" {
  name = "CloudWatch"
  type = "cloudwatch"

  json_data_encoded = jsonencode({
    authType      = "keys"
    defaultRegion = "eu-west-2"
  })

  secure_json_data_encoded = jsonencode({
    accessKey = "<YOUR_ACCESS_KEY>"
    secretKey = "<YOUR_SECRET_KEY>"
  })
}

В следующем примере используется метод аутентификации AWS SDK Default с принимаемой ролью:

hcl
resource "grafana_data_source" "cloudwatch" {
  name = "CloudWatch"
  type = "cloudwatch"

  json_data_encoded = jsonencode({
    authType      = "default"
    assumeRoleArn = "arn:aws:iam::123456789012:role/<ROLE_NAME>"
    defaultRegion = "eu-west-2"
  })
}

Замените плейсхолдеры своими значениями:

  • <YOUR_ACCESS_KEY> и <YOUR_SECRET_KEY>: access key ID и secret access key AWS для метода Access and secret key.
  • <ROLE_NAME>: имя роли IAM, которую нужно принять.

Все доступные параметры конфигурации см. в документации ресурса data source провайдера Grafana.