腾讯云国际版计算服务可观测性实战:CVM、TKE容器、GPU集群全栈监控体系搭建
在云计算时代,企业上云只是第一步,真正考验运维能力的是如何让云上业务持续稳定运行。
- 引言:为什么可观测性是云原生架构的第一道防线
- 腾讯云国际版可观测性产品矩阵
- 第一层: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_bytes | CPU request > 80%, Memory > 85% |
| 集群节点健康 | node_load15, node_filesystem_avail_bytes | Load15 > 核数×1.5 |
| POD OOMKilled 统计 | kube_pod_container_status_terminated_reason | 任意非零值即触发 |
| PVC 磁盘使用率 | kubelet_volume_stats_used_bytes / kubelet_volume_stats_capacity_bytes | > 80% |
| 网络流量 Top N | container_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 有所不同:
| 能力 | 标准 CVM | Lighthouse |
|---|---|---|
| 基础监控(CPU/内存/磁盘) | ✅ 完整 | ✅ 完整 |
| 自定义 Agent 安装 | ✅ 支持 | ✅ 支持 |
| 云监控 Dashboard | ✅ 完整 | ✅ 基础版 |
| 进程级监控 | ✅ 支持 | ✅ 支持 |
| 自定义告警 | ✅ 灵活 | ✅ 基础 |
Lighthouse 监控最佳实践
由于 Lighthouse 常用于个人开发者项目、中小型企业官网、轻量级 API 服务等场景,监控重点应放在:
- 应用层健康检查:使用云拨测 CAT 对 Lighthouse 上的 Web 服务做 5 分钟一次的外网拨测
- 流量包余量监控:Lighthouse 按月流量包计费,流量耗尽可能导致服务不可达。设置流量包使用率 > 80% 告警
- 证书到期监控:如果 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,包含:
- 顶部状态条:所有实例总数、健康数/异常数、本月告警总数
- CVM 资源热力图:按可用区分组的 CPU/内存使用率热力图
- TKE 集群拓扑:节点 → Namespace → Deployment → Pod 层级下钻
- AS 活动时间线:最近 24 小时的伸缩事件时间轴
- GPU 训练任务看板:当前运行任务数、GPU 平均利用率、显存使用趋势
- 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]))
实战场景:电商大促前的全链路压测与监控
以一个典型的电商场景为例,展示完整的可观测性工作流:
压测前准备
- 建立基线:采集过去 7 天各服务的 QPS、延迟 P99、错误率基线
- AS 策略调整:将 CVM 伸缩组的最大实例数临时提升至平日的 3 倍
- TKE HPA 预热:将 HPA 的最小 Pod 数提升至平日的 2 倍
- 告警静默:对已知的压测预期告警设置临时静默
压测中实时监控
- 重点关注 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专项指标,构建了一套完整的全栈监控方案。
核心要点回顾:
- CVM 监控以云监控为基础,Agent 增强获取进程级指标,多级告警防误报
- TKE 监控以 Prometheus + Grafana 为标准方案,关注 Pod 生命周期和资源水位
- AS 伸缩监控侧重于伸缩效率和抖动率,合理设置冷却时间
- Lighthouse 监控关注流量包余量和外网可达性
- GPU 监控使用 DCGM 采集 GPU 利用率、显存、温度、ECC 等专项指标
- 统一平台 用 Grafana 汇聚所有数据源,AlertManager 统一告警路由
建立可观测性不是一次性工程,而是一个持续迭代的过程。建议每个季度回顾一次告警策略的有效性,去掉"狼来了"式的误报告警,补充新发现的风险点。
本文由 3.chengzicloud.cloud 提供,点击访问首页了解更多