后端与接口
在 Grafana Cloud 中接入…
当需要把云厂商监控 API(AWS CloudWatch、Azure Monitor、Confluent Cloud 等)接入 Grafana Cloud,或排查云集成失败时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
在 Grafana Cloud 中接入 特定
解决思路
- 在 Grafana Cloud 中进入 Connections > Add new connection(或 Connections > Cloud Provider),选择 AWS CloudWatch、Azure Monitor、Confluent Cloud 或 All integrations 路径。
- AWS CloudWatch 托管导出器(轮询)方式:创建具备最小 IAM 权限的 IAM 用户或角色,权限包含 cloudwatch:GetMetricData、cloudwatch:GetMetricStatistics、cloudwatch:ListMetrics、tag:GetResources、ec2:DescribeInstances、ec2:DescribeRegions,Resource 为 *。
- 生成访问密钥对(IAM 用户)或配置跨账号角色扮演,然后在 Grafana Cloud 的 Connections > AWS > Configure hosted exporter 中填入 AWS Access Key ID、Secret Access Key、区域和要抓取的 CloudWatch 命名空间,2-3 分钟后开始抓取。
- AWS CloudWatch 支持 EC2、RDS、ELB/ALB、S3、Lambda、ECS、SQS、SNS、ElastiCache、Kinesis、DynamoDB 等 50+ 命名空间。
- AWS Firehose 接收器(流式)方式:在 Grafana Cloud 的 Connections > AWS > Firehose receiver 获取 HTTPS 端点 URL 和访问令牌。
- 在 AWS 中创建 Kinesis Firehose 投递流:目标为 HTTP endpoint,填入上一步的端点 URL 和访问密钥,内容编码设为 GZIP。
- 创建指向该 Firehose 流的 CloudWatch Metric Stream,输出格式设为 OpenTelemetry 1.0,选择或包含全部命名空间;日志则添加指向该 Firehose 流的 CloudWatch Logs 订阅过滤器。
- 可用 Terraform 配置 Firehose:定义 aws_cloudwatch_metric_stream(output_format = "opentelemetry1.0",可用 include_filter 限定命名空间)和 aws_kinesis_firehose_delivery_stream(destination = "http_endpoint",http_endpoint_configuration 中设置 url、access_key、content_encoding = "GZIP" 及 s3_configuration 备份)。
- Azure Monitor 集成:用 az ad sp create-for-rbac --name grafana-cloud-monitoring --role "Monitoring Reader" --scopes /subscriptions/<SUBSCRIPTION_ID> 创建服务主体,记录 appId、password、tenant。
- 在 Grafana Cloud 的 Connections > Azure > Configure hosted exporter 中填入 Tenant ID、Client ID、Client Secret、Subscription IDs,选择要监控的资源类型(VM、App Service、AKS、SQL 等),2-3 分钟后开始抓取。
- Azure 支持 Virtual Machines、App Service Plans、AKS、Azure SQL、CosmosDB、Storage Accounts、Event Hubs、Service Bus、Application Gateway 等资源类型。
- Confluent Cloud 集成:在 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(s)、Cluster ID(s),导出器每 60 秒抓取 Confluent Metrics API。
- Confluent 可用指标包括 Consumer lag、broker 请求速率、分区数、复制延迟、active controller count 及集群级健康指标。
- 验证集成:在 Grafana Explore 中查询对应 job 标签(AWS 用 {job="integrations/cloudwatch"},Azure 用 {job="integrations/azure-monitor"}),或用 curl 带 Authorization: Bearer <USER>:<API_KEY> 请求 Prometheus 的 /api/prom/api/v1/labels 并用 jq 过滤 aws_/azure_ 前缀标签。
- 在 Connections > [Integration name] > Status 查看集成状态,健康指标包括 Last successful scrape(应在 2 分钟内)、Series count(非零且稳定)、Error rate(应为 0%)。
- 每个集成会自动安装预置仪表盘和告警规则:在 Dashboards > Browse 中按集成名文件夹查找,在 Alerting > Alert rules 中按数据源或文件夹过滤。
- 不要直接编辑预置仪表盘(更新时可能被覆盖),应通过 Dashboard settings > Save as copy 复制后再编辑。
- 排查托管导出器无数据:用 curl 带 Authorization: Bearer <STACK_ID>:<API_TOKEN> 请求 https://integrations-api.grafana.net/api/v1/integrations,并用 jq 提取 name、status、lastScrapeTime、errorMessage。
- 常见错误处理:AWS AccessDenied 需在 IAM 策略中补充所需 action;Azure AuthorizationFailed 需在订阅上授予 Monitoring Reader;Confluent 401 Unauthorized 需重新输入凭据并确认是 Metrics API key;No metrics found 需在集成设置中添加命名空间/资源类型;Scrape timeout 需确保 Grafana Cloud 的 IP 能访问云厂商 API。
- AWS CloudWatch API 有速率限制,资源较多时应启用 Metric Streams(Option B)而非 API 轮询以避免限流。
- 通过指标过滤降低成本:AWS 在集成设置中从 All namespaces 切换为特定命名空间(如仅 EC2、RDS);AWS 可按资源标签过滤(discovery 中配置 type: AWS/EC2 及 filters 的 key/value);Azure 只启用实际有仪表盘的资源类型;使用 Adaptive Metrics 聚合掉未使用的标签维度。
适用边界 · 注意事项
- 需要先拥有 Grafana Cloud 账号并已开通对应云厂商集成功能,否则无法使用。
- 需要具备云厂商侧的权限(AWS IAM、Azure 服务主体、Confluent API key),无权限时无法完成配置。
- 不适用于自建 Grafana 或非 Grafana Cloud 的托管导出器场景。