62 lines
4.8 KiB
Markdown
62 lines
4.8 KiB
Markdown
---
|
||
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 告警集成
|