Устранение неполадок источника данных Amazon CloudWatch
В этом документе приведены решения распространённых проблем, с которыми вы можете столкнуться при настройке или использовании источника данных Amazon CloudWatch. Инструкции по настройке см. в разделе Настройка CloudWatch.
Note
Проверка работоспособности источника данных проверяет разрешения и для метрик, и для логов. Если ваша политика IAM предоставляет доступ только к одному из них (например, только к метрикам или только к логам), проверка работоспособности отобразит красный статус. Однако сервис, на который у вас есть разрешения, всё равно остаётся доступным — вы можете запрашивать метрики или логи в зависимости от того, какие разрешения настроены.
Ошибки аутентификации
Эти ошибки возникают, когда учётные данные AWS недействительны, отсутствуют или не имеют необходимых разрешений. Используйте следующую таблицу, чтобы сопоставить увиденное сообщение об ошибке с наиболее вероятной причиной и разделом, который поможет её устранить.
“Access Denied” or “Not authorized to perform this operation”
Симптомы:
- Save & test завершается ошибкой “Access Denied”
- Запросы возвращают ошибки авторизации
- Пространства имён, метрики или dimension не загружаются
Возможные причины и решения:
“InvalidClientTokenId” or “UnrecognizedClientException”
Симптомы:
- Save & test завершается ошибкой
InvalidClientTokenId: The security token included in the request is invalid - Запросы завершаются ошибкой
UnrecognizedClientException: The security token included in the request is invalid - Ошибка появляется внезапно, без каких-либо изменений конфигурации
Возможные причины и решения:
“Unable to assume role”
Симптомы:
- Аутентификация завершается ошибкой при использовании Assume Role ARN
- В ошибке упоминаются STS или AssumeRole, например
AccessDenied: User is not authorized to perform: sts:AssumeRole
Решения:
- Убедитесь, что доверительное отношение роли IAM позволяет учётным данным Grafana принять её.
- Проверьте, что trust policy содержит правильный principal (пользователя или роль, от имени которых работает Grafana).
- Если вы используете метод аутентификации Grafana Assume Role, убедитесь, что trust policy использует точный ID учётной записи AWS Grafana и external ID, указанные в информационном блоке на вкладке Settings источника данных. Указание другого ID учётной записи — распространённая ошибка, из-за которой запрос assume-role завершается неудачей.
- Если вы используете external ID, убедитесь, что он точно совпадает и в trust policy роли, и в конфигурации источника данных Grafana.
- Убедитесь, что основные учётные данные имеют разрешение
sts:AssumeRole. - Проверьте, что ARN роли указан верно и роль существует.
Пример trust policy:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<your-account-id>:user/<grafana-user>"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": "<your-external-id>"
}
}
}
]
}
“Save & test” passes but queries return no data
Симптомы:
- Save & test завершается успешно, но панели и редактор запросов не возвращают данных
- Пространства имён, метрики или dimension не загружаются, хотя проверка соединения прошла
- Проблема проявляется только при использовании Assume Role ARN
Возможные причины и решения:
Источник данных перестаёт работать примерно через час
Симптомы:
- Изначально источник данных работает, затем примерно через час запросы начинают завершаться ошибкой
- В ошибках упоминается истёкший или недействительный security token
- Повторное сохранение источника данных или перезапуск Grafana временно восстанавливает доступ, пока он снова не перестанет работать
Возможные причины и решения:
Access blocked by a VPC endpoint policy or service control policy
Симптомы:
- Учётные данные действительны и политика IAM разрешает действие, но запросы всё равно завершаются ошибкой
AccessDenied - В ошибке упоминается политика VPC endpoint, например
AccessDenied: ... no VPC endpoint policy allows the cloudwatch:ListMetrics action - Доступ не работает только изнутри VPC или в ограниченной учётной записи, например в среде FedRAMP
Возможные причины и решения:
AWS SDK Default authentication not working
Симптомы:
- Проверка источника данных завершается ошибкой при использовании AWS SDK Default
- Работает локально, но не работает в продакшене
Решения:
- Убедитесь, что учётные данные AWS настроены в среде, где работает Grafana.
- Проверьте наличие учётных данных в стандартных местах:
- Переменные окружения (
AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY) - Общий файл учётных данных (
~/.aws/credentials) - Метаданные инстанса EC2 (если работа идёт на EC2)
- Роль задачи ECS (если работа идёт в ECS)
- Сервисная учётная запись EKS (если работа идёт в EKS)
- Переменные окружения (
- Убедитесь, что у процесса Grafana есть разрешение на чтение файла учётных данных.
- Для EKS с IRSA настройте security context пода так, чтобы пользователь
472(grafana) имел доступ к проецируемому токену. Подробности см. в разделе Аутентификация AWS.
Credentials file not found
Симптомы:
- В ошибке указано, что файл учётных данных не удаётся прочитать
- Аутентификация завершается ошибкой при использовании опции “Credentials file”
Решения:
- Создайте файл учётных данных по пути
~/.aws/credentialsдля пользователя, под которым работает сервисgrafana-server. - Убедитесь, что файл имеет правильные разрешения (
0644). - Если файл существует, но не работает, переместите его в
/usr/share/grafana/и установите разрешения0644. - Убедитесь, что имя профиля в конфигурации источника данных совпадает с профилем в файле учётных данных.
Ошибки соединения
Эти ошибки возникают, когда Grafana не может достичь endpoints AWS CloudWatch.
“Request timed out” or connection failures
Симптомы:
- Проверка источника данных завершается по тайм-ауту
- Запросы завершаются ошибками тайм-аута
- Периодические проблемы с соединением
Решения:
- Проверьте сетевую связность между сервером Grafana и endpoints AWS.
- Проверьте, что правила firewall разрешают исходящий HTTPS (порт 443) к сервисам AWS.
- Если вы используете VPC, убедитесь в правильной настройке NAT gateway или VPC endpoint.
- Для Grafana Cloud, подключающегося к приватным ресурсам, настройте Private data source connect.
- Проверьте, правильно ли указан регион по умолчанию — неверные регионы могут вызывать более длительные тайм-ауты.
- Увеличьте настройки тайм-аута, если запросы обрабатывают большие объёмы данных.
Custom endpoint configuration issues
Симптомы:
- Соединение не устанавливается при использовании пользовательского endpoint
- URL endpoint отклонён
Решения:
- Убедитесь, что формат URL endpoint указан верно.
- Убедитесь, что endpoint доступен с сервера Grafana.
- Проверьте, что endpoint поддерживает необходимые API AWS.
- Для VPC endpoints убедитесь, что политика endpoint разрешает необходимые действия.
Ошибки запросов CloudWatch Metrics
Эти ошибки возникают при запросах к CloudWatch Metrics.
“No data” or empty results
Симптомы:
- Запрос выполняется без ошибок, но не возвращает данных
- Графики показывают сообщение “No data”
Возможные причины и решения:
“Metric not found” or metrics don’t appear in drop-down
Симптомы:
- Ожидаемые метрики не появляются в редакторе запросов
- Выпадающий список метрик пуст для пространства имён
- Конкретная метрика отсутствует в выпадающем списке, хотя она есть в консоли CloudWatch
Решения:
- Проверьте, что метрика существует в выбранном регионе.
- Для пользовательских метрик добавьте пространство имён в Namespaces of Custom Metrics в конфигурации источника данных.
- Проверьте, что политика IAM содержит разрешение
cloudwatch:ListMetrics. - CloudWatch ограничивает
ListMetricsдо 500 результатов на страницу. Чтобы получить больше метрик, увеличьте параметрlist_metrics_page_limitв файле конфигурации Grafana. - Введите имя метрики напрямую в поле Metric name. Для некоторых пространств имён AWS источник данных использует предопределённый список метрик, поэтому более новые или менее распространённые метрики могут не отображаться в выпадающем списке, хотя их всё равно можно запрашивать. Если метрика есть в вашей консоли CloudWatch, введите её точное имя, чтобы запросить её.
- Используйте Query Inspector, чтобы проверить запрос и ответ API.
Dimension values not loading
Симптомы:
- Выпадающий список значений dimension не заполняется
- Поиск по маске не возвращает результатов
Решения:
- Проверьте, что политика IAM содержит разрешение
cloudwatch:ListMetrics. - Проверьте, что пространство имён и метрика выбраны до того, как могут загрузиться значения dimension.
- Для dimensions EC2 убедитесь, что предоставлены разрешения
ec2:DescribeTagsиec2:DescribeInstances. - Значения dimension требуют существующих метрик — если ни одна метрика не совпадает, значения не появляются.
“Too many data points” or API throttling
Симптомы:
- Запросы завершаются ошибками throttling
- Производительность снижается при большом количестве панелей
Решения:
- Увеличьте значение period, чтобы уменьшить количество точек данных.
- Сократите диапазон времени ваших запросов.
- Используйте меньше dimensions или запросов по маске на панель.
- Запросите увеличение квоты на количество запросов
GetMetricDataв секунду в консоли AWS Service Quotas. - Включите кэширование запросов в Grafana, чтобы уменьшить количество вызовов API.
Этот раздел описывает throttling на уровне запроса. Общеаккаунтные ограничения скорости и увеличение квот см. в разделе Ошибки throttling API.
Metric math expression errors
Симптомы:
- Выражение возвращает ошибки
- Указанные метрики не найдены
Решения:
- Убедитесь, что у каждой указанной метрики задан уникальный ID.
- Проверьте, что ID метрик начинаются со строчной буквы и содержат только буквы, цифры и подчёркивания.
- Убедитесь, что все указанные метрики находятся в одном запросе.
- Проверьте, что синтаксис выражения соответствует документации AWS Metric Math.
- Выражения метрик нельзя использовать с оповещениями Grafana, если они ссылаются на другие строки запросов.
Ошибки запросов CloudWatch Logs
Эти ошибки возникают при запросах к CloudWatch Logs.
“Query failed” or logs don’t appear
Симптомы:
- Запросы к логам возвращают ошибки
- Данные логов не отображаются
Решения:
- Убедитесь, что имена групп логов указаны верно и существуют в выбранном регионе.
- Проверьте, что политика IAM содержит разрешения
logs:StartQuery,logs:GetQueryResultsиlogs:DescribeLogGroups. - Убедитесь, что диапазон времени содержит данные логов.
- Убедитесь, что синтаксис запроса корректен. Для CloudWatch Logs Insights QL протестируйте запрос в консоли AWS.
- Выберите правильный язык запросов (Logs Insights QL, OpenSearch PPL или OpenSearch SQL) в зависимости от синтаксиса вашего запроса.
Log query timeout
Симптомы:
- Запрос выполняется долго, затем завершается неудачей
- В ошибке упоминается тайм-аут
Решения:
- Увеличьте настройку Query Result Timeout в конфигурации источника данных (по умолчанию 30 минут).
- Сузьте диапазон времени, чтобы уменьшить объём сканируемых данных.
- Добавьте в запрос фильтры, чтобы ограничить результаты.
- Разбейте сложные запросы на меньшие, более целенаправленные.
- Для оповещений приоритет имеет тайм-аут, заданный в файле конфигурации Grafana.
Log groups not appearing in selector
Симптомы:
- Селектор групп логов пуст
- Не удаётся найти ожидаемые группы логов
Решения:
- Проверьте, что политика IAM содержит разрешение
logs:DescribeLogGroups. - Проверьте, что группы логов существуют в выбранном регионе.
- Для наблюдаемости между учётными записями убедитесь в правильности разрешений IAM для
oam:ListSinksиoam:ListAttachedLinks. - Используйте поиск по префиксу, чтобы отфильтровать группы логов, если групп много.
- Проверьте, что выбранная учётная запись (для работы между учётными записями) содержит ожидаемые группы логов.
OpenSearch SQL query errors
Симптомы:
- Запросы OpenSearch SQL завершаются неудачей
- Синтаксические ошибки в SQL-запросах
Решения:
-
Укажите идентификатор или ARN группы логов в предложении
FROM:SELECT * FROM `log_group_name` WHERE `@message` LIKE '%error%' -
Для нескольких групп логов используйте функцию
logGroups:SELECT * FROM `logGroups(logGroupIdentifier: ['LogGroup1', 'LogGroup2'])` -
Amazon CloudWatch поддерживает только подмножество команд OpenSearch SQL. Поддерживаемый синтаксис см. в документации CloudWatch Logs.
Ошибки шаблонных переменных
Эти ошибки возникают при использовании шаблонных переменных с источником данных CloudWatch.
Variables return no values
Симптомы:
- Выпадающий список переменной пуст
- Дашборд не загружается из-за ошибок переменных
Решения:
- Убедитесь, что соединение с источником данных работает.
- Проверьте, что политика IAM содержит разрешения для типа запроса переменной:
- Regions: дополнительные разрешения не нужны.
- Namespaces: дополнительные разрешения не нужны.
- Metrics: требуется
cloudwatch:ListMetrics. - Dimension Values: требуется
cloudwatch:ListMetrics. - EC2 Instance Attributes: требуется
ec2:DescribeInstances. - EBS Volume IDs: требуется
ec2:DescribeVolumes. - Resource ARNs: требуется
tag:GetResources. - Log Groups: требуется
logs:DescribeLogGroups.
- Для зависимых переменных убедитесь, что у родительских переменных выбраны допустимые значения.
- Убедитесь, что регион указан верно (используйте “default” для региона по умолчанию источника данных).
Дополнительную информацию о шаблонных переменных см. в разделе Шаблонные переменные CloudWatch.
Multi-value template variables cause query failures
Симптомы:
- Запросы завершаются ошибкой при выборе нескольких значений dimension
- Ошибка об ограничениях search expression
Решения:
- Search expressions ограничены 1024 символами. Уменьшите количество выбранных значений.
- Используйте подстановочный знак звёздочки (
*) вместо выбора “All”, чтобы запрашивать все метрики для dimension. - Шаблонные переменные с несколькими значениями поддерживаются только для значений dimension — не для Region, Namespace или Metric Name.
Ошибки наблюдаемости между учётными записями
Эти ошибки возникают при использовании возможностей наблюдаемости CloudWatch между учётными записями.
Cross-account queries fail
Симптомы:
- Не удаётся запрашивать метрики или логи из связанных учётных записей
- Значок monitoring account не отображается
Решения:
-
Убедитесь, что наблюдаемость между учётными записями настроена в консоли AWS CloudWatch.
-
Добавьте необходимые разрешения IAM:
{ "Version": "2012-10-17", "Statement": [ { "Action": ["oam:ListSinks", "oam:ListAttachedLinks"], "Effect": "Allow", "Resource": "*" } ] } -
Проверьте, что monitoring-учётная запись и source-учётные записи правильно связаны в AWS.
-
Наблюдаемость между учётными записями работает в пределах одного региона — убедитесь, что все учётные записи находятся в одном регионе.
-
EC2 Instance Attributes нельзя запрашивать между учётными записями, поскольку они используют API EC2, а не API CloudWatch.
Проблемы с квотами и стоимостью
Эти проблемы связаны с квотами сервисов AWS и управлением затратами.
API throttling errors
Симптомы:
- Ошибки “Rate exceeded”
- Панели дашборда периодически не загружаются
Решения:
- Уменьшите частоту обновления дашбордов.
- Увеличьте значение period, чтобы уменьшить количество запросов
GetMetricData. - Включите кэширование запросов в Grafana (доступно в Grafana Enterprise и Grafana Cloud).
- Запросите увеличение квоты в консоли AWS Service Quotas.
- Рассмотрите объединение похожих запросов с помощью метрик.
Если throttling возникает из-за того, что один запрос возвращает слишком много точек данных, см. раздел “Too many data points” или throttling API.
Unexpectedly high CloudWatch costs
Симптомы:
- Затраты на AWS CloudWatch выше ожидаемых
- Частые вызовы API из Grafana
Решения:
- API
GetMetricDataне попадает под бесплатный уровень API CloudWatch. - Уменьшите частоту автообновления дашбордов.
- Увеличьте значение period, чтобы уменьшить количество возвращаемых точек данных.
- Используйте кэширование запросов, чтобы уменьшить повторные вызовы API.
- Проверьте настройки запросов переменных — установите обновление переменной “On dashboard load” вместо “On time range change”.
- По возможности избегайте подстановочных знаков в dimensions, поскольку они порождают search expressions с несколькими вызовами API.
Другие распространённые проблемы
Эти проблемы не выдают конкретных сообщений об ошибках, но встречаются часто.
Custom metrics don’t appear
Симптомы:
- Пользовательские метрики из приложений или агентов не отображаются в выпадающем списке пространств имён
- Видны только стандартные пространства имён AWS
Решения:
- Добавьте пространство имён ваших пользовательских метрик в поле Namespaces of Custom Metrics в конфигурации источника данных.
- Разделяйте несколько пространств имён запятыми (например,
CWAgent,CustomNamespace). - Убедитесь, что пользовательские метрики опубликованы в CloudWatch в выбранном регионе.
Pre-configured dashboards not working
Симптомы:
- Импортированные дашборды не показывают данных
- Переменные дашборда не загружаются
Решения:
- Убедитесь, что имя источника данных в дашборде совпадает с вашим источником данных CloudWatch.
- Проверьте, что настройка региона AWS в дашборде соответствует региону, где находятся ваши ресурсы.
- Убедитесь, что политика IAM предоставляет доступ к необходимым сервисам (EC2, Lambda, RDS и т. д.).
- Убедитесь, что ресурсы существуют и отправляют метрики в выбранном регионе.
Application Signals trace links not appearing
Симптомы:
- Записи логов не показывают ссылки на трейсы Application Signals
- Поле
@xrayTraceIdне отображается
Решения:
- Убедитесь, что источник данных Application Signals настроен и связан в настройках источника данных CloudWatch.
- Убедитесь, что ваши логи содержат поле
@xrayTraceId. - Обновите запросы к логам, чтобы включить
@xrayTraceIdв поля, например:fields @message, @xrayTraceId. - Настройте ваше приложение на логирование ID трейсов Application Signals. См. документацию AWS Application Signals.
Включение отладочного логирования
Чтобы получить подробную информацию об ошибках для устранения неполадок:
-
Установите уровень логирования Grafana в
debugв файле конфигурации:[log] level = debug -
Проверьте логи в
/var/log/grafana/grafana.log(или в настроенном вами месте хранения логов). -
Ищите записи, специфичные для CloudWatch, которые содержат сведения о запросах и ответах.
-
После устранения неполадок верните уровень логирования в
info, чтобы избежать чрезмерного объёма логов.
Получение дополнительной помощи
Если вы попробовали описанные выше решения, но проблемы остались:
- Проверьте форумы сообщества Grafana на наличие похожих проблем.
- Просмотрите issues плагина CloudWatch на GitHub на наличие известных ошибок.
- Обратитесь к документации AWS CloudWatch за рекомендациями по сервису.
- Свяжитесь со службой поддержки Grafana, если вы пользователь Enterprise, Cloud Pro или Cloud Contracted.
- При сообщении о проблемах укажите:
- Версию Grafana
- Регион AWS
- Сообщения об ошибках (удалите конфиденциальную информацию)
- Шаги для воспроизведения
- Конфигурацию запроса (удалите учётные данные и ID учётных записей)