1. Devops①
  2. Devops②
  3. Devops③
  4. Devops④
  5. Devops⑤
  6. Devops⑥
  7. Devops⑦
  8. Devops⑧
  9. Devops⑨

第 7 节 · Monitoring & Observability —— 监控与可观测性实战指南

📊 为什么监控与可观测性重要?

“系统跑起来不是终点,稳定运行才是。”

在 DevOps 实践中,监控(Monitoring)可观测性(Observability) 让你能:

  • 🧠 快速发现系统异常
  • 🔍 快速定位问题根源
  • 📈 持续优化性能体验

🧠 监控(Monitoring) VS 可观测性(Observability)

项目 Monitoring Observability
定义 观察系统是否健康 解释系统为什么出问题
数据类型 主要是指标(Metrics) 包括指标、日志、追踪(三大支柱)
触发方式 基于规则报警 支持探索式分析
目标 提前报警 快速定位问题源头

🔍 可观测性的三大支柱

  1. Metrics(指标) 📈

    • 如 CPU、内存、请求延迟、错误率
  2. Logs(日志) 📄

    • 系统或应用输出的详细事件记录
  3. Traces(追踪) 🔗

    • 分布式请求的全链路追踪(哪一环节慢)

🛠 常见工具生态

类型 工具 说明
指标监控 Prometheus 时间序列数据库,自动抓取指标
数据可视化 Grafana 美观灵活的监控仪表盘
日志收集 Loki / ELK 日志聚合分析(轻量 vs 重型)
链路追踪 Jaeger / OpenTelemetry 全链路追踪分布式请求
云服务集成 AWS CloudWatch / X-Ray 原生支持 AWS 服务的监控与追踪

🧪 实践:部署 Prometheus + Grafana + Node Exporter

📦 Node Exporter:收集本机系统指标

📦 Prometheus:抓取并保存指标数据

📦 Grafana:展示数据仪表盘

Docker Compose 示例:

version: "3"
services:
prometheus:
image: prom/prometheus
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"

node-exporter:
image: prom/node-exporter
ports:
- "9100:9100"

grafana:
image: grafana/grafana
ports:
- "3000:3000"

📦 prometheus.yml 配置示例

scrape_configs:
- job_name: "node"
static_configs:
- targets: ["node-exporter:9100"]

💬 DevOps 场景下的可观测性策略

  • 🧵 为每个服务设计合理指标(如响应时间、QPS、错误率)
  • 🪵 统一日志格式,配合 Loki / ELK 汇总分析
  • 🔗 引入 OpenTelemetry 实现前后端请求链追踪
  • 🚨 配置告警阈值 + 多通道通知(如钉钉、Slack、邮件)

下一节预告 👉 第 8 节:云平台实战 —— AWS 上构建 DevOps 一体化工作流