Update nexus: fix conflicts and sync local changes

This commit is contained in:
Shen Wei
2026-04-26 12:06:50 +08:00
parent 191797c01b
commit f09834b5a5
2443 changed files with 254323 additions and 255154 deletions

View File

@@ -1,101 +1,101 @@
---
title: "家庭监控方案Prometheus + Grafana + Node Exporter + cAdvisor + Blackbox"
type: source
tags: [grafana, monitoring, prometheus, home-server]
date: 2025-11-11
---
## Source File
- [[raw/Home Office/家庭监控方案Prometheus + Grafana + Node Exporter + cAdvisor +Blackbox.md]]
## 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 == 0``probe_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_exporter]]Prometheus 官方主机指标采集器,采集 CPU/内存/磁盘/网络/I/O 等系统指标
- [[cAdvisor]]Google 开源的容器资源监控工具,为 Prometheus 提供容器级别指标
- [[blackbox_exporter]]Prometheus 官方黑盒探测 exporter支持 HTTP/TCP/ICMP/DNS/TLS 探测
- [[Alertmanager]]Prometheus 告警分发组件,支持告警分组、抑制、静默和多通道路由
- [[PromQL]]Prometheus Query Language用于查询时序指标和告警条件
- [[Uptime Kuma]]:自托管 uptime monitoring 工具,支持 HTTP/TCP/DNS/TLS 合成监控
- [[Netdata]]:开箱即用的实时主机/容器监控面板,默认 19999 端口,适合快速诊断
- [[VictoriaMetrics]]Prometheus 时序数据库替代方案,支持长期存储和高效写入
- [[合成监控]]Synthetic Monitoring通过模拟真实用户请求检测服务可用性和响应时间
- [[Exporter]]Prometheus 生态中负责暴露指标数据的组件,通过 HTTP 端点提供 /metrics
- [[时序数据库]]Time Series Database专门存储带时间戳的指标数据支持高效的时间范围查询和聚合
- [[Prometheus告警规则]]YAML 格式的告警条件定义,基于 PromQL 表达式触发状态变更
## Key Entities
- [[Prometheus]]CNCF 项目):时序数据库 + 监控告警平台核心
- [[Grafana Labs]]Grafana 背后的公司和维护组织
- [[Docker]]:所有组件的部署平台,通过 Docker Compose 实现一键启动
- [[Uptime Kuma]]louislam/uptime-kuma开源 uptime monitoring 工具
- [[Portainer]]Docker 可视化管理工具,不替代 Prometheus 但便于运维快速操作
## Connections
- [[Prometheus]] ← 数据源 ← [[node_exporter]]
- [[Prometheus]] ← 数据源 ← [[cAdvisor]]
- [[Prometheus]] ← 数据源 ← [[blackbox_exporter]]
- [[Grafana]] ← 可视化 ← [[Prometheus]]
- [[Alertmanager]] ← 告警接收 ← [[Prometheus]]
- [[Prometheus]] ← 告警规则 ← [[Prometheus告警规则]]
- [[Grafana]] ← 仪表盘模板 ← [[Node Exporter Full Dashboard]]
- [[Docker Compose]] ← 编排 ← 所有组件Prometheus / Grafana / Alertmanager / node_exporter / cAdvisor / blackbox_exporter
## 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 核心架构
```yaml
# 监控栈组件
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
---
title: "家庭监控方案Prometheus + Grafana + Node Exporter + cAdvisor + Blackbox"
type: source
tags: [grafana, monitoring, prometheus, home-server]
date: 2025-11-11
---
## Source File
- [[raw/Home Office/家庭监控方案Prometheus + Grafana + Node Exporter + cAdvisor +Blackbox.md]]
## 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 == 0``probe_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_exporter]]Prometheus 官方主机指标采集器,采集 CPU/内存/磁盘/网络/I/O 等系统指标
- [[cAdvisor]]Google 开源的容器资源监控工具,为 Prometheus 提供容器级别指标
- [[blackbox_exporter]]Prometheus 官方黑盒探测 exporter支持 HTTP/TCP/ICMP/DNS/TLS 探测
- [[Alertmanager]]Prometheus 告警分发组件,支持告警分组、抑制、静默和多通道路由
- [[PromQL]]Prometheus Query Language用于查询时序指标和告警条件
- [[Uptime Kuma]]:自托管 uptime monitoring 工具,支持 HTTP/TCP/DNS/TLS 合成监控
- [[Netdata]]:开箱即用的实时主机/容器监控面板,默认 19999 端口,适合快速诊断
- [[VictoriaMetrics]]Prometheus 时序数据库替代方案,支持长期存储和高效写入
- [[合成监控]]Synthetic Monitoring通过模拟真实用户请求检测服务可用性和响应时间
- [[Exporter]]Prometheus 生态中负责暴露指标数据的组件,通过 HTTP 端点提供 /metrics
- [[时序数据库]]Time Series Database专门存储带时间戳的指标数据支持高效的时间范围查询和聚合
- [[Prometheus告警规则]]YAML 格式的告警条件定义,基于 PromQL 表达式触发状态变更
## Key Entities
- [[Prometheus]]CNCF 项目):时序数据库 + 监控告警平台核心
- [[Grafana Labs]]Grafana 背后的公司和维护组织
- [[Docker]]:所有组件的部署平台,通过 Docker Compose 实现一键启动
- [[Uptime Kuma]]louislam/uptime-kuma开源 uptime monitoring 工具
- [[Portainer]]Docker 可视化管理工具,不替代 Prometheus 但便于运维快速操作
## Connections
- [[Prometheus]] ← 数据源 ← [[node_exporter]]
- [[Prometheus]] ← 数据源 ← [[cAdvisor]]
- [[Prometheus]] ← 数据源 ← [[blackbox_exporter]]
- [[Grafana]] ← 可视化 ← [[Prometheus]]
- [[Alertmanager]] ← 告警接收 ← [[Prometheus]]
- [[Prometheus]] ← 告警规则 ← [[Prometheus告警规则]]
- [[Grafana]] ← 仪表盘模板 ← [[Node Exporter Full Dashboard]]
- [[Docker Compose]] ← 编排 ← 所有组件Prometheus / Grafana / Alertmanager / node_exporter / cAdvisor / blackbox_exporter
## 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 核心架构
```yaml
# 监控栈组件
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