--- title: "家庭监控方案:Prometheus + Grafana + Node Exporter + cAdvisor + Blackbox" type: source tags: [prometheus, grafana, monitoring, docker, home-server] date: 2025-11-11 --- ## Source File - [[Home Office/家庭监控方案:Prometheus + Grafana + Node Exporter + cAdvisor +Blackbox]] ## Summary(用中文描述) - 核心主题:家庭/小型服务器监控的完整 Docker 化解决方案 - 问题域:主机层、容器层、服务层的可观测性覆盖,以及告警通知渠道 - 方法/机制:Prometheus 拉取模式采集 + Grafana 可视化 + Alertmanager 告警分发;通过 node_exporter、cAdvisor、blackbox_exporter 三个 exporter 覆盖主机、容器和网络探测;提供可直接拷贝的 docker-compose 完整模板 - 结论/价值:面向 NAS / Ubuntu Server 用户的零门槛可落地监控栈,含具体 PromQL 告警规则和 Grafana Dashboard ID ## Key Claims(用中文描述) - Prometheus + node_exporter + cAdvisor + blackbox_exporter + Grafana + Alertmanager 的组合可覆盖家庭服务器的完整监控面 - 主机层监控 CPU / 内存 / 磁盘 / 网络 / I/O / inode,容器层监控运行状态、重启次数、资源使用,服务层监控 HTTP 可用性、响应码、延迟、TLS 证书到期、DNS 解析 - TLS 证书剩余天数 < 14 天应触发告警 - 黑箱探测 `probe_success == 0` 连续 3 次应触发告警 - Docker socket 挂载存在宿主机 root 等效权限风险,需审慎处理 - Grafana 官方 Dashboard ID:Node Exporter Full (`1860`)、cAdvisor Container Metrics (`14282`)、Blackbox Exporter Probe (`7587`) ## Key Quotes > "Docker socket 挂载存在宿主机 root 等效权限风险" — 容器安全注意事项 > "Prometheus 本地磁盘会增长,考虑长期保留要用远端存储或定期 snapshot" — 存储注意事项 > "Grafana 仪表盘 JSON 导出,Prometheus rule 与配置放在 Git(GitOps)" — 备份最佳实践 > "把容器/服务启动时打上 service=xxx、env=prod 标签,便于 PromQL 分组和 SLA 报表" — 标签化运维建议 ## Key Concepts - [[Prometheus]]:开源时序数据库 + 监控系统,采用拉取(pull)模式从 exporters 采集指标 - [[Grafana]]:跨数据源的可视化与告警平台,支持 Prometheus/Loki/VictoriaMetrics 等 - [[Observability]](可观测性):覆盖指标(Metrics)、日志(Logs)、链路(Traces)三大支柱 - [[Container Monitoring]](容器监控):通过 cAdvisor 采集容器资源使用、重启次数、退出码等指标 - [[Synthetic Monitoring]](合成监控):通过 blackbox_exporter 和 Uptime Kuma 做主动式可用性探测,区别于基于真实用户流量的 RUM - [[Alert Management]](告警管理):Prometheus 定义告警规则 → Alertmanager 接收 → 抑制/分组/路由到邮件/Slack/Webhook/PagerDuty - [[Home Server Automation]]:家庭服务器的运维自动化与监控覆盖 ## Key Entities - [[Prometheus]](监控数据采集与告警规则引擎):负责从各 exporter 拉取指标并执行告警条件判断 - [[Grafana]](可视化与告警平台):展示 Prometheus 时序数据,配置告警规则和通知渠道 - [[Alertmanager]](Prometheus 告警分发组件):负责告警的抑制、分组、向邮件/Slack/Teams 等渠道分发 - [[Node Exporter]](主机指标采集器):Prometheus 官方 exporter,采集 CPU/内存/磁盘/网络/文件系统指标 - [[cAdvisor]](Google 容器指标采集器):采集容器级别的资源使用情况(CPU/内存/网络/磁盘 I/O) - [[Blackbox Exporter]](黑箱探测 exporter):通过 HTTP/TCP/ICMP/DNS 探测外部或内部服务端点 - [[Uptime Kuma]](自托管可用性监控工具):开源 uptime monitoring,支持 HTTP/TCP/DNS/TLS 探测与历史记录 - [[Netdata]](实时监控看板):开箱即用的详细实时主机/容器监控面板,默认 19999 端口 - [[Portainer]](Docker 可视化管理平台):图形化管理 Docker 主机/Swarm,带监控/日志功能 ## Connections - [[Prometheus]] ← scrape_configs ← [[Node Exporter]] - [[Prometheus]] ← scrape_configs ← [[cAdvisor]] - [[Prometheus]] ← scrape_configs ← [[Blackbox Exporter]] - [[Prometheus]] ← sends alerts ← [[Alertmanager]] - [[Grafana]] ← datasource ← [[Prometheus]] - [[Grafana]] ← dashboards ← [[Node Exporter]], [[cAdvisor]], [[Blackbox Exporter]] - [[家庭网络环境概览]] ← provides context for ← [[Home Server Automation]] ## Contradictions - 与 [[Uptime Kuma]] 描述存在侧重差异:源文档将 Uptime Kuma 定位为"合成监控补充工具"与 blackbox_exporter 并列,实际部署中两者均可独立完成 HTTP/TLS 探测,Uptime Kuma 更适合做外网监控(无公网 IP 时),blackbox_exporter 更适合内网和更细粒度的 PromQL 告警集成