Files
nexus/wiki/sources/家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox.md

7.1 KiB
Raw Blame History

title, type, tags, date
title type tags date
家庭监控方案Prometheus + Grafana + Node Exporter + cAdvisor + Blackbox source
grafana
monitoring
prometheus
home-server
2025-11-11

Source File

Summary (中文描述)

  • 核心主题:家庭/家居服务器NAS / Ubuntu Server的一站式开源监控方案通过 Docker Compose 快速部署完整的 Prometheus 监控栈。
  • 问题域如何对家庭服务器的主机层、容器层、服务层HTTP 可用性、TLS 证书)进行全面的指标采集、存储、可视化和告警。
  • 方法/机制:使用 Prometheus 作为时序数据库和告警规则引擎node_exporter 采集主机指标cAdvisor 采集容器资源blackbox_exporter 做 HTTP/TLS 探测Grafana 做可视化仪表盘Alertmanager 分发告警到邮件/Slack。配合 Uptime Kuma 做合成可用性监控。
  • 结论/价值:提供可直接拷贝的 docker-compose 模板、prometheus.yml、alerts.yml、alertmanager.yml8 步落地路径,涵盖 PoC 验证到生产级部署的全流程。

Key Claims (中文描述)

  • Prometheus 通过 pull 模式定期抓取 node_exporter / cAdvisor / blackbox_exporter 暴露的指标,实现主机/容器/网络探测的统一采集。
  • Grafana 可通过 Dashboard ID如 Node Exporter Full: 1860直接导入官方仪表盘快速搭建可视化界面。
  • Blackbox Exporter 通过 probe_success == 0probe_ssl_earliest_cert_expiry 等指标实现 HTTP 可用性和 TLS 证书到期监控。
  • node_exporter 以 host network 模式运行,挂载 /proc/sys/ 为只读卷实现无代理agentless主机指标采集。
  • Docker socket 挂载(如 cAdvisor 中的 /var/run/docker.sock)是容器监控的必要条件,但需审慎评估安全风险。
  • Alertmanager 支持邮件/Slack/Teams/Webhook/PagerDuty 等多通道告警路由并提供告警抑制inhibition和分组grouping功能。

Key Quotes

"Prometheus 通过 pull 模式定期抓取 exporters 采集指标,支持 PromQL 命名与告警规则。适合做主观测时序库与告警。" — Prometheus 核心机制说明

"Docker socket 挂载(风险:容器拿到宿主机 root 等同权限)。" — 安全警告

"把监控流量/端口放在管理 VLAN 或通过防火墙限定访问。" — 网络安全建议

"Grafana 仪表盘 JSON 导出Prometheus rule 与配置放在 GitGitOps。" — 配置备份最佳实践

Key Concepts

  • Prometheus:开源时序数据库和监控告警系统,支持 PromQL 查询语言和告警规则引擎
  • Grafana:开源可视化平台,支持多数据源仪表盘和告警管理
  • node_exporterPrometheus 官方主机指标采集器,采集 CPU/内存/磁盘/网络/I/O 等系统指标
  • cAdvisorGoogle 开源的容器资源监控工具,为 Prometheus 提供容器级别指标
  • blackbox_exporterPrometheus 官方黑盒探测 exporter支持 HTTP/TCP/ICMP/DNS/TLS 探测
  • AlertmanagerPrometheus 告警分发组件,支持告警分组、抑制、静默和多通道路由
  • PromQLPrometheus Query Language用于查询时序指标和告警条件
  • Uptime Kuma:自托管 uptime monitoring 工具,支持 HTTP/TCP/DNS/TLS 合成监控
  • Netdata:开箱即用的实时主机/容器监控面板,默认 19999 端口,适合快速诊断
  • VictoriaMetricsPrometheus 时序数据库替代方案,支持长期存储和高效写入
  • 合成监控Synthetic Monitoring通过模拟真实用户请求检测服务可用性和响应时间
  • ExporterPrometheus 生态中负责暴露指标数据的组件,通过 HTTP 端点提供 /metrics
  • 时序数据库Time Series Database专门存储带时间戳的指标数据支持高效的时间范围查询和聚合
  • Prometheus告警规则YAML 格式的告警条件定义,基于 PromQL 表达式触发状态变更

Key Entities

  • PrometheusCNCF 项目):时序数据库 + 监控告警平台核心
  • Grafana LabsGrafana 背后的公司和维护组织
  • Docker:所有组件的部署平台,通过 Docker Compose 实现一键启动
  • Uptime Kumalouislam/uptime-kuma开源 uptime monitoring 工具
  • PortainerDocker 可视化管理工具,不替代 Prometheus 但便于运维快速操作

Connections

Contradictions

  • 系统监控工具Btop++ / Htop / Glances / Netdata相比Netdata 适合实时短期诊断Prometheus + Grafana 适合长期存储和趋势分析,两者可互补使用而非互斥。
  • ctp-topic-42-grafana-observability-dashboard 冲突:该来源标注为 expectedsource missing但内容为 Grafana 在 AWS 场景下的企业级应用;本来源侧重家庭服务器轻量部署,场景和规模不同。
  • ctp-topic-67-cloud-native-observability-using-opentelemetry 冲突OpenTelemetry 是云原生可观测性新标准metrics/traces/logs 三合一Prometheus 生态更成熟但 OpenTelemetry 是未来方向;短期用 Prometheus长期可考虑 OTel 迁移路径。

Docker Compose 核心架构

# 监控栈组件
services:
  prometheus:    # 时序数据库 + 告警引擎
  grafana:       # 可视化仪表盘
  alertmanager:  # 告警分发
  node_exporter: # 主机指标host network
  cadvisor:     # 容器指标(挂载 /var/run/docker.sock
  blackbox:     # HTTP/TCP 探测

关键监控项PromQL 示例)

指标 PromQL 表达式 阈值
磁盘空间 node_filesystem_avail_bytes / node_filesystem_size_bytes < 0.10 < 10%
CPU 使用率 avg(rate(node_cpu_seconds_total[2m])) * 100 > 85 > 85%
内存可用 node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes < 0.15 < 15%
HTTP 可用性 probe_success == 0 (持续 2min) 探测失败
TLS 证书到期 probe_ssl_earliest_cert_expiry - time() < 86400 * 14 < 14 天

落地 8 步路径

  1. 用 PoC docker-compose 启动 Netdata + Uptime Kuma19999 / 3001验证
  2. 上线 Prometheus + prometheus.yml配置 scrape_configs
  3. 每台主机部署 node_exporterhost network 模式)
  4. Grafana 导入 Dashboard1860 / 14282 / 7587
  5. Alertmanager 配置告警路由(邮件/Slack
  6. Uptime Kuma 建好所有内外网探测项
  7. GitOps 配置管理Grafana JSON 导出Prometheus rules 放 Git
  8. TLS 证书到期告警blackbox_exporter 或 Uptime Kuma