ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Prometheus 监控阿里云与腾讯云全栈实战:从 ECS 到 CDN 的混合云可观测性

Prometheus 监控阿里云与腾讯云全栈实战:从 ECS 到 CDN 的混合云可观测性 Prometheus 监控阿里云与腾讯云全栈实战从 ECS 到 CDN 的混合云可观测性在混合云架构下阿里云和腾讯云承载着大量 ECS、RDS、Redis、SLB、CDN、CVM、CLB 等资源。它们的健康指标CPU、内存、网络、磁盘、连接数、QPS被封闭在各自的云监控平台中与自建 Prometheus 割裂。aliyun-exporter与tencentcloud-exporter正是打通这两大云平台的桥梁——它们通过云厂商的监控 API 周期性拉取指标转化为 Prometheus 标准格式让你在统一的可观测平台上洞察所有云资源的脉搏。本文将带你从零配置 RAM/CAM 权限、部署导出器、编写采集规则到构建 Grafana 大屏与告警规则实现异构云基础设施的完全透明化。1. 为什么需要云监控导出器原生云监控云监控导出器带来的增强指标散落在各云控制台无法关联所有云资源指标汇集于 Prometheus可统一查询与聚合告警渠道独立云监控告警使用 Alertmanager 统一路由告警避免多套通知仪表盘局限于云厂商内置结合 Grafana 强大定制能力创建跨云、跨区域动态看板无法与自建服务指标关联通过 PromQL 将云资源指标与应用指标关联快速定位瓶颈社区提供了成熟的aliyun-exporteraylei/aliyun-exporter和tencentcloud-exportertencentcloud/tencentcloud-exporter均支持数十种云产品配置灵活性能可靠。2. 阿里云监控aliyun-exporter 全流程2.1 配置 RAM 权限在阿里云 RAM 控制台创建只读权限的子账号生成 AccessKey ID 和 Secret。最小权限策略示例{Version:1,Statement:[{Action:[cms:DescribeMetricList,cms:DescribeMetricData,cms:DescribeMetricLast,cms:QueryMetricList],Resource:*,Effect:Allow}]}将 AccessKey ID、Secret 以及需要监控的区域 ID如cn-hangzhou准备好。2.2 部署 aliyun-exporterDocker 部署dockerrun-d\--namealiyun-exporter\-p9525:9525\-eALIYUN_ACCESS_IDyour_access_key\-eALIYUN_ACCESS_SECRETyour_secret_key\-eALIYUN_REGIONcn-hangzhou\-v/path/to/aliyun-exporter.yml:/etc/aliyun-exporter/aliyun-exporter.yml\aylei/aliyun-exporter:latestExporter 默认监听9525端口/metrics端点提供 Prometheus 指标。2.3 编写采集配置文件 (aliyun-exporter.yml)# aliyun-exporter.ymlperiod:60s# 拉取间隔regions:-cn-hangzhoumetrics:# ECS 实例-name:acs_ecs_dashboardnamespace:acs_ecs_dashboardperiod:60smeasures:-CPUUtilization-memory_usedutilization-DiskReadBPS-DiskWriteBPS-InternetIn-InternetOut# RDS 实例-name:acs_rds_dashboardnamespace:acs_rds_dashboardperiod:60smeasures:-CpuUsage-MemoryUsage-ConnectionUsage-DiskUsage-IOPSUsage# SLB 负载均衡-name:acs_slb_dashboardnamespace:acs_slb_dashboardperiod:60smeasures:-ActiveConnection-MaxConnection-PacketRX-PacketTX-TrafficRXNew-TrafficTXNew# Redis (Kvstore)-name:acs_kvstorenamespace:acs_kvstoreperiod:60smeasures:-CpuUsage-MemoryUsage-ConnectionUsage-IntranetIn-IntranetOut# CDN-name:acs_cdnnamespace:acs_cdnperiod:300smeasures:-QPS-BPS-hit_rate2.4 配置 Prometheus 抓取scrape_configs:-job_name:aliyunscrape_interval:60sstatic_configs:-targets:[aliyun-exporter:9525]labels:cloud:aliyunaccount:prod3. 腾讯云监控tencentcloud-exporter 全流程3.1 配置 CAM 权限在腾讯云 CAM 控制台创建子账号生成 SecretId 和 SecretKey。为其关联预设策略QcloudMonitorReadOnlyAccess即可读取所有监控数据。3.2 部署 tencentcloud-exporterDocker 部署dockerrun-d\--nametencentcloud-exporter\-p9526:9526\-eTENCENTCLOUD_SECRET_IDyour_secret_id\-eTENCENTCLOUD_SECRET_KEYyour_secret_key\-eTENCENTCLOUD_REGIONap-guangzhou\-v/path/to/tencentcloud-exporter.yml:/etc/tencentcloud-exporter/tencentcloud-exporter.yml\tencentcloud/tencentcloud-exporter:latestExporter 默认监听9526端口。3.3 编写采集配置文件 (tencentcloud-exporter.yml)# tencentcloud-exporter.ymlcredential:secret_id:${TENCENTCLOUD_SECRET_ID}secret_key:${TENCENTCLOUD_SECRET_KEY}metrics:# 云服务器 CVM-tc_namespace:QCE/CVMtc_metric_name:CpuUsagetc_statistics:-Averageperiod:60range:300delay:120dimensions:-InstanceId-tc_namespace:QCE/CVMtc_metric_name:MemUsagetc_statistics:-Averageperiod:60range:300delay:120-tc_namespace:QCE/CVMtc_metric_name:WanIntraffictc_statistics:-Sumperiod:60-tc_namespace:QCE/CVMtc_metric_name:WanOuttraffictc_statistics:-Sumperiod:60# 云数据库 TencentDB for MySQL-tc_namespace:QCE/CDBtc_metric_name:CpuUseRatetc_statistics:-Averageperiod:60-tc_namespace:QCE/CDBtc_metric_name:MemoryUseRatetc_statistics:-Averageperiod:60-tc_namespace:QCE/CDBtc_metric_name:ConnectionUseRatetc_statistics:-Averageperiod:60-tc_namespace:QCE/CDBtc_metric_name:VolumeRatetc_statistics:-Averageperiod:60# 云数据库 Redis (TencentDB for Redis)-tc_namespace:QCE/REDIStc_metric_name:CpuUsMintc_statistics:-Averageperiod:60-tc_namespace:QCE/REDIStc_metric_name:MemUsedtc_statistics:-Averageperiod:60-tc_namespace:QCE/REDIStc_metric_name:Connectionstc_statistics:-Averageperiod:60# 负载均衡 CLB-tc_namespace:QCE/LBtc_metric_name:ConNumtc_statistics:-Averageperiod:60-tc_namespace:QCE/LBtc_metric_name:InPkgtc_statistics:-Sumperiod:60-tc_namespace:QCE/LBtc_metric_name:OutPkgtc_statistics:-Sumperiod:60# CDN-tc_namespace:QCE/CDNtc_metric_name:Cdn_bandwidthtc_statistics:-Sumperiod:300-tc_namespace:QCE/CDNtc_metric_name:Cdn_requeststc_statistics:-Sumperiod:3003.4 配置 Prometheus 抓取scrape_configs:-job_name:tencentcloudscrape_interval:60sstatic_configs:-targets:[tencentcloud-exporter:9526]labels:cloud:tencentaccount:prod4. 核心监控指标与 PromQL阿里云指标示例产品Prometheus 指标名含义ECSaliyun_acs_ecs_dashboard_CPUUtilization_avg{instanceIdi-xxx}CPU 使用率 (%)ECSaliyun_acs_ecs_dashboard_memory_usedutilization_avg内存使用率 (%)RDSaliyun_acs_rds_dashboard_CpuUsage_avgCPU 使用率SLBaliyun_acs_slb_dashboard_ActiveConnection_avg活跃连接数Redisaliyun_acs_kvstore_MemoryUsage_avg内存使用率PromQL 示例ECS CPU 85%aliyun_acs_ecs_dashboard_CPUUtilization_avg 85RDS 连接使用率 80%aliyun_acs_rds_dashboard_ConnectionUsage_avg 80SLB 入带宽 (Mbps)rate(aliyun_acs_slb_dashboard_TrafficRXNew_sum[5m]) * 8 / 1024 / 1024腾讯云指标示例产品Prometheus 指标名含义CVMqce_cvm_CpuUsage_avg{instance_idins-xxx}CPU 使用率CVMqce_cvm_MemUsage_avg内存使用率TencentDB MySQLqce_cdb_CpuUseRate_avgCPU 使用率TencentDB MySQLqce_cdb_VolumeRate_avg磁盘使用率CLBqce_lb_ConNum_avg并发连接数Redisqce_redis_MemUsed_avg内存使用量PromQL 示例CVM CPU 80%qce_cvm_CpuUsage_avg 80CDB 磁盘使用率 85%qce_cdb_VolumeRate_avg 85CLB 入包速率 (pps)rate(qce_lb_InPkg_sum[5m])5. Grafana 仪表盘推荐阿里云资源总览Dashboard ID13905社区贡献涵盖 ECS、RDS、SLB、Redis腾讯云 CVM 监控ID14431CVM 专用腾讯云 CDB 监控ID14567混合云综览大屏自建面板使用变量cloud、region、instance切换将阿里云和腾讯云核心资源放在同一行展示 CPU Top10、带宽趋势、错误率等。导入后选择数据源分别关联aliyun和tencentcloudjob。6. 告警规则实战阿里云告警groups:-name:aliyun_alertsrules:-alert:AliyunEcsHighCPUexpr:aliyun_acs_ecs_dashboard_CPUUtilization_avg85for:10mlabels:severity:warningannotations:summary:阿里云 ECS {{ $labels.instanceId }} CPU 使用率超过 85%-alert:AliyunRdsHighDiskUsageexpr:aliyun_acs_rds_dashboard_DiskUsage_avg85for:10mlabels:severity:criticalannotations:summary:阿里云 RDS {{ $labels.instanceId }} 磁盘使用率超过 85%-alert:AliyunRedisHighMemoryexpr:aliyun_acs_kvstore_MemoryUsage_avg80for:5mlabels:severity:warningannotations:summary:阿里云 Redis {{ $labels.instanceId }} 内存使用率超过 80%腾讯云告警groups:-name:tencentcloud_alertsrules:-alert:TencentCvmHighCPUexpr:qce_cvm_CpuUsage_avg80for:10mlabels:severity:warningannotations:summary:腾讯云 CVM {{ $labels.instance_id }} CPU 使用率超过 80%-alert:TencentCdbDiskFullexpr:qce_cdb_VolumeRate_avg85for:10mlabels:severity:criticalannotations:summary:腾讯云 CDB {{ $labels.instance_id }} 磁盘使用率超过 85%-alert:TencentClbConnsHighexpr:qce_lb_ConNum_avg10000for:5mlabels:severity:warningannotations:summary:腾讯云 CLB {{ $labels.instance_id }} 并发连接数超过 100007. 进阶多账户、成本控制与混合云统一7.1 多账户/多区域监控为每个云账户、每个区域部署独立的 Exporter 实例容器在 Prometheus 中通过account、region标签区分。使用 Ansible 或 Helm 批量管理。7.2 降低 API 调用成本云监控 API 通常按请求次数或时间序列数计费。优化建议适当增加period如 120s 或 300s减少拉取频率。使用资源组或标签过滤避免拉取全部实例。对于非实时告警指标如 CDN 带宽可进一步放宽间隔。7.3 标签注入与 CMDB 关联Exporter 支持通过配置将云资源的标签如业务部门、项目转化为 Prometheus 标签。在 Grafana 中即可按业务维度聚合告警。7.4 与 Node Exporter / cAdvisor 互补云监控提供的是虚拟化层面的“主机级”指标而 Node Exporter 给出 OS 内部视角。两者结合可校验“云平台 CPU 使用率 70%但操作系统空闲 90%”等异常快速定位是云平台底层抖动还是自身业务导致。8. 总结通过 aliyun-exporter 和 tencentcloud-exporter阿里云与腾讯云的资源监控数据真正融入了 Prometheus 开放生态。无论是 ECS 的 CPU 负载、RDS 的连接余量还是 CDN 的带宽峰值现在都能在同一套 Grafana 面板和 Alertmanager 告警中洞察。混合云不再是监控的鸿沟而是可观测性拼图中浑然一体的一部分。部署这套方案让每一朵云都透明如私有机房让云上运维拥有前所未有的全局掌控力。
返回列表