运维监控软件手册

运维监控软件手册 13.8 KB 原文

运维监控软件手册

按「监控软件 / 平台」拆分的详细手册:一个软件一篇,共 25 篇,分 7 类,约 1.1 万行。 每篇都是完整的「介绍 + 使用方法 + 配置说明 + 实战 + 排障 + 速查」,不是命令清单。 与 《运维工具手册》 互补:那边按命令行小工具讲"这台机器现在卡在哪",这边按平台讲"怎么把整个环境长期监控起来、告警怎么发、数据留多久"。

怎么用

你的处境 从哪开始
从零搭一套监控,不知道选什么 典型组合方案 → 需求 → 工具决策表
在几个方案之间纠结 核心工具横向对比
已选定软件,要部署/配告警/查故障 直接翻对应篇,每篇统一 14 章,末尾有速查表
只知道端口或配置路径 默认端口与路径速查
准备上线,怕漏项 监控上线检查清单

每篇统一结构:它解决什么问题 → 核心概念与架构 → 安装与部署 → 配置文件详解 → 核心使用方法 → 告警与通知 → 实战场景 → 日常运维与故障排查 → 性能容量与高可用 → 安全加固备份升级 → 常见坑 → 速查表 → 选型建议与同类对比 → 参考链接。

监控体系分层

任何一套监控,本质都是下面这条链路。本手册的分类就是按链路上的位置切的:

  ┌── 采集层 ──────────┐  ┌── 存储层 ──────────┐  ┌── 查询/可视化 ──┐  ┌── 告警与触达 ──┐
  │ Node Exporter      │  │ Prometheus TSDB    │  │ PromQL / LogQL  │  │ Alertmanager   │
  │ Categraf / Telegraf│  │ VictoriaMetrics    │  │ KQL / Flux      │  │ Grafana Alert  │
  │ Zabbix Agent       │─▶│ Thanos + 对象存储  │─▶│ Grafana / Kibana│─▶│ 各平台规则引擎 │─▶ 企微/钉钉/邮件
  │ Filebeat / Alloy   │  │ Elasticsearch      │  │ 状态页 / 大盘   │  │ 静默 / 升级    │    / On-call
  │ cAdvisor / 探针    │  │ Loki / InfluxDB    │  │                 │  │                │
  └────────────────────┘  └────────────────────┘  └─────────────────┘  └────────────────┘
        01 / 03 / 04 / 05 / 06 分类            01 / 04 分类              02 分类         01 / 02 / 03 分类

关键认知:组件分工,没有银弹。Prometheus 只评估告警不发送通知,不渲染大盘;Grafana 不存指标;Kibana 不采日志;Loki 不索引日志全文。把它们按链路拼起来,才是"一套监控"。

分类索引

01 指标采集与时序存储(6 篇)

软件 一句话定位 典型场景
Prometheus pull 模型指标采集 + 本地 TSDB + PromQL,云原生事实标准 自建监控的起点,容器与 K8s 指标底座
Node Exporter 把主机 CPU/内存/磁盘/网络/文件系统暴露成 /metrics 每台 Linux 必装,含 Exporter 生态综述
Alertmanager 告警分组、抑制、静默、路由树与通知渠道 告警风暴治理、按团队分流、值班升级
VictoriaMetrics 兼容 Prometheus 的高压缩比时序库,含 vmagent / vmalert 单机扛大规模序列、长期留存降本、替换 Prometheus 存储
Thanos Prometheus 长期存储、跨集群全局查询与降采样 已有多套 Prometheus,要统一查询与对象存储归档
InfluxDB 与 Telegraf push 型 TICK 栈:采集代理 + 时序库 + 保留策略 IoT / 业务指标 / 传统监控改造,需要 push 模型

02 可视化与告警呈现(3 篇)

软件 一句话定位 典型场景
Grafana 多数据源统一大盘、变量、Provisioning 与统一告警 所有监控栈的默认展示层,配置即代码
Kibana Elasticsearch 的 Discover / Lens / Dashboard 与 KQL 日志检索、临时捞数、报错分布分析
Uptime Kuma 轻量 HTTP/TCP/Ping/DNS 拨测 + 公开状态页 外部视角可用性探测,几十个站点半小时搭好

03 一体化监控平台(6 篇)

软件 一句话定位 典型场景
Zabbix 采集+存储+触发器+告警+Web 全包,模板与自动发现成熟 传统机房、网络设备、大规模主机纳管
Nagios 插件式状态检查鼻祖,对象定义 + NRPE + 告警升级 存量老系统维护、轻量可用性检查
Checkmk 规则驱动的自动发现与批量纳管,配置效率极高 上千台主机统一规则管理,替代手工加监控项
Netdata 秒级单机监控 + 自带 Web 大盘 + 零配置健康检查 单机应急排障、临时巡检、Parent 集中汇总
夜莺 Nightingale 国产开源,兼容 Prometheus 生态,配 Categraf 采集 信创/内网环境、需要中文界面与国产化适配
Cacti SNMP + RRDtool 的网络流量绘图老将 交换机/路由器端口流量、专线带宽趋势

04 日志监控与分析(4 篇)

软件 一句话定位 典型场景
Elasticsearch 全文检索与聚合底座,索引模板 / ILM / 集群 日志量大、需要任意字段检索与复杂聚合
Logstash pipeline 型日志加工:Grok、mutate、多输出 脏日志结构化、字段补齐、多来源汇聚
Filebeat 轻量采集端,filestream / modules / K8s autodiscover 每台应用机部署,低开销送日志
Loki 只索引标签、不索引全文,LogQL 与 Grafana 原生打通 成本敏感、按服务/标签查日志,PLG 栈

05 APM 与链路追踪(2 篇)

软件 一句话定位 典型场景
SkyWalking 国产 APM:无侵入探针、服务拓扑、慢调用与告警 Java/Go 微服务性能定位、调用链与指标一体
Jaeger 分布式链路追踪,已转向 OpenTelemetry Collector 跨服务 Trace 排查、OTel 标准化接入

06 容器与云原生监控(2 篇)

软件 一句话定位 典型场景
kube-prometheus-stack Prometheus Operator + CRD + 全家桶一键装机 K8s 集群监控标配,ServiceMonitor 自动发现
cAdvisor 容器 cgroup 资源指标采集 理解容器指标来源、单机容器资源排障

07 商业与云监控(2 篇)

软件 一句话定位 典型场景
Datadog SaaS 可观测平台,指标/APM/日志/Monitor 一体 无自运维人力、多云统一视图、快速见效
云厂商监控(阿里云 / 腾讯云 / 华为云) 三家托管监控横向对比与统一用法 云产品指标、平台事件、账单与弹性伸缩联动

典型组合方案

方案 A:最小可用监控(10~50 台,1 人维护)

Node Exporter(每台) ──pull──► Prometheus ──► Alertmanager ──► 企业微信/钉钉/邮件
                                 │
                                 └──► Grafana(大盘 + 统一告警)
外部可用性:Uptime Kuma(独立部署,别和被监控对象放同一机房)

部署顺序:Node Exporter → Prometheus(先配 static_configs)→ Grafana 导入 Node Exporter 大盘 → Alertmanager → 告警规则(先只配「主机 down / 磁盘 >85% / 内存 >90%」三条)→ Uptime Kuma。 关键端口:9100 / 9090 / 3000 / 9093 / 3001。 取舍:Prometheus 本地盘默认保留 15 天;要长期留存再叠 VictoriaMetrics 或 Thanos,别一上来就上分布式。

方案 B:Kubernetes 多集群(云原生团队)

kube-prometheus-stack(Operator + Prometheus + Alertmanager + Grafana + node-exporter + kube-state-metrics)
        │ remote_write                          │
        ▼                                      ▼
VictoriaMetrics 或 Thanos(对象存储)      Loki + Alloy/Promtail(日志)
        │                                      │
        └──────────────► Grafana 统一数据源 ◄───┘
告警:PrometheusRule / Loki Ruler → Alertmanager → 按 namespace 路由到业务团队

部署顺序:Helm 装 kube-prometheus-stack → 用 ServiceMonitor 接入一个业务 → 验证 CRD 被 Operator 选中 → 再接长期存储 → 最后接日志与告警分流。 要点:ServiceMonitor 不生效是本方案最高频故障,排查链见该篇第 8 章;标签基数(cardinality)必须在接入业务前定规范。

方案 C:传统机房 / 信创内网

Zabbix 或 夜莺 Nightingale(采集 + 告警 + Web 一体)
   ├── Zabbix Agent / Categraf  →  主机与进程
   ├── SNMP + Cacti             →  交换机端口流量、专线带宽
   └── Netdata                 →  单机秒级应急排障(临时启用,不长期留存)
告警 → 企业微信 / 短信 / 值班表;跨地域用 Zabbix Proxy 或夜莺边缘节点

要点:内网无外网时优先选可离线安装的发行版包/二进制;信创 CPU 与国产 OS 需实测镜像与依赖,各篇「常见坑」有说明;夜莺各版本架构变化大,先锁版本再写配置。

方案 D:日志 + APM 全栈(微服务)

应用日志 → Filebeat / Alloy → (Logstash 可选) → Elasticsearch → Kibana     【全文检索重】
应用日志 → Alloy / Promtail → Loki             → Grafana                  【成本敏感】
Java/Go 服务 → SkyWalking Agent 或 OTel SDK → OAP / Jaeger Collector → UI  【链路与性能】
三套数据用 trace_id 关联,Grafana 里从指标下钻到日志再到链路

要点:ELK 与 PLG 二选一即可,不要两套都上;统一 service.name / trace_id / 日志时间时区是关联的前提。

方案 E:云上 / 混合

云厂商监控(云产品指标 + 平台事件 + 账单告警) ─┐
自建 Prometheus(应用与业务指标)              ├─► 统一 On-call / 告警收敛
Datadog 或托管 Prometheus(跨云聚合,可选)    ─┘

要点:云监控拿不到应用内部指标,自建栈拿不到 RDS/SLB 平台侧指标,两者是互补不是替代;告警务必收敛到一个入口,否则值班会被三套通知淹没。

需求 → 工具决策表

需求 / 现象 首选 备选 不建议
几十台 Linux 要长期看 CPU/内存/磁盘 Prometheus + Node Exporter + Grafana Zabbix / 夜莺 只装 Netdata(不留存)
传统机房、要管交换机与 SNMP Zabbix + Cacti(流量) Checkmk 纯 Prometheus(SNMP 需额外 exporter)
主机规模上千、要规则化批量纳管 Checkmk / Zabbix + Proxy 夜莺 手工维护 static_configs
单机突然卡了,要秒级定位 Netdata 命令行工具手册 top/pidstat 现搭 Prometheus(来不及)
指标要留一年以上 / 多集群统一查询 Thanos 或 VictoriaMetrics InfluxDB 只调大 Prometheus 本地保留期
日志量大、要按任意字段检索聚合 Elasticsearch + Filebeat + Kibana Graylog Loki(全文检索弱)
日志按服务/标签查、预算有限 Loki + Alloy + Grafana ELK 精简版 Logstash 全量解析(资源重)
外部判断网站是否真的可访问 Uptime Kuma Blackbox Exporter 只靠机房内 Prometheus 自拉
微服务慢调用定位、看拓扑 SkyWalking Jaeger + OTel 只看应用日志
要做标准化 Trace、避免厂商锁定 Jaeger v2 / OpenTelemetry SkyWalking 私有埋点 SDK 硬编码
K8s 集群整体监控 kube-prometheus-stack 手工拼 Prometheus 单机版 Zabbix
云上 RDS/SLB 指标与平台事件 云厂商监控 各云托管 Prometheus 自建 Agent 硬猜
没人运维监控、要快速见效 Datadog / 云托管可观测 托管 Prometheus 自建 Thanos 全套
信创 / 内网离线 / 中文界面 夜莺 + Categraf Zabbix 依赖外网 SaaS 的方案
告警太多、值班麻木 Alertmanager 分组/抑制/静默 Grafana 告警策略 继续加阈值

核心工具横向对比

指标与时序栈

维度 Prometheus VictoriaMetrics InfluxDB + Telegraf Zabbix 夜莺
采集模型 pull(+ Pushgateway) pull(vmagent)/ 兼容 remote write push(Telegraf outputs) Agent 主动 / Server 拉取 Categraf push / 兼容 Prometheus
数据模型 指标名 + 多维标签 同 Prometheus measurement + tag + field host + item + key 指标 + 标签
查询语言 PromQL MetricsQL(PromQL 超集) InfluxQL / Flux 触发器表达式 + 内置函数 PromQL 兼容
长期存储 本地 TSDB,需 remote write 原生长期留存、高压缩 保留策略 + 降采样 关系库 + housekeeper 依赖外部时序库
告警 规则评估 → Alertmanager vmalert → Alertmanager Kapacitor / 外部 内置触发器 + 媒介 + 升级 内置告警引擎
集群 HA 双实例 + 外部长期存储 原生集群版 企业版集群 / 开源单节点 Server HA + Proxy 多副本 + 外部库
学习成本 中(PromQL 是门槛) 低(会 PromQL 就会) 中 中高(概念多) 低(中文界面)
适合规模 单集群十万~百万序列 百万级以上 / 降本 中小规模、IoT 数百~上万台主机 内网 / 信创 / 中小规模

一体化监控平台

维度 Zabbix Nagios Checkmk Netdata Cacti
装完就能用 是(需配库与 Web) 否(要手写对象定义) 是(自动发现) 是(零配置) 是(需 SNMP 与模板)
配置方式 Web 模板 / API 文本文件 规则集 GUI 配置文件 Web 模板
自动发现 LLD 强 弱 极强 自带 collector SNMP 扫描
可视化 内置 + 可接 Grafana 需插件 内置 内置极强 RRD 流量图为主
数据留存 关系库,需分区清理 短(多靠插件) RRD + 历史 内存/短周期 RRD 固定精度
定位 通用大平台 存量 / 轻量检查 批量纳管效率 单机实时诊断 网络流量趋势

日志与 APM

维度 ELK(ES+Logstash+Filebeat+Kibana) PLG(Loki+Alloy+Grafana) SkyWalking Jaeger
索引方式 全文倒排索引 仅标签索引 服务/实例/端点维度 Trace / Span
资源开销 高(JVM、磁盘) 低 中(OAP + 存储) 中(Collector + 存储)
查询能力 任意字段、复杂聚合 标签过滤 + 行内容过滤 拓扑、慢调用、指标 链路检索与依赖分析
上手难度 高 低(会 Grafana 就顺) 中(探针挂载) 中(需改造/接 OTel)
适合 日志审计、检索密集 成本敏感、K8s 环境 Java/Go 服务性能治理 标准化 Trace、跨语言

Graylog、Fluent Bit、Vector、Tempo、Zipkin、Pinpoint 暂未单独成篇,见扩展计划。

默认端口与路径速查

均为默认端口,可被配置覆盖;同一组件不同版本可能有差异,以各篇第 3、12 章为准。

组件 默认端口 说明 / 主配置路径
Prometheus 9090 /etc/prometheus/prometheus.yml
Node Exporter 9100 --collector.* 开关,通常无配置文件
Alertmanager 9093 /etc/alertmanager/alertmanager.yml
Pushgateway 9091 仅短生命周期任务用
Grafana 3000 /etc/grafana/grafana.ini、provisioning 目录
VictoriaMetrics 8428 单节点 /api/v1/write、/prometheus/api/v1/query
Thanos 10901 / 10902 各组件 gRPC / HTTP,另有 Receiver remote write 端口
InfluxDB 8086 /etc/influxdb/influxdb.conf(版本差异大)
Telegraf 默认不监听 /etc/telegraf/telegraf.conf
Loki 3100 loki-config.yaml,采集端 Alloy / Promtail
Elasticsearch 9200 / 9300 HTTP / 节点间通信,elasticsearch.yml
Kibana 5601 kibana.yml
Logstash 5044 / 9600 Beats 输入 / 监控 API,pipelines.yml
Filebeat 默认不监听 filebeat.yml
Zabbix Server / Agent 10051 / 10050 zabbix_server.conf、zabbix_agentd.conf
Nagios NRPE 5666 nagios.cfg + objects/*.cfg
Checkmk 80/443(旧版 5000) OMD site 目录下 etc/check_mk/
Netdata 19999 /etc/netdata/netdata.conf、health.d/
夜莺 n9e 17000 Web/API,Categraf conf/ 目录
Cacti 80/443;SNMP 161(被监控端) config.php、RRD 目录、spine
cAdvisor 8080 /metrics,K8s 中常由 kubelet 内置暴露
SkyWalking OAP / UI 11800 / 12800,UI 8080 config/application.yml、agent agent.config
Jaeger / OTel Collector 16686(UI)、4317/4318(OTLP) Collector pipeline YAML
Uptime Kuma 3001 ./data/ 数据目录,务必备份
Datadog Agent 8125(DogStatsD UDP)、8126(APM) /etc/datadog-agent/datadog.yaml

通用约定与版本差异

  • $ 普通用户,# root 或 sudo,<xxx> 为占位符;⚠️ 标注危险操作,生产执行前先备份或 --dry-run。
  • 命令默认 Linux(glibc + systemd);Alpine、国产 OS、信创 CPU 的差异在各篇「常见坑」里单独说明。
  • 文中不绑定固定版本号与镜像 tag,一律写"以官方最新稳定版为准"。安装前到官方下载页/仓库确认当前版本,跨大版本升级先看官方迁移说明。
  • 需要特别注意的版本差异(各篇已展开):
    • Elasticsearch 8.x 起默认开启安全特性,首次启动要处理证书与内置用户密码;
    • Grafana 使用 Unified Alerting,与旧版 Dashboard Alerting 配置方式不同;
    • Loki 生态推荐用 Grafana Alloy 替代 Promtail,旧采集端有 EOL 时间点;
    • Jaeger v2 基于 OpenTelemetry Collector,与 v1 组件模型不同;
    • 夜莺 v5 / v6 / v9 架构与依赖变化较大,先锁版本再写配置;
    • Kubernetes 中 cAdvisor 已内置于 kubelet,独立部署前先确认端口与指标路径;
    • Zabbix 7.0 LTS、Checkmk Raw 与商业版、Nagios 与 Icinga 的功能边界均以官方文档为准。
  • 所有规则与大盘纳入 Git:Prometheus rules、Grafana provisioning、Alertmanager 路由、Helm values 都应配置即代码,禁止只在 Web 上点。
  • 监控系统自身必须被监控(meta-monitoring):Prometheus 抓取失败、Alertmanager 静默过期、磁盘剩余、采集延迟都要有独立告警通道,否则监控挂了没人知道。

监控上线检查清单

  1. 全链路 NTP/chrony 时钟同步已验证(指标被判未来时间会直接丢弃)。
  2. 保留期 × 采样频率 × 序列数算出磁盘需求,并预留 compaction/合并所需的额外空间。
  3. 标签规范已定稿,明确禁止把 user_id、request_id、trace_id 之类高基数字段做标签。
  4. 指标名、job、instance、service 命名统一,跨团队大盘口径一致(用 recording rule 固化)。
  5. 告警分级(P0~P3)与值班表、升级路径已确认;P0 走电话/短信,P3 只进群。
  6. 通知渠道已实测:企业微信/钉钉/Webhook 发一条测试告警,别等故障才发现 token 过期。
  7. 静默、抑制、分组、重复通知间隔已配置,能扛住一次机房级故障引发的告警风暴。
  8. 大盘有「全局概览 → 服务 → 单机」三层下钻路径,而不只是一堆曲线。
  9. 配置、大盘 JSON、告警规则、数据库已备份,并演练过一次恢复。
  10. 认证鉴权、TLS、最小权限、网络暴露面收敛完成;监控端口不对公网开放。
  11. 监控系统自身有独立告警通道(最好跨机房/跨云),避免"监控挂了无人知"。
  12. 做过一次告警演练(主动停一台非关键服务),验证从采集到通知全链路耗时。
  13. 容量与成本有上限:日志采样率、指标抓取间隔、对象存储生命周期策略都已设定。
  14. 文档沉淀:部署架构图、端口表、值班 SOP、常见故障处置,随配置一起进仓库。

与现有手册的关系

需求 翻哪套
瞬时排障:top、iostat、tcpdump、ss 怎么写 《运维工具手册》 01/02 分类
某台 CentOS 的 firewalld / SELinux 怎么放行监控端口 《CentOS 7-10 常规运维指令手册》
Ubuntu 上装包、配 systemd、看日志 《Ubuntu 常用运维指令手册》
Docker Compose 起监控栈、容器日志怎么看 《Docker 常用运维指令手册》
K8s 里部署 Operator、排查 Pod 与 Service 《Kubernetes 常用运维指令手册》
MySQL / Redis / PostgreSQL 有哪些该监控的指标 对应数据库常用运维指令手册
国产 OS、信创 CPU 上装监控组件报依赖错 《国产操作系统运维指令手册》 + 本手册各篇「常见坑」
整套监控平台怎么选、怎么搭、怎么配告警 本手册

扩展计划

后续可按需增补,仍按「一个软件一篇、14 章结构」补齐:

  • 采集与传输:Grafana Alloy、Fluent Bit、Vector、OpenTelemetry Collector、Blackbox Exporter、SNMP Exporter、windows_exporter、Pushgateway、statsd_exporter。
  • 存储与查询:Grafana Mimir、Cortex、Tempo、ClickHouse(日志/Trace 存储)、TimescaleDB。
  • 日志:Graylog、Fluentd、OpenSearch、Loki Ruler 深入实践。
  • APM / 链路:Zipkin、Pinpoint、Pyroscope(持续性能剖析)、eBPF 可观测(Cilium Hubble、Pixie)。
  • 网络与拨测:Smokeping、Blackbox Exporter 进阶、BGP/专线监控。
  • 告警与 On-call:Grafana OnCall、PagerDuty、告警降噪与 SLO / Error Budget 实践。
  • 平台与生态:Open-Falcon、蓝鲸智云、Wazuh(安全监控)、Prometheus 联邦与多租户治理、监控数据合规与信创适配。

本手册是通用参考,与具体环境强相关的部分(端口规范、保留期、通知渠道、备份路径、账号权限、值班分级)请替换为团队实际值,沉淀为内部 SOP 后再上生产。