腾讯云国际版计算服务可观测性实战:CVM、TKE容器、GPU集群全栈监控体系搭建

📅 · AWS 国际版实战教程 - ChengziCloud

一句话结论

在云计算时代,企业上云只是第一步,真正考验运维能力的是如何让云上业务持续稳定运行。

本文要点
  • 引言:为什么可观测性是云原生架构的第一道防线
  • 腾讯云国际版可观测性产品矩阵
  • 第一层:CVM云服务器监控体系搭建
  • 第二层:TKE容器服务全栈可观测
  • 第三层:弹性伸缩AS联动监控
  • 第四层:Lighthouse轻量应用服务器监控
  • 第五层:GPU云服务器专项监控
  • 统一可观测性平台搭建

引言:为什么可观测性是云原生架构的第一道防线

在云计算时代,企业上云只是第一步,真正考验运维能力的是如何让云上业务持续稳定运行。腾讯云国际版提供了CVM云服务器、TKE容器服务、弹性伸缩AS、Lighthouse轻量应用服务器以及GPU云服务器等丰富的计算产品矩阵,但很多团队在部署完这些服务后,面对的第一个难题就是:如何全面、实时地掌握这些分布式资源的运行状态?

传统的"出问题→查日志→打补丁"式运维已经无法满足现代业务需求。可观测性(Observability)作为云原生架构的核心支柱,通过指标(Metrics)、日志(Logs)、链路追踪(Traces)三根支柱,让运维团队从被动响应转向主动预防。本文将带你从零搭建一套覆盖CVM、TKE、AS、Lighthouse和GPU集群的全栈监控体系。

腾讯云国际版可观测性产品矩阵

在开始动手之前,先梳理腾讯云国际版提供的内置可观测性工具:

产品核心能力适用场景计费模式
云监控 CM基础指标采集、告警策略、Dashboard所有计算实例的基础监控免费(基础指标)
Prometheus 监控服务 TMP托管式 Prometheus、Grafana 集成TKE集群、自定义业务指标按数据量计费
日志服务 CLS日志采集、检索分析、投递全场景日志管理按写入量/存储量
APM 应用性能监控调用链追踪、拓扑发现微服务架构性能分析按Span量计费
云拨测 CAT主动探测、网络质量监控外网可用性检测按拨测次数

第一层:CVM云服务器监控体系搭建

基础监控指标采集

CVM 实例创建后,云监控会自动采集 CPU 利用率、内存使用率、磁盘 IO、网络流量等基础指标,数据粒度为 1 分钟。但如果要获得秒级监控和进程级指标,需要安装云监控 Agent:


# 腾讯云国际版 CVM 上安装统一监控 Agent
wget https://mirrors.tencent.com/install/monitor/agent/tat_agent_install.sh
bash tat_agent_install.sh

# 安装后验证
systemctl status tat_agent

安装 Agent 后,可以在云监控控制台看到进程列表、端口监控、内存 Top 进程等增强指标。

自定义告警策略设计

CVM 监控最常见的误区是告警阈值设置过高或等于资源极限值。正确的做法是设置多级告警:

告警级别CPU 阈值内存阈值磁盘阈值通知方式
提醒> 60% 持续 5 分钟> 70%> 75%邮件
警告> 80% 持续 5 分钟> 85%> 85%邮件 + 短信
严重> 95% 持续 3 分钟> 95%> 92%邮件 + 短信 + 电话

实战技巧:为每台 CVM 创建"心跳检测"告警——当 Agent 超过 3 分钟未上报数据时触发告警,这比被动等待用户反馈"服务器连不上了"要提前至少 10 分钟。

第二层:TKE容器服务全栈可观测

Prometheus + Grafana 标准化部署

TKE 容器环境的监控比 CVM 复杂一个数量级——Pod 动态创建销毁、服务间网络调用、资源超卖等问题需要专业的云原生监控方案。腾讯云国际版 TMP(Tencent Managed Prometheus)提供了开箱即用的托管 Prometheus:


# 在 TKE 集群中启用 Prometheus 监控
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: app-monitor
  namespace: production
spec:
  selector:
    matchLabels:
      app: my-microservice
  endpoints:
    - port: metrics
      interval: 30s
      path: /metrics

关键容器指标看板

在 Grafana 中创建以下核心看板面板:

面板名称关键指标告警阈值参考
Pod 资源水位container_cpu_usage_seconds_total, container_memory_working_set_bytesCPU request > 80%, Memory > 85%
集群节点健康node_load15, node_filesystem_avail_bytesLoad15 > 核数×1.5
POD OOMKilled 统计kube_pod_container_status_terminated_reason任意非零值即触发
PVC 磁盘使用率kubelet_volume_stats_used_bytes / kubelet_volume_stats_capacity_bytes> 80%
网络流量 Top Ncontainer_network_transmit_bytes_total环比增长 > 200%

实战坑点:TKE 集群中,kube-state-metrics 的 kube_pod_status_phase 指标在 Pod 被快速重建时可能漏报。建议同时监控 kube_pod_container_status_restarts_total,当任一 Pod 在 5 分钟内重启超过 2 次立即告警。

第三层:弹性伸缩AS联动监控

伸缩组监控与冷却策略

弹性伸缩 AS 本身不产生业务指标,但它决定了你的 CVM/TKE 节点池能否在流量洪峰时顶住压力。AS 的关键监控点包括:

  • 伸缩活动记录:每次扩容/缩容的时间戳、原因、结果
  • 伸缩组实例健康状态:通过 CLB 健康检查联动
  • 冷却时间配置:扩容冷却默认 300 秒,缩容冷却默认 300 秒——太短会导致抖动,太长浪费资源

伸缩效率黄金指标

指标计算方式健康标准
扩容响应时间告警触发 → 新实例 Ready< 5 分钟
扩容成功率成功次数 / 触发次数> 99%
缩容抖动率缩容后 10 分钟内再次扩容的次数< 5%
平均闲置比(总核数 - 实际使用核数)/ 总核数控制在 15%-25%

实战案例:某电商业务设置 CPU > 70% 触发扩容,但因应用启动时 Java 类加载导致前 2 分钟 CPU 飙升至 90%,扩容触发后又迅速回落,形成"扩容-缩容-扩容"的抖动循环。解决方案是将冷却时间调整为 600 秒,并将触发条件改为"CPU > 70% 且持续 5 分钟"。

第四层:Lighthouse轻量应用服务器监控

Lighthouse 的特殊性

Lighthouse 定位是"开箱即用的轻量云服务器",集成了计算、存储和网络,但其监控能力和标准 CVM 有所不同:

能力标准 CVMLighthouse
基础监控(CPU/内存/磁盘)✅ 完整✅ 完整
自定义 Agent 安装✅ 支持✅ 支持
云监控 Dashboard✅ 完整✅ 基础版
进程级监控✅ 支持✅ 支持
自定义告警✅ 灵活✅ 基础

Lighthouse 监控最佳实践

由于 Lighthouse 常用于个人开发者项目、中小型企业官网、轻量级 API 服务等场景,监控重点应放在:

  1. 应用层健康检查:使用云拨测 CAT 对 Lighthouse 上的 Web 服务做 5 分钟一次的外网拨测
  2. 流量包余量监控:Lighthouse 按月流量包计费,流量耗尽可能导致服务不可达。设置流量包使用率 > 80% 告警
  3. 证书到期监控:如果 Lighthouse 上部署了 HTTPS 站点,监控 SSL 证书到期时间(提前 30 天告警)

# Lighthouse 上查看流量使用情况
tccli lighthouse DescribeInstancesTrafficPackages --region ap-singapore

第五层:GPU云服务器专项监控

GPU 监控的独特挑战

GPU 云服务器的监控远比普通 CVM 复杂——除了常规的 CPU/内存/磁盘指标,还需要采集:

  • GPU 利用率(nvidia-smi 中的 GPU-Util)
  • 显存使用量(Memory-Usage)
  • GPU 温度(Temperature)
  • PCIe 吞吐量
  • ECC 错误计数

基于 DCGM 的 GPU 监控方案

NVIDIA DCGM(Data Center GPU Manager)是 GPU 监控的事实标准。在腾讯云 GPU 实例上部署:


# 安装 NVIDIA DCGM
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/datacenter-gpu-manager_3.3.6_amd64.deb
dpkg -i datacenter-gpu-manager_3.3.6_amd64.deb

# 启动 DCGM 服务
systemctl start nvidia-dcgm
systemctl enable nvidia-dcgm

# 验证 GPU 指标暴露(9400 端口)
dcgmi discovery -l
curl http://localhost:9400/metrics | grep DCGM_FI_DEV_GPU_UTIL

GPU 核心告警策略

告警项条件严重程度响应动作
GPU 利用率异常低< 10% 持续 10 分钟警告检查训练任务是否卡死
显存接近满载> 95%严重检查显存泄漏,考虑使用混合精度
GPU 温度过高> 85°C 持续 5 分钟严重降低 batch size,检查散热
ECC 错误增长5 分钟内增长 > 10严重迁移任务,准备 RMA
单 GPU 与集群平均偏差> 30%警告检查该 GPU 是否降频或故障

实战经验:在分布式训练场景中,如果一块 GPU 的利用率持续低于同批次其他 GPU 的 70%,通常是网络瓶颈导致该节点的数据加载延迟。排查思路:先检查 nvidia-smi topo -m 拓扑,再检查 RDMA 网络带宽。

统一可观测性平台搭建

三层架构设计

将所有监控数据汇聚到一个统一的平台,推荐以下架构:


┌─────────────────────────────────────────────────┐
│              Grafana 统一可视化层                │
│   (CVM Dashboard / TKE Dashboard / GPU Dash)     │
├─────────────────────────────────────────────────┤
│              告警聚合 + 通知路由层                 │
│    (Prometheus AlertManager / CLS 告警策略)       │
├──────────┬──────────┬──────────┬────────────────┤
│  CVM 监控 │ TKE 监控  │ GPU 监控  │ Lighthouse 监控 │
│  (TMP)   │ (TMP)    │ (DCGM)   │ (CM + CAT)    │
├──────────┴──────────┴──────────┴────────────────┤
│              日志统一采集层 (CLS)                  │
└─────────────────────────────────────────────────┘

Grafana 统一大屏设计

创建一张"腾讯云国际版计算资源全局视图"Dashboard,包含:

  1. 顶部状态条:所有实例总数、健康数/异常数、本月告警总数
  2. CVM 资源热力图:按可用区分组的 CPU/内存使用率热力图
  3. TKE 集群拓扑:节点 → Namespace → Deployment → Pod 层级下钻
  4. AS 活动时间线:最近 24 小时的伸缩事件时间轴
  5. GPU 训练任务看板:当前运行任务数、GPU 平均利用率、显存使用趋势
  6. Lighthouse 服务可用性:外网拨测成功率面板

成本优化:监控本身的成本控制

可观测性平台本身也会产生成本,以下是常见优化手段:

优化策略预期节省实现方式
Prometheus 指标聚合30%-50%使用 Recording Rules 预聚合高频指标
日志采样40%-60%CLS 中配置非 ERROR 级别日志的采样率
数据保留策略20%-30%原始数据保留 7 天,聚合数据保留 30 天
告警静默窗口减少噪音维护窗口期设置 AlertManager Silence

# Prometheus Recording Rules 示例:预聚合 CPU 使用率
groups:
  - name: cpu_aggregation
    interval: 60s
    rules:
      - record: namespace:cpu_usage:avg1m
        expr: avg by (namespace) (rate(container_cpu_usage_seconds_total[1m]))

实战场景:电商大促前的全链路压测与监控

以一个典型的电商场景为例,展示完整的可观测性工作流:

压测前准备

  1. 建立基线:采集过去 7 天各服务的 QPS、延迟 P99、错误率基线
  2. AS 策略调整:将 CVM 伸缩组的最大实例数临时提升至平日的 3 倍
  3. TKE HPA 预热:将 HPA 的最小 Pod 数提升至平日的 2 倍
  4. 告警静默:对已知的压测预期告警设置临时静默

压测中实时监控

  • 重点关注 TKE Pod 的重启次数和 OOMKilled 事件
  • 监控 CLB 的 4xx/5xx 错误率
  • 观察 AS 伸缩活动的响应速度

压测后复盘

  • 导出 Grafana 快照作为压测报告附件
  • 分析瓶颈点:是 CVM 规格不够、TKE 调度延迟、还是 GPU 显存不足
  • 基于压测数据调整生产环境的告警阈值

常见问题排查手册

现象可能原因排查路径
CVM CPU 100% 但业务正常可能是批处理任务用 top -c 查看进程,确认是否为预期任务
TKE Pod 频繁重启内存超限或健康检查失败查看 kubectl describe pod 的 Events
AS 不触发扩容告警策略未关联伸缩组检查云监控 → 告警策略 → 关联对象
Lighthouse 突然不可达流量包耗尽或防火墙变更登录 Lighthouse 控制台查看流量包余量
GPU 利用率上不去数据加载成为瓶颈检查 nvidia-smi dmon -s pucv 确认 GPU 是否在等待 I/O

总结与展望

腾讯云国际版的CVM、TKE、AS、Lighthouse和GPU云服务器构成了一个强大的计算服务矩阵,但要真正发挥其威力,可观测性体系的建设不可缺失。本文从单机监控到集群监控,从基础指标到GPU专项指标,构建了一套完整的全栈监控方案。

核心要点回顾:

  1. CVM 监控以云监控为基础,Agent 增强获取进程级指标,多级告警防误报
  2. TKE 监控以 Prometheus + Grafana 为标准方案,关注 Pod 生命周期和资源水位
  3. AS 伸缩监控侧重于伸缩效率和抖动率,合理设置冷却时间
  4. Lighthouse 监控关注流量包余量和外网可达性
  5. GPU 监控使用 DCGM 采集 GPU 利用率、显存、温度、ECC 等专项指标
  6. 统一平台 用 Grafana 汇聚所有数据源,AlertManager 统一告警路由

建立可观测性不是一次性工程,而是一个持续迭代的过程。建议每个季度回顾一次告警策略的有效性,去掉"狼来了"式的误报告警,补充新发现的风险点。


本文由 3.chengzicloud.cloud 提供,点击访问首页了解更多