关于 cloud-integrations
介绍如何配置 Grafana Cloud Integrations,通过托管导出器或 AWS Firehose 收集云服务指标。帮助运维人员接入 AWS、Azure、Confluent Cloud 和经过认证的 Prometheus 格式端点,并验证及调整采集数据。
主要功能
- 01支持 AWS、Azure 和 Confluent 托管导出器
- 02通过 AWS Firehose 摄取指标与日志
- 03接入通用认证 Prometheus 端点
- 04检查集成状态与数据
- 05预配置仪表板和告警规则
- 06指标筛选指南
适用场景
- 01在 Grafana Cloud 收集 AWS CloudWatch 指标
- 02通过 Firehose 流式传输 CloudWatch 指标和日志
- 03监控 Azure 或 Confluent Cloud 资源
- 04检查集成健康状况并减少指标量
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ grafana/ skills --skill cloud-integrations安装后在 Claude Code 中输入/cloud-integrations确认已加载。
详细介绍
Grafana Cloud 集成
Grafana Cloud 集成可将云服务提供商的监控 API 接入 Grafana 技术栈,无需运行自己的导出器。托管导出器会代您抓取云 API,并将指标推送到您的 Grafana Cloud 技术栈。
支持的托管导出器:
- AWS CloudWatch - 通过 YACE(Yet Another CloudWatch Exporter)支持所有 CloudWatch 命名空间
- Azure Monitor - 通过 Azure Monitor API 获取 Azure 资源指标
- Confluent Cloud - 通过 Confluent Metrics API 获取 Kafka 集群指标
- 通用 HTTP 端点 - 任何经过身份验证的 Prometheus 格式
/metrics端点
AWS Firehose 接收器 - 接收通过 Kinesis Firehose 推送的 CloudWatch Logs 和 Metrics Streams(近实时,延迟低于 API 抓取)。
第 1 步:前往 Connections
在 Grafana Cloud 中:Connections > Add new connection(或 Connections > Cloud Provider)。
可用路径:
- AWS CloudWatch - 托管导出器 + 可选的 Firehose 接收器
- Azure Monitor - 托管导出器
- Confluent Cloud - 托管导出器
- All integrations - 完整目录,包括 Linux、MySQL、Kubernetes 等
第 2 步:AWS CloudWatch 集成
选项 A:托管导出器(轮询)
托管导出器每 60s 抓取一次 CloudWatch API。延迟:约 1-5 分钟。
所需的 IAM 权限(最低要求):
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cloudwatch:GetMetricData",
"cloudwatch:GetMetricStatistics",
"cloudwatch:ListMetrics",
"tag:GetResources",
"ec2:DescribeInstances",
"ec2:DescribeRegions"
],
"Resource": "*"
}
]
}
设置步骤:
- 创建一个具有上述策略的 IAM 用户或角色
- 生成一对访问密钥(适用于 IAM 用户),或配置跨账户角色代入
- 在 Grafana Cloud 中:Connections > AWS > Configure hosted exporter
- 输入:AWS Access Key ID、Secret Access Key、区域、要抓取的 CloudWatch 命名空间
- Grafana 将配置导出器,并在 2-3 分钟内开始抓取
支持的命名空间: EC2、RDS、ELB/ALB、S3、Lambda、ECS、SQS、SNS、ElastiCache、 Kinesis、DynamoDB,以及其他 50 多个命名空间。
选项 B:AWS Firehose 接收器(流式传输)
通过 CloudWatch Metric Streams 和 CloudWatch Logs 订阅实现近实时指标与日志传输。
架构:
CloudWatch Metric Streams → Kinesis Firehose → Grafana Cloud Firehose Receiver
CloudWatch Logs (subscription filter) → Kinesis Firehose → Grafana Cloud Firehose Receiver
设置:
- 在 Grafana Cloud 中:Connections > AWS > Firehose receiver
- Grafana 会提供 HTTPS 端点 URL 和访问令牌
- 在 AWS 中创建 Kinesis Firehose 传输流:
- 目标:HTTP 端点
- 端点 URL:(来自第 2 步)
- 访问密钥:(来自第 2 步)
- 内容编码:GZIP
- 创建一个指向 Firehose 流的 CloudWatch Metric Stream:
- 输出格式:
OpenTelemetry 1.0 - 命名空间:选择命名空间或包含全部
- 输出格式:
- 对于日志:添加一个指向 Firehose 流的 CloudWatch Logs 订阅筛选器
Firehose 设置的 Terraform 配置:
resource "aws_cloudwatch_metric_stream" "grafana_cloud" {
name = "grafana-cloud-metrics"
role_arn = aws_iam_role.firehose_role.arn
firehose_arn = aws_kinesis_firehose_delivery_stream.grafana.arn
output_format = "opentelemetry1.0"
# Optionally scope to specific namespaces
# include_filter { namespace = "AWS/EC2" }
# include_filter { namespace = "AWS/RDS" }
}
resource "aws_kinesis_firehose_delivery_stream" "grafana" {
name = "grafana-cloud-stream"
destination = "http_endpoint"
http_endpoint_configuration {
url = var.grafana_firehose_endpoint
access_key = var.grafana_firehose_access_key
name = "Grafana Cloud"
content_encoding = "GZIP"
s3_configuration {
role_arn = aws_iam_role.firehose_role.arn
bucket_arn = aws_s3_bucket.firehose_backup.arn
}
}
}
第 3 步:Azure Monitor 集成
所需的 Azure 权限:
创建一个服务主体,并在要监控的订阅上为其分配 Monitoring Reader 角色。
# Create service principal
az ad sp create-for-rbac --name grafana-cloud-monitoring \
--role "Monitoring Reader" \
--scopes /subscriptions/<SUBSCRIPTION_ID>
# Output: appId (client ID), password (client secret), tenant
在 Grafana Cloud 中设置:
- Connections > Azure > Configure hosted exporter
- 输入:Tenant ID、Client ID、Client Secret、Subscription IDs
- 选择要监控的资源类型(VM、App Services、AKS、SQL 等)
- 导出器将在 2-3 分钟内开始抓取
支持的资源类型: Virtual Machines、App Service Plans、AKS、Azure SQL、CosmosDB、 Storage Accounts、Event Hubs、Service Bus、Application Gateway 等。
第 4 步:Confluent Cloud 集成
所需的 Confluent API 凭据:
- 在 Confluent Cloud 中:Environment > API Keys(或组织级的 Cloud API Keys)
- 创建一个具有
MetricsViewer角色的 Metrics API key(不是 Kafka API key) - 记下 API Key 和 Secret
在 Grafana Cloud 中设置:
- Connections > Confluent > Configure hosted exporter
- 输入:Confluent API Key、API Secret、Environment ID、Cluster ID
- 导出器每 60s 抓取一次 Confluent Metrics API
可用指标: 消费者延迟、代理请求速率、分区数、复制延迟、活动控制器数量,以及集群级运行状况指标。
步骤 5:验证集成是否正常运行
# Check in Grafana Explore — query for the integration's job label
# For AWS:
{job="integrations/cloudwatch"}
# For Azure:
{job="integrations/azure-monitor"}
# Check metric arrival (replace with your stack's Prometheus endpoint)
curl -s -H "Authorization: Bearer <USER>:<API_KEY>" \
"https://prometheus-prod-XX-XX-X.grafana.net/api/prom/api/v1/labels" | \
jq '.data | map(select(startswith("aws_") or startswith("azure_")))'
也可以在 Connections > [Integration name] > Status 中查看集成状态。
集成运行状况指标:
Last successful scrape- 应在最近 2 分钟内Series count- 应非零且保持稳定Error rate- 应为 0%
步骤 6:预置仪表板和告警
每个集成都会自动安装一组预配置的仪表板和告警规则。
查找已安装的仪表板:
- Dashboards > Browse > 以集成命名的文件夹(例如 “AWS CloudWatch”)
查找已安装的告警规则:
- Alerting > Alert rules > 按数据源或文件夹筛选
修改内容且不丢失更新:
- 不要直接编辑已配置的仪表板(更新时可能会被覆盖)
- 复制仪表板(Dashboard settings > Save as copy)
- 编辑副本
步骤 7:排查集成故障
托管导出器未接收到数据:
# Check the integration status via Grafana Cloud API
curl -s -H "Authorization: Bearer <STACK_ID>:<API_TOKEN>" \
"https://integrations-api.grafana.net/api/v1/integrations" | \
jq '.integrations[] | {name, status, lastScrapeTime, errorMessage}'
常见错误:
| 错误 | 原因 | 解决方法 |
|---|---|---|
AccessDenied (AWS) | IAM 策略缺少权限 | 将所需操作添加到 IAM 策略中 |
AuthorizationFailed (Azure) | 服务主体缺少角色 | 为订阅授予 Monitoring Reader 角色 |
401 Unauthorized (Confluent) | API 凭据错误 | 重新输入凭据;确认使用的是 Metrics API 密钥(而非 Kafka 密钥) |
No metrics found | 选择的命名空间/资源类型错误 | 在集成设置中添加该命名空间 |
Scrape timeout | 网络限制 | 确保 Grafana Cloud 的 IP 地址可以访问云提供商 API |
AWS 专属:CloudWatch API 速率限制
CloudWatch GetMetricData 有速率限制。如果资源数量很多,请启用 Metric Streams (选项 B),而不要通过 API 轮询,以避免触发限流。
步骤 8:通过指标筛选降低成本
默认情况下,托管导出器会抓取所有指标。筛选指标可以减少序列数量和成本。
AWS - 选择特定命名空间: 在集成设置中,将 “All namespaces” 切换为特定命名空间(例如仅选择 EC2、RDS)。
AWS - 按资源标签筛选:
# In exporter configuration, add tag filters
discovery:
- type: AWS/EC2
filters:
- key: Environment
values: ["production"]
Azure - 选择特定资源类型: 仅启用实际有对应仪表板的资源类型。
使用 Adaptive Metrics 聚合掉未使用的标签维度:
请参阅 grafana-cloud/adaptive-metrics 技能。