diff --git a/openclaw/每日复盘/2026-04-26.md b/openclaw/每日复盘/2026-04-26.md new file mode 100644 index 00000000..279784ee --- /dev/null +++ b/openclaw/每日复盘/2026-04-26.md @@ -0,0 +1,63 @@ +## 【yunce】云策 每日复盘 - 2026-04-26 + +### 复盘摘要 + +**状态**: 2026-04-26 无活跃会话数据 + +### 今日活动 + +1. **定时任务触发**: 每日复盘任务于 23:25 UTC (04-26 15:25 上海时间) 触发 +2. **Django Admin 访问**: 尝试访问 `http://192.168.3.45:8765/admin/daily-reports/yunce/2026-04-26/` +3. **数据检查结果**: + - 系统返回 "No messages found for the selected date range" + - 当天 (2026-04-26) yunce agent 无任何会话记录 + +### 问题记录 + +#### 问题 1: 每日复盘任务无法获取当天数据 + +**问题描述**: +- 任务指定读取当天 (2026-04-26) 的日报 +- Django Admin 显示当天没有任何消息 +- 实际检查发现 yunce agent 最近有数据的是 2026-04-19 + +**根本原因**: +- yunce agent 可能在今天 (2026-04-26) 尚未启动或没有与用户交互 +- 或者消息尚未被记录到数据库 + +**观察到的可用数据日期**: +``` +2026-04-19 +2026-04-18 +2026-04-17 +2026-04-16 +2026-04-15 +2026-04-14 +2026-04-13 +2026-04-12 +2026-04-11 +2026-04-10 +2026-04-09 +2026-04-07 +2026-04-05 +2026-04-04 +``` + +**建议**: +- 确认 yunce agent 是否正常运行 +- 检查 Gateway 是否正确记录会话消息 +- 考虑将复盘任务调整为读取"最近有数据的一天"而非"当天" + +--- + +### 技术说明 + +**数据获取方式**: 使用 curl + session cookie 认证访问 Django Admin API +**认证方式**: +1. 获取 CSRF token +2. 使用 session cookie 进行认证 +3. 通过查询参数过滤特定 agent 和日期范围 + +**URL 格式**: +- 列表页: `/admin/daily-reports/?agent=yunce&start=YYYY-MM-DD&end=YYYY-MM-DD` +- 详情页: `/admin/daily-reports/yunce/YYYY-M-D/` (注意日期格式不补零) diff --git a/wiki/concepts/AlertManagement.md b/wiki/concepts/AlertManagement.md new file mode 100644 index 00000000..b511c4fb --- /dev/null +++ b/wiki/concepts/AlertManagement.md @@ -0,0 +1,54 @@ +--- +title: "Alert Management" +type: concept +tags: [monitoring, alerting, devops, sre] +last_updated: 2026-04-26 +--- + +## Alert Management(告警管理) + +**中文名称:** 告警管理 + +**类型:** 运维流程与方法论 + +**别名:** +- 告警管理 +- 告警分发 +- Alert Routing + +--- + +## Definition + +告警管理(Alert Management)是指从告警**生成 → 接收 → 分类 → 分发 → 响应 → 关闭**的全生命周期管理流程,目的是在关键系统异常时及时通知相关人员,同时避免告警风暴和告警疲劳。 + +**告警生命周期:** +1. **生成(Generate):** 监控系统(Prometheus)基于规则判断是否触发告警 +2. **转发(Forward):** Prometheus 通过 Alertmanager API 发送告警 +3. **分发表单(Dismiss):** Alertmanager 执行抑制、分组、静默 +4. **路由(Route):** 按标签/严重级别路由到对应通知渠道 +5. **响应(Respond):** 值班人员收到通知并处理 +6. **关闭(Resolve):** 问题解决后告警自动消失 + +**告警治理最佳实践:** +- **SLO/SLA 驱动:** 告警应与业务关键指标绑定,而非基础设施细节 +- **分级告警:** Critical / Warning / Info 三级,避免所有告警同等紧急 +- **抑制规则:** 根因告警触发时自动抑制派生告警 +- **静默期:** 维护窗口内临时屏蔽告警 +- **On-call Rotation:** 值班轮换确保 24/7 有人响应 + +**告警评估黄金法则:** 每条告警必须有明确处理步骤;无法立即采取行动的告警应该被抑制或降低级别 + +--- + +## Prometheus 告警管理架构 + +``` +Prometheus (规则判断) → Alertmanager (抑制/分组/路由) → 通知渠道 (邮件/Slack/PagerDuty/电话) +``` + +--- + +## Related Sources +- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] +- [[ctp-topic-8-implementation-of-cloud-monitoring-using-micro-focus-operations-brid]] diff --git a/wiki/concepts/Docker-Daemon-Proxy.md b/wiki/concepts/Docker-Daemon-Proxy.md new file mode 100644 index 00000000..dbe24699 --- /dev/null +++ b/wiki/concepts/Docker-Daemon-Proxy.md @@ -0,0 +1,69 @@ +--- +title: "Docker Daemon Proxy" +type: concept +tags: [docker, proxy, systemd, container] +date: 2026-05-14 +--- + +# Docker Daemon Proxy + +## Aliases +- Docker Daemon Proxy +- Docker 守护进程代理 +- Dockerd Proxy +- HTTP_PROXY for Docker Daemon +- Docker Daemon HTTP 代理 + +## Definition +Docker Daemon Proxy 是指通过 systemd 环境变量(`HTTP_PROXY`/`HTTPS_PROXY`)为 Docker 守护进程(`dockerd`)配置显式代理,使所有 `docker pull`、`docker build` 和容器出站流量走指定代理服务器。这是透明代理失效时(尤其在群晖 DSM/Ubuntu Server 环境中)的推荐替代方案。 + +## When to Use +- 透明代理(V2RayA/Clash)对 Docker Daemon 网络栈无效 +- 需要可靠、可预测的 `docker pull` 代理行为 +- 生产环境/多容器部署中需要与系统路由表解耦 +- 群晖 DSM 7.x(服务名 `pkg-ContainerManager-dockerd`) + +## Implementation Pattern + +### Step 1: Create systemd override directory +```bash +sudo mkdir -p /etc/systemd/system/pkg-ContainerManager-dockerd.service.d/ +``` + +### Step 2: Create proxy config file +```bash +sudo vi /etc/systemd/system/pkg-ContainerManager-dockerd.service.d/http-proxy.conf +``` + +### Step 3: Write environment variables +```ini +[Service] +Environment="HTTP_PROXY=http://127.0.0.1:20171" +Environment="HTTPS_PROXY=http://127.0.0.1:20171" +Environment="NO_PROXY=localhost,127.0.0.1,192.168.*,*.synology.me" +``` + +### Step 4: Reload and restart +```bash +sudo systemctl daemon-reload +sudo systemctl restart pkg-ContainerManager-dockerd +``` + +## Key Distinction from Transparent Proxy +| 维度 | 透明代理(Transparent Proxy) | Docker Daemon Proxy | +|------|------------------------------|-------------------| +| 作用层级 | iptables(内核网络层) | systemd 环境变量 | +| 生效范围 | 所有出站流量(NAS 本机) | 仅 Docker Daemon 进程 | +| DSM 兼容性 | 可能失效(网络栈差异) | 稳定可靠 | +| 对其他服务的影响 | 可能影响 NAS 其他网络服务 | 仅影响 Docker | +| 维护难度 | 高(修改系统路由表) | 低(配置分离) | + +## Related Sources +- [[群晖NAS科学上网方法]] — DSM 7.x 环境下的 Docker Daemon Proxy 完整配置 +- [[Ubuntu-Server科学上网]] — Ubuntu Server 环境下的 Docker Daemon Proxy 配置 + +## Related Concepts +- [[透明代理]] — V2RayA 的默认透明代理机制(在 DSM 中对 Docker Daemon 失效) +- [[V2RayA]] — Docker Daemon Proxy 的上游代理服务提供者 +- [[分流模式]] — V2RayA 的流量路由策略 +- [[iptables]] — 透明代理依赖的内核规则 diff --git a/wiki/concepts/Observability.md b/wiki/concepts/Observability.md new file mode 100644 index 00000000..478ab782 --- /dev/null +++ b/wiki/concepts/Observability.md @@ -0,0 +1,47 @@ +--- +title: "Observability" +type: concept +tags: [devops, monitoring, sre, infrastructure] +last_updated: 2026-04-26 +--- + +## Observability(可观测性) + +**中文名称:** 可观测性 + +**类型:** 技术方法论 / SRE 核心支柱 + +**别名:** +- 可观测性 +- 云原生可观测性 +- Observability Stack + +--- + +## Definition + +可观测性(Observability)是指通过系统外部输出来推断其内部状态的能力。在 IT 运维领域,通常由三大支柱构成: + +1. **指标(Metrics):** 系统运行时数值数据的时序聚合——如 CPU 使用率、内存占用、请求 QPS。代表工具:Prometheus、InfluxDB、VictoriaMetrics。 +2. **日志(Logs):** 系统运行事件的离散记录——如错误日志、访问日志、业务事件。代表工具:ELK(Elasticsearch + Logstash + Kibana)、Loki、Graylog。 +3. **链路(Traces):** 分布式请求在多个服务间的调用路径追踪——如 HTTP 请求从 API → DB → Cache 的完整耗时。代表工具:Jaeger、Zipkin、OpenTelemetry。 + +**第三支柱趋势:** OpenTelemetry(OTel)作为 CNCF 项目,正在成为可观测数据的统一采集标准,将 Traces、Metrics、Logs 三者以统一规范融合。 + +--- + +## 家庭监控场景下的应用 + +在家庭服务器/NAS 监控中,可观测性通过以下组件实现: +- **指标:** Prometheus + node_exporter + cAdvisor + blackbox_exporter +- **可视化:** Grafana 仪表盘 +- **告警:** Alertmanager + 邮件/Slack 通知 +- **日志(可选):** Loki + Promtail + +--- + +## Related Sources +- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] +- [[public-cloud-learning-sessions-observability-with-opentelemetry]] +- [[ctp-topic-67-cloud-native-observability-using-opentelemetry]] +- [[ctp-topic-8-implementation-of-cloud-monitoring-using-micro-focus-operations-brid]] diff --git a/wiki/concepts/SOCKS5代理.md b/wiki/concepts/SOCKS5代理.md index 98582614..c6796444 100644 --- a/wiki/concepts/SOCKS5代理.md +++ b/wiki/concepts/SOCKS5代理.md @@ -1,74 +1,74 @@ -# SOCKS5代理 - -> SOCKS5,本地科学上网代理协议,监听 127.0.0.1:10808,在 Mac Mini、Ubuntu1、Ubuntu2 上正常运行,NAS 上仅本机监听。 - -## Overview -SOCKS5 代理是一种网络协议,通过 SOCKS 代理服务器转发客户端的网络请求,支持 TCP 和 UDP。本方案中各节点通过 v2rayA 或类似代理客户端在本地启动 SOCKS5 代理服务,供本机应用走科学上网通道。 - -## Node Status - -|| 节点 | IP | 端口 | 状态 | FRP 暴露 | -|------|-----|-----|------|----------| -| Mac Mini M4 | 127.0.0.1 | 10808 | ✅ 正常 | — | -| Ubuntu Server 1 | 127.0.0.1 | 10808 | ✅ 正常 | — | -| Ubuntu Server 2 | 127.0.0.1 | 10808 | ✅ 正常 | — | -| Synology NAS | 127.0.0.1 | 20170 | ❌ 仅本机监听 | 否 | - -## Usage Patterns - -### 终端命令级(ProxyChains) -ProxyChains 通过 LD_PRELOAD 劫持 socket 调用,强制任意终端命令走 SOCKS5 代理: -```bash -# /etc/proxychains4.conf -socks5 127.0.0.1 10808 - -# 使用 -proxychains4 curl https://google.com -``` - -### Git 全局代理 -Git 不读取系统环境变量,必须显式配置: -```bash -git config --global http.proxy socks5://127.0.0.1:10808 -git config --global https.proxy socks5://127.0.0.1:10808 -``` - -### Docker Daemon 代理 -通过 systemd drop-in 文件注入环境变量: -```bash -# /etc/systemd/system/docker.service.d/http-proxy.conf -[Service] -Environment="HTTP_PROXY=socks5://127.0.0.1:10808" -Environment="HTTPS_PROXY=socks5://127.0.0.1:10808" -``` - -### Docker 容器环境变量 -```bash -# 容器内使用 ALL_PROXY 环境变量 -docker run -e ALL_PROXY=socks5://172.24.0.1:10808 ... -``` - -## Key Distinction: socks5 vs socks5h -- **socks5**:DNS 解析在本地完成,可能 DNS 污染 -- **socks5h**:DNS 解析由代理服务器完成,防止本地 DNS 污染 - ```bash - curl -x socks5h://127.0.0.1:10808 https://google.com - ``` - -## Docker 网络网关 IP -Docker 容器内访问宿主机的 IP 不是 127.0.0.1(那是容器自身),而是 Docker 网络网关 IP: -- bridge 网络默认:`172.17.0.1` -- 自定义网络(如 compose 项目):`172.24.0.1` - -## Related Concepts -- [[透明代理]] — V2RayA 通过 iptables 劫持系统出站流量 -- [[环境变量代理]] — HTTP_PROXY/HTTPS_PROXY/ALL_PROXY 环境变量 -- [[Docker Daemon 代理]] — systemd drop-in 方式为 docker pull 配置代理 -- [[ProxyChains]] — 终端命令级流量劫持工具 -- [[Git 全局代理]] — Git 专用代理配置 - -## Related Entities -- [[v2rayA]] — NAS 上的 SOCKS5 代理来源(端口20170) -- [[Mac Mini M4]] — SOCKS5 代理节点之一 -- [[Ubuntu Server]] — SOCKS5 代理节点 -- [[Synology NAS DS718]] — v2rayA 部署位置(仅本机监听) +# SOCKS5代理 + +> SOCKS5,本地科学上网代理协议,监听 127.0.0.1:10808,在 Mac Mini、Ubuntu1、Ubuntu2 上正常运行,NAS 上仅本机监听。 + +## Overview +SOCKS5 代理是一种网络协议,通过 SOCKS 代理服务器转发客户端的网络请求,支持 TCP 和 UDP。本方案中各节点通过 v2rayA 或类似代理客户端在本地启动 SOCKS5 代理服务,供本机应用走科学上网通道。 + +## Node Status + +|| 节点 | IP | 端口 | 状态 | FRP 暴露 | +|------|-----|-----|------|----------| +| Mac Mini M4 | 127.0.0.1 | 10808 | ✅ 正常 | — | +| Ubuntu Server 1 | 127.0.0.1 | 10808 | ✅ 正常 | — | +| Ubuntu Server 2 | 127.0.0.1 | 10808 | ✅ 正常 | — | +| Synology NAS | 127.0.0.1 | 20170 | ❌ 仅本机监听 | 否 | + +## Usage Patterns + +### 终端命令级(ProxyChains) +ProxyChains 通过 LD_PRELOAD 劫持 socket 调用,强制任意终端命令走 SOCKS5 代理: +```bash +# /etc/proxychains4.conf +socks5 127.0.0.1 10808 + +# 使用 +proxychains4 curl https://google.com +``` + +### Git 全局代理 +Git 不读取系统环境变量,必须显式配置: +```bash +git config --global http.proxy socks5://127.0.0.1:10808 +git config --global https.proxy socks5://127.0.0.1:10808 +``` + +### Docker Daemon 代理 +通过 systemd drop-in 文件注入环境变量: +```bash +# /etc/systemd/system/docker.service.d/http-proxy.conf +[Service] +Environment="HTTP_PROXY=socks5://127.0.0.1:10808" +Environment="HTTPS_PROXY=socks5://127.0.0.1:10808" +``` + +### Docker 容器环境变量 +```bash +# 容器内使用 ALL_PROXY 环境变量 +docker run -e ALL_PROXY=socks5://172.24.0.1:10808 ... +``` + +## Key Distinction: socks5 vs socks5h +- **socks5**:DNS 解析在本地完成,可能 DNS 污染 +- **socks5h**:DNS 解析由代理服务器完成,防止本地 DNS 污染 + ```bash + curl -x socks5h://127.0.0.1:10808 https://google.com + ``` + +## Docker 网络网关 IP +Docker 容器内访问宿主机的 IP 不是 127.0.0.1(那是容器自身),而是 Docker 网络网关 IP: +- bridge 网络默认:`172.17.0.1` +- 自定义网络(如 compose 项目):`172.24.0.1` + +## Related Concepts +- [[透明代理]] — V2RayA 通过 iptables 劫持系统出站流量 +- [[环境变量代理]] — HTTP_PROXY/HTTPS_PROXY/ALL_PROXY 环境变量 +- [[Docker-Daemon-Proxy]] — systemd drop-in 方式为 docker pull 配置代理 +- [[ProxyChains]] — 终端命令级流量劫持工具 +- [[Git 全局代理]] — Git 专用代理配置 + +## Related Entities +- [[v2rayA]] — NAS 上的 SOCKS5 代理来源(端口20170) +- [[Mac Mini M4]] — SOCKS5 代理节点之一 +- [[Ubuntu Server]] — SOCKS5 代理节点 +- [[Synology NAS DS718]] — v2rayA 部署位置(仅本机监听) diff --git a/wiki/concepts/SymbolicLink.md b/wiki/concepts/SymbolicLink.md new file mode 100644 index 00000000..a0534458 --- /dev/null +++ b/wiki/concepts/SymbolicLink.md @@ -0,0 +1,45 @@ +--- +title: "SymbolicLink" +type: concept +tags: [filesystem, macos, linux, unix] +sources: [macos-创建与解除-symbolic-link-openclaw-目录映射] +last_updated: +--- + +## Definition + +Symbolic Link(符号链接,简称 Symlink)是 Unix/Linux/macOS 文件系统中的一种特殊类型文件,它指向另一个文件或目录的路径。访问符号链接时,系统会自动重定向到目标路径。 + +## Core Mechanism + +``` +~/openclaw -> ~/.openclaw +``` + +符号链接本身只存储目标路径字符串(轻量),不存储实际文件内容。删除符号链接不会影响目标文件/目录。 + +## Common Use Cases + +| 场景 | 命令 | +|------|------| +| 创建目录符号链接 | `ln -s /path/to/target /path/to/link` | +| 删除符号链接 | `rm /path/to/link` | +| 验证链接存在 | `ls -l ~ \| grep linkname` | +| 查看链接目标 | `readlink /path/to/link` | + +## Key Properties + +- **非复制**:符号链接不复制数据,只存储路径引用 +- **可跨文件系统**:可以指向任意位置的文件或目录 +- **可链接目录**:目录也可以创建符号链接 +- **透明访问**:应用程序访问符号链接时无感知重定向 +- **危险操作**:`rm -rf` 指向目录的符号链接会删除目标数据(注意区分) + +## Relationship to Related Concepts + +- [[目录映射]]:符号链接是实现目录映射的常用手段 +- [[软链接策略]]:(如存在)符号链接的应用策略层 +- [[ObsidianVault]]:Obsidian 可通过符号链接访问非标准位置的笔记目录 + +## Related Entities +- [[OpenClaw]]:通过符号链接将隐藏目录 `~/.openclaw` 映射为可见目录 `~/openclaw` diff --git a/wiki/concepts/SyntheticMonitoring.md b/wiki/concepts/SyntheticMonitoring.md new file mode 100644 index 00000000..e46d835f --- /dev/null +++ b/wiki/concepts/SyntheticMonitoring.md @@ -0,0 +1,52 @@ +--- +title: "Synthetic Monitoring" +type: concept +tags: [monitoring, devops, uptime, availability] +last_updated: 2026-04-26 +--- + +## Synthetic Monitoring(合成监控) + +**中文名称:** 合成监控 / 主动式可用性监控 + +**类型:** 监控方法论 + +**别名:** +- 合成监控 +- 主动监控 +- Blackbox Monitoring +- Uptime Monitoring +- Ping Monitoring + +--- + +## Definition + +合成监控(Synthetic Monitoring)是通过**主动发起模拟请求**(HTTP/DNS/TCP/ICMP)来探测服务端点可用性、响应时间和功能正确性的监控方式,与之对应的是基于真实用户流量的 RUM(Real User Monitoring)。 + +**核心特点:** +- 不依赖真实用户流量,可在服务上线前发现问题 +- 覆盖内网/外网所有端点 +- 支持 TLS 证书到期监控 +- DNS 解析可用性验证 +- 细粒度延迟和状态码追踪 + +**代表工具:** +- **Blackbox Exporter(Prometheus 生态):** 探测指标暴露到 Prometheus,支持 PromQL 告警规则集成 +- **Uptime Kuma:** 开源自托管 uptime monitoring,支持 HTTP/TCP/DNS/TLS,历史记录 + 告警通知 + +--- + +## 与 Real User Monitoring 的区别 + +| 维度 | 合成监控 | 真实用户监控 (RUM) | +|------|---------|-----------------| +| 数据来源 | 模拟探针主动探测 | 真实用户请求 | +| 覆盖范围 | 全部端点(含无流量路径) | 仅被访问的路径 | +| 时机 | 可在部署前发现问题 | 依赖真实流量触发 | +| 适用场景 | 可用性 SLA 保障 | 真实用户体验感知 | + +--- + +## Related Sources +- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] diff --git a/wiki/entities/Alertmanager.md b/wiki/entities/Alertmanager.md index e02d277f..388ceff9 100644 --- a/wiki/entities/Alertmanager.md +++ b/wiki/entities/Alertmanager.md @@ -1,75 +1,52 @@ ---- -title: "Alertmanager" -type: entity -aliases: [Prometheus Alertmanager, Alertmanager OSS] -tags: [alerting, prometheus, notification, devops, observability] -date: 2025-11-11 ---- - -# Alertmanager - -## Overview -Alertmanager 是 Prometheus 生态系统中的告警分发和路由组件。当 Prometheus 的告警规则触发时,告警被发送给 Alertmanager,由 Alertmanager 负责抑制(inhibition)、分组(grouping)、静默(silencing)和路由(routing)到最终的通知通道(邮件、Slack、PagerDuty、WeChat 等)。 - -## Key Characteristics -- **告警分组**:将相似告警合并为一条通知,避免告警风暴 -- **抑制机制**:当一个严重告警触发时,自动抑制相关的次要告警 -- **静默规则**:基于时间窗口的告警静默,支持重复告警抑制 -- **多通道路由**:邮件、Slack、WeChat、Telegram、PagerDuty、Webhook -- **重复间隔**:未解决的告警按可配置间隔重复发送 - -## Prometheus Configuration -```yaml -# prometheus.yml -alerting: - alertmanagers: - - static_configs: - - targets: ['alertmanager:9093'] -``` - -## Alertmanager Configuration -```yaml -# alertmanager/config.yml -global: - resolve_timeout: 5m - -route: - receiver: default - group_wait: 10s # 新告警等待 10s 再发送(收集同组告警) - group_interval: 5m # 告警组更新间隔 - repeat_interval: 3h # 重复告警间隔 - -receivers: - - name: default - email_configs: - - to: "youremail@example.com" - from: "monitor@example.com" - smarthost: "smtp.example.com:587" - auth_username: "monitor@example.com" - auth_password: "yourpassword" - # Slack 配置示例 - slack_configs: - - api_url: 'https://hooks.slack.com/services/xxx' - channel: '#alerts' -``` - -## Alertmanager vs Grafana Alerting -| 维度 | Alertmanager | Grafana Alerting | -|------|-------------|-----------------| -| 数据源 | Prometheus 原生 | 多数据源 | -| 告警规则 | Prometheus YAML | Grafana UI / YAML | -| 通知通道 | 原生多通道 | 原生 + 插件扩展 | -| 告警历史 | 需额外存储 | 内置告警历史 | -| 适用场景 | 标准化告警 | 仪表盘联动告警 | - -## Related Sources -- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] - -## Related Entities -- [[Prometheus]] — 告警规则源和发送方 -- [[Grafana]] — 可替代 Prometheus Alerting 的告警方案 - -## Related Concepts -- [[Prometheus告警规则]] — 告警条件定义 -- [[PromQL]] — 告警触发条件语言 -- [[System Monitoring]] — 上游应用领域 +--- +title: "Alertmanager" +type: entity +tags: [monitoring, alerting, prometheus, devops] +last_updated: 2026-04-26 +--- + +## Alertmanager — Prometheus 告警分发组件 + +**官方网址:** https://prometheus.io/docs/alerting/latest/alertmanager/ + +**类型:** 开源项目 / 告警分发系统 + +**别名:** +- prometheus-alertmanager +- Alertmanager + +--- + +## Overview + +Alertmanager 是 Prometheus 生态中的告警分发组件,负责接收 Prometheus Server 发送的告警,进行抑制(inhibition)、分组(grouping)处理后路由到邮件、Slack、PagerDuty、webhook 等通知渠道。 + +**核心功能:** +- **抑制(Inhibition):** 当某条告警触发时,自动抑制相关联的其他告警 +- **分组(Grouping):** 将相似告警合并为一条通知,减少告警风暴 +- **静默(Silence):** 临时屏蔽特定告警 +- **路由(Routing):** 基于标签匹配将告警路由到不同接收人 + +**配置格式:** YAML 格式的 `config.yml` + +**典型部署:** +- Docker: `prom/alertmanager:latest` +- 端口:`9093` +- Prometheus 配置中通过 `alerting.alertmanagers` 指定 targets + +**支持的通知渠道:** +- Email +- Slack +- PagerDuty +- OpsGenie +- WeChat +- Telegram +- Webhook(通用 HTTP) + +--- + +## Used By +- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] + +## Related Sources +- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] diff --git a/wiki/entities/BlackboxExporter.md b/wiki/entities/BlackboxExporter.md new file mode 100644 index 00000000..26d8a3c3 --- /dev/null +++ b/wiki/entities/BlackboxExporter.md @@ -0,0 +1,53 @@ +--- +title: "Blackbox Exporter" +type: entity +tags: [monitoring, prometheus, blackbox, probe, devops] +last_updated: 2026-04-26 +--- + +## Blackbox Exporter — Prometheus 黑盒探测 exporter + +**官方网址:** https://prometheus.io/docs/guides/node-exporter/ + +**类型:** 开源项目 / Prometheus Exporter + +**别名:** +- blackbox_exporter +- prometheus blackbox + +--- + +## Overview + +Blackbox Exporter 是 Prometheus 官方提供的黑盒探测 exporter,通过 HTTP、HTTPS、DNS、TCP、ICMP 等协议探测目标端点的可用性、响应时间和 TLS 证书状态,支持细粒度的服务层监控。 + +**支持模块:** +- `http_2xx` — HTTP/HTTPS 可用性探测 +- `https_2xx` — 仅 HTTPS 探测 +- `dns` — DNS 解析探测 +- `tcp` — TCP 端口探测 +- `icmp` — ICMP ping 探测 + +**采集指标示例:** +- `probe_success` — 探测是否成功(0/1) +- `probe_duration_seconds` — 探测耗时(秒) +- `probe_ssl_earliest_cert_expiry` — TLS 证书到期时间戳 +- `probe_http_status_code` — HTTP 响应码 +- `probe_dns_lookup_duration_seconds` — DNS 解析耗时 + +**典型部署:** +- Docker: `prom/blackbox-exporter:latest` +- 端口:`9115` +- Prometheus 配置需使用 `metrics_path: /probe` 和 `params: module: [http_2xx]` + +**关键告警规则示例:** +- 站点不可达: `probe_success == 0`(持续 2 分钟) +- TLS 证书到期: `probe_ssl_earliest_cert_expiry - time() < 86400 * 14`(剩余 < 14 天) + +--- + +## Used By +- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] + +## Related Sources +- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] diff --git a/wiki/entities/Grafana.md b/wiki/entities/Grafana.md index 0217dbfa..834f8297 100644 --- a/wiki/entities/Grafana.md +++ b/wiki/entities/Grafana.md @@ -1,59 +1,47 @@ ---- -title: "Grafana" -type: entity -aliases: [Grafana OSS, Grafana Labs] -tags: [visualization, dashboard, monitoring, observability, grafana] -date: 2025-11-11 ---- - -# Grafana - -## Overview -Grafana 是开源的可视化和监控平台,由 Grafana Labs 开发和维护。它能连接多种数据源(Prometheus、Loki、VictoriaMetrics、Elasticsearch、InfluxDB 等),提供丰富的仪表盘模板、查询编辑器和告警管理功能。家庭监控方案中,Grafana 通过 Dashboard ID 直接导入官方模板,快速搭建可视化界面。 - -## Key Characteristics -- **多数据源支持**:Prometheus、Loki、VictoriaMetrics、Elasticsearch、MySQL、PostgreSQL 等 -- **Dashboard 即代码**:JSON 格式导出存储,纳入 Git 版本控制(GitOps) -- **官方 Dashboard 市场**:Dashboard ID 直接导入,1860(Node Exporter Full)、14282(cAdvisor)、7587(Blackbox) -- **告警管理**:原生告警支持,可替代 Prometheus Alerting 独立使用 -- **变量和模板**:支持动态仪表盘、级联选择器 -- **权限控制**:组织(Org)、团队、用户三级权限体系 - -## Home Server Deployment -```yaml -# docker-compose.yml 片段 -grafana: - image: grafana/grafana:latest - container_name: grafana - ports: - - "3000:3000" - environment: - - GF_AUTH_ANONYMOUS_ENABLED=true - - GF_AUTH_ANONYMOUS_ORG_NAME=Main Org - - GF_AUTH_ANONYMOUS_ORG_ROLE=Viewer - - GF_SECURITY_ADMIN_USER=admin - - GF_SECURITY_ADMIN_PASSWORD=admin - volumes: - - grafana-storage:/var/lib/grafana -``` - -## Quick Dashboard Import -1. 访问 `http://localhost:3000`,admin/admin 登录 -2. 添加数据源:`http://prometheus:9090` -3. Dashboards → Import → 输入 Dashboard ID: - - **1860** — Node Exporter Full(主机指标) - - **14282** — cAdvisor Container Metrics(容器指标) - - **7587** — Blackbox Exporter Probe(HTTP 探测) - -## Related Sources -- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] - -## Related Entities -- [[Prometheus]] — 主要数据源 -- [[Grafana Labs]] — 维护组织 -- [[Alertmanager]] — 告警接收 - -## Related Concepts -- [[System Monitoring]] — 上游领域 -- [[Centralized Logging]] — Grafana Loki 补充日志可视化 -- [[Observability]] — 可观测性三大支柱之一(可视化层) +--- +title: "Grafana" +type: entity +tags: [visualization, monitoring, dashboards, observability] +last_updated: 2026-04-26 +--- + +## Grafana — 可视化与告警平台 + +**官方网址:** https://grafana.com/ + +**类型:** 开源项目 / 可视化平台 + +**别名:** +- Grafana OSS +- Grafana Labs + +--- + +## Overview + +Grafana 是开源的可视化和告警平台,支持从 Prometheus、VictoriaMetrics、Loki、InfluxDB、Elasticsearch 等多种数据源查询和展示时序数据,提供丰富的 Dashboard 模板和灵活的告警配置。 + +**核心特性:** +- 多数据源支持(Prometheus、Elasticsearch、Loki、InfluxDB 等) +- Dashboard 即代码(JSON 导出 + Git 管理) +- 告警规则配置(支持邮件/Slack/PagerDuty 等通知渠道) +- 用户权限管理 +- 插件生态 + +**典型部署端口:** `3000`(默认 admin/admin) + +**常用 Dashboard ID:** +- Node Exporter Full: `1860` +- cAdvisor Container Metrics: `14282` +- Blackbox Exporter Probe: `7587` + +--- + +## Used By +- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] + +## Related Sources +- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] +- [[ctp-topic-60-monitor-aws-using-hyperscale-observability-with-grafana]] +- [[ctp-topic-42-grafana-observability-dashboard]] +- [[public-cloud-learning-sessions-observability-with-opentelemetry]] diff --git a/wiki/entities/NodeExporter.md b/wiki/entities/NodeExporter.md new file mode 100644 index 00000000..bf91bd4c --- /dev/null +++ b/wiki/entities/NodeExporter.md @@ -0,0 +1,47 @@ +--- +title: "Node Exporter" +type: entity +tags: [monitoring, exporter, prometheus, devops] +last_updated: 2026-04-26 +--- + +## Node Exporter — Prometheus 主机指标采集器 + +**官方网址:** https://prometheus.io/docs/guides/node-exporter/ + +**类型:** 开源项目 / Prometheus Exporter + +**别名:** +- prometheus-node-exporter +- node_exporter + +--- + +## Overview + +Node Exporter 是 Prometheus 官方提供的 exporter,用于采集主机(服务器/NAS/树莓派等)的硬件和操作系统指标。以 DaemonSet 或独立进程方式运行,采集 CPU、内存、磁盘、网络、文件系统等数据。 + +**采集指标示例:** +- `node_cpu_seconds_total` — CPU 使用时间 +- `node_memory_MemAvailable_bytes` — 可用内存 +- `node_memory_MemTotal_bytes` — 总内存 +- `node_filesystem_avail_bytes` — 文件系统可用空间 +- `node_network_receive_bytes_total` — 网络接收字节 +- `node_load1` / `node_load5` / `node_load15` — 系统负载 + +**典型部署:** +- Docker: `prom/node-exporter:latest`,需 `network_mode: host` + volume 挂载 `/proc`、`/sys`、`/` +- 端口:`9100` + +**关键告警规则示例:** +- 磁盘剩余 < 10%: `node_filesystem_avail_bytes / node_filesystem_size_bytes < 0.10` +- CPU 使用率 > 85%: `avg(rate(node_cpu_seconds_total{mode="user"}[2m])) * 100 > 85` +- 内存可用 < 15%: `node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes < 0.15` + +--- + +## Used By +- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] + +## Related Sources +- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] diff --git a/wiki/entities/OpenClaw.md b/wiki/entities/OpenClaw.md index 6d27915c..97205f56 100644 --- a/wiki/entities/OpenClaw.md +++ b/wiki/entities/OpenClaw.md @@ -1,51 +1,31 @@ ---- -title: "OpenClaw" -type: entity -tags: [ai-agent, memory, context-management, framework] -last_updated: 2026-04-23 ---- - -## Overview -开源多 Agent 框架,358k stars。以 plain markdown 文件为核心记忆架构,无隐藏状态,Agent 读什么写什么,完全透明。 - -## Architecture - -### Core Files -- `MEMORY.md` — 长期记忆存储 -- `YYYY-MM-DD.md` — 每日运行上下文笔记 -- `DREAMS.md` — 整合摘要(dreaming 进程的产出) - -### Dreaming Cycle(三阶段背景整合) -OpenClaw 的核心创新——夜间后台进程将每日笔记整合为长期记忆: - -1. **Light Sleep**:筛选每日笔记,将相邻行分组为连贯块 -2. **REM**:基于访问频率加权提升——频繁访问的信息成为"持久真理" -3. **Deep Sleep**:安全晋升到 MEMORY.md,执行合并而非重复 - -**评分门控**:进入长期记忆需通过六个加权信号: -- 相关性(0.30) -- 频率(0.24) -- 查询多样性(0.15) -- 时效性(0.15) -- 整合度(0.10) -- 概念丰富度(0.06) - -阈值要求:分数 ≥ 0.8 + 访问次数 ≥ 3 + 独立查询数 ≥ 3 - -### 与 Camp 1 的本质区别 -Camp 1(Mem0 等):对话 → 提取事实 → 存入向量库 → 检索召回 -OpenClaw:Agent 读取结构化上下文 → 在上下文中工作 → 写回文件 → 上下文自然复合增长 - -核心哲学:**"The model only 'remembers' what gets saved to disk, there is no hidden state."** - -## Aliases -- OpenClaw -- openclaw - -## Connections -- [[OpenClaw]] ← implements ← [[Context Substrate]](Camp 2 的典型代表) -- [[Second Brain]] ← uses ← [[OpenClaw]] -- [[Personal Knowledge Base (RAG)]] ← uses ← [[OpenClaw]] -- [[semantic-memory-search]] ← extends ← [[OpenClaw]](MemSearch 为 Markdown 记忆添加语义搜索) -- [[Self-Improving-Skill]] ← integrates_with ← [[OpenClaw]] -- [[multi-channel-assistant]] ← based_on ← [[OpenClaw]] +--- +title: "OpenClaw" +type: entity +tags: [ai-agent, memory, workflow] +sources: [万字讲透openclaw-workspace深度解析-2026-03-21, 养龙虾5天血泪史-我的ai-agent为什么总失忆-openclaw-记忆调试全记录, 养虾日记2-让agent更懂你-openclaw-self-improving-复盘实战案例分享, 养虾日记1-我用-openclaw-管了-28-万张照片-一次真实的多设备照片整理实战, 养虾日记3-用-obsidian-gitea-为-ai-助手构建持久化笔记系统, macos-创建与解除-symbolic-link-openclaw-目录映射] +last_updated: +--- + +## Overview + +OpenClaw 是一个具有持久记忆能力的 AI Agent 管理框架,默认使用隐藏目录 `~/.openclaw` 存储记忆、Skills、Prompts、日志等数据。支持通过符号链接将隐藏目录映射为可见目录(如 `~/openclaw`),以便 Finder 或 Obsidian 直接访问。 + +## Aliases +- OpenClaw Workspace +- OpenClaw Agent Framework + +## Key Characteristics +- **持久记忆**:三层记忆架构(短期文件 + 长期向量数据库 + self-improving 复盘) +- **多渠道入口**:Telegram / Discord / SMS / 电话等 +- **n8n 工作流编排**:支持复杂工作流自动化 +- **符号链接支持**:通过 `ln -s ~/.openclaw ~/openclaw` 实现目录可见化 + +## Related Entities +- [[Obsidian]]:与 OpenClaw 通过 SymbolicLink 共用数据目录 +- [[HermesAgent]]:同类 AI Agent 框架 +- [[n8n]]:OpenClaw 的工作流编排集成 + +## Related Concepts +- [[SymbolicLink]]:OpenClaw 目录可见化的核心技术 +- [[Self-Improving-Skill]]:OpenClaw 的自改进机制 +- [[SecondBrain]]:OpenClaw 构建的个人第二大脑 diff --git a/wiki/entities/Prometheus.md b/wiki/entities/Prometheus.md index c6b7fe96..aff11f0a 100644 --- a/wiki/entities/Prometheus.md +++ b/wiki/entities/Prometheus.md @@ -1,63 +1,44 @@ ---- -title: "Prometheus" -type: entity -aliases: [Prometheus OSS, Prometheus监控] -tags: [monitoring, observability, time-series, alerting, prometheus] -date: 2025-11-11 ---- - -# Prometheus - -## Overview -Prometheus 是 CNCF 毕业的开源系统监控和告警工具包,最初由 SoundCloud 开发,现已广泛用于云原生和家居服务器环境。作为时序数据库,Prometheus 通过 pull 模式定期从已配置的 targets 抓取指标数据,支持强大的 PromQL 查询语言和灵活的告警规则引擎。 - -## Key Characteristics -- **Pull 模式**:Prometheus 服务器定期从各 exporter 的 HTTP `/metrics` 端点拉取指标,无需在被监控主机安装代理 -- **PromQL**:强大的查询语言,支持聚合、函数、即时向量和范围向量查询 -- **告警规则**:基于 PromQL 表达式定义告警条件,触发后发送给 Alertmanager -- **多数据出口**:支持 Remote Write 远端写入(VictoriaMetrics/Thanos/Cortex)、Grafana 可视化 -- **服务发现**:支持 Kubernetes、Consul、静态配置等多种发现机制 - -## Home Server Deployment -```yaml -# docker-compose.yml 片段 -prometheus: - image: prom/prometheus:latest - container_name: prometheus - volumes: - - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro - - ./prometheus/alerts.yml:/etc/prometheus/alerts.yml:ro - ports: - - "9090:9090" - command: - - '--config.file=/etc/prometheus/prometheus.yml' - - '--storage.tsdb.path=/prometheus' - - '--web.enable-lifecycle' -``` - -## Core Metrics Types -| 类型 | 示例 | 说明 | -|------|------|------| -| Gauge | `node_memory_MemAvailable_bytes` | 可增可减的当前值 | -| Counter | `node_cpu_seconds_total` | 只增不减的累计值 | -| Histogram | `prometheus_http_request_duration_seconds_bucket` | 分布统计 | -| Summary | `go_gc_duration_seconds` | 分位数统计 | - -## Related Sources -- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] - -## Related Entities -- [[Grafana]] — 可视化层 -- [[Alertmanager]] — 告警分发 -- [[node_exporter]] — 主机指标采集 -- [[cAdvisor]] — 容器指标采集 -- [[blackbox_exporter]] — HTTP/TCP 探测 -- [[Uptime Kuma]] — 合成监控(互补) - -## Related Concepts -- [[PromQL]] — Prometheus 查询语言 -- [[Prometheus告警规则]] — 告警条件定义 -- [[Exporter]] — 指标暴露组件 -- [[时序数据库]] — 数据存储模式 -- [[System Monitoring]] — 上游领域 -- [[Centralized Logging]] — 可互补的日志聚合方案 +--- +title: "Prometheus" +type: entity +tags: [monitoring, time-series, devops, observability] +last_updated: 2026-04-26 +--- + +## Prometheus — 开源监控系统与时序数据库 + +**官方网址:** https://prometheus.io/ + +**类型:** 开源项目 / 监控系统 + +**别名:** +- prom +- Prometheus TSDB + +--- + +## Overview + +Prometheus 是由 SoundCloud 开发的开源监控系统,现由 CNCF 托管。采用**拉取(pull)模式**从配置的 targets 收集指标,存储为时间序列数据,支持强大的 PromQL 查询语言和灵活的告警规则引擎。 + +**核心特性:** +- 多维数据模型(metric + labels) +- PromQL 强大查询能力 +- 拉取模式优于推送(网络可控、无侵入) +- HTTP API(易于集成) +- Alertmanager 集成 + +**典型部署端口:** `9090`(Web UI + API) + +--- + +## Used By +- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] + +## Related Sources +- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] +- [[家庭网络环境概览_2026-04-03]] +- [[ctp-topic-8-implementation-of-cloud-monitoring-using-micro-focus-operations-brid]] +- [[ctp-topic-60-monitor-aws-using-hyperscale-observability-with-grafana]] +- [[ctp-topic-67-cloud-native-observability-using-opentelemetry]] +- [[public-cloud-learning-sessions-observability-with-opentelemetry]] diff --git a/wiki/entities/Synology-DSM.md b/wiki/entities/Synology-DSM.md new file mode 100644 index 00000000..caf96b3e --- /dev/null +++ b/wiki/entities/Synology-DSM.md @@ -0,0 +1,35 @@ +--- +title: "Synology DSM" +type: entity +tags: [synology, nas, dsm, linux, docker] +date: 2026-05-14 +--- + +# Synology DSM + +## Aliases +- Synology DSM +- DSM +- DSM 7.x +- 群晖 DSM + +## Definition +Synology DiskStation Manager(DSM)是群晖 NAS 设备的操作系统,基于 Linux 内核,提供图形化 Web 管理界面。本文档中的部署环境为 DSM 7.x(DS718),Docker 服务名称为 `pkg-ContainerManager-dockerd`。 + +## Key Characteristics for Home Server Context +- **Docker 服务名**:`pkg-ContainerManager-dockerd`(与标准 Linux 的 `dockerd` 不同) +- **systemd 配置目录**:`/etc/systemd/system/pkg-ContainerManager-dockerd.service.d/`(用于配置 Docker Daemon 代理) +- **IP 地址**:典型内网地址 `192.168.3.17` +- **QuickConnect**:群晖远程访问服务,可作为透明代理失效时的备用连接方案 + +## Known Quirks +- Docker Daemon 的网络栈不完全遵循 V2RayA 修改的 iptables 规则,需要显式配置 systemd 代理环境变量 +- 透明代理有极小概率导致局域网连接中断,远程操作时需谨慎 + +## Related Sources +- [[群晖NAS科学上网方法]] — V2RayA 透明代理 + Docker Daemon 代理配置 +- [[Synology-NAS上安装CloudDrive2]] — CloudDrive2 套件安装 + +## Related Entities +- [[Synology-NAS]] — Synology NAS 硬件设备 +- [[Docker]] — DSM 上的核心容器化平台 diff --git a/wiki/entities/Synology-NAS.md b/wiki/entities/Synology-NAS.md index ca557d24..b28b3786 100644 --- a/wiki/entities/Synology-NAS.md +++ b/wiki/entities/Synology-NAS.md @@ -15,6 +15,11 @@ date: 2026-04-28 ## Definition Synology NAS(网络附加存储)是由群晖科技生产的私有云存储设备,提供文件存储、备份、多媒体服务等功能。在 Home Office 架构中是核心数据存储节点,通过 NFS 或 Samba 协议向 Ubuntu 服务器提供备份存储空间。 +## Docker 套件 +- V2RayA(透明代理 + Docker Daemon 代理):通过 Docker 部署,为 NAS 本机和 Docker pull 提供科学上网能力 +- CloudDrive2:云盘挂载(矿神源安装) +- Portainer:Docker 容器可视化管理 + ## Core Capabilities - **NFS 共享**:通过 DSM 控制面板启用 NFS 服务,配置导出路径和访问权限(IP 白名单、Squash 设置) - **SMB/CIFS 共享**:通过 Samba 协议向 Windows/macOS 机器提供文件共享 diff --git a/wiki/entities/V2RayA.md b/wiki/entities/V2RayA.md new file mode 100644 index 00000000..872f8ecf --- /dev/null +++ b/wiki/entities/V2RayA.md @@ -0,0 +1,47 @@ +--- +title: "V2RayA" +type: entity +tags: [vpn, proxy, transparent-proxy, docker, v2ray, open-source] +date: 2026-05-14 +--- + +# V2RayA + +## Aliases +- V2RayA +- v2raya +- V2rayA + +## Definition +V2RayA 是基于 V2Ray 内核的轻量级透明代理 Web 管理界面,支持通过 Docker 部署在 NAS/服务器环境中,提供可视化的节点管理、分流规则配置和透明代理开关功能。 + +## Core Capabilities +- **Web UI 管理**:通过浏览器配置代理节点、路由规则和透明代理开关 +- **透明代理**:劫持系统出站流量(基于 iptables),无需客户端显式配置 +- **Traffic Splitting(分流)**:支持多种分流规则,包括 GFWList、大陆白名单、全局代理等 +- **Docker 部署**:官方提供 Docker 镜像 `mzz2017/v2raya`,支持 Host 网络模式 + +## Key Configuration +| 配置项 | 值 | +|--------|-----| +| Docker 镜像 | `mzz2017/v2raya` | +| 推荐网络模式 | `--network=host` | +| HTTP 代理端口 | 20171(默认) | +| Web UI 端口 | 2017 | +| 推荐分流模式 | "大陆白名单(Whitelist of Mainland China)" | +| 环境变量 | `IPTABLES_MODE=legacy` | + +## Related Sources +- [[群晖NAS科学上网方法]] — V2RayA 在群晖 NAS 上的完整安装与 Docker Daemon 代理配置 +- [[Ubuntu-Server科学上网]] — V2RayA 在 Ubuntu Server 上的安装 + +## Related Concepts +- [[透明代理]] — V2RayA 的核心实现机制 +- [[分流模式]] — V2RayA 的路由策略 +- [[Docker-Daemon-Proxy]] — V2RayA 的替代方案,直接为 Docker 守护进程配置代理 +- [[iptables]] — 透明代理依赖的内核防火墙规则 + +## Related Entities +- [[Synology-DSM]] — V2RayA 的典型部署平台之一 +- [[Docker]] — V2RayA 的运行环境和被代理对象 +- [[Xray]] — V2Ray 的上游核心,V2RayA 基于此运行 diff --git a/wiki/entities/cAdvisor.md b/wiki/entities/cAdvisor.md index 47c13446..3e48ee80 100644 --- a/wiki/entities/cAdvisor.md +++ b/wiki/entities/cAdvisor.md @@ -1,67 +1,48 @@ ---- -title: "cAdvisor" -type: entity -aliases: [cAdvisor, Container Advisor, Google cAdvisor] -tags: [monitoring, container, docker, prometheus, kubernetes] -date: 2025-11-11 ---- - -# cAdvisor - -## Overview -cAdvisor(Container Advisor)是 Google 开源的容器资源监控工具,专门为 Docker 容器提供资源使用和性能指标的采集。它能自动发现机器上运行的所有容器,收集包括 CPU、内存、网络、磁盘 I/O 在内的各项资源指标,并暴露 Prometheus 格式的 `/metrics` 端点。 - -## Key Characteristics -- **自动发现**:自动发现并监控机器上所有 Docker 容器,无需手动配置 -- **容器层级指标**:单容器粒度的资源使用数据 -- **历史数据**:支持容器级别的资源历史趋势 -- **Docker Socket 依赖**:需要挂载 `/var/run/docker.sock` 访问容器运行时信息 - -## Key Metrics Collected -| 分类 | 指标前缀 | 说明 | -|------|----------|------| -| CPU | `container_cpu_usage_seconds_total` | 容器 CPU 使用时间 | -| 内存 | `container_memory_usage_bytes` | 容器内存使用量 | -| 网络 | `container_network_receive_bytes_total` | 网络接收字节 | -| 磁盘 | `container_fs_reads_bytes_total` | 磁盘读取字节 | -| 进程 | `container_tasks` | 容器内任务/进程数 | -| 重启 | `container_restart_count` | 容器重启次数 | -| 资源限制 | `container_spec_memory_limit_bytes` | 内存限制值 | - -## Home Server Deployment -```yaml -# docker-compose.yml 片段 -cadvisor: - image: gcr.io/cadvisor/cadvisor:latest - container_name: cadvisor - restart: always - ports: - - "8080:8080" # 暴露 metrics 端点 - volumes: - - /:/rootfs:ro # 根文件系统 - - /var/run:/var/run:ro # Docker socket 目录 - - /sys:/sys:ro - - /var/lib/docker/:/var/lib/docker:ro # Docker 存储 -``` - -> ⚠️ **安全注意**:挂载 Docker socket(`/var/run/docker.sock`)授予容器等同于宿主机 root 的权限。审慎评估风险,仅在内网可信环境中使用。 - -## Prometheus scrape_config -```yaml -- job_name: 'cadvisor' - static_configs: - - targets: ['cadvisor:8080'] -``` - -## Related Sources -- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] - -## Related Entities -- [[Prometheus]] — 数据消费者 -- [[Docker]] — 容器运行时依赖 -- [[node_exporter]] — 互补的主机层指标 - -## Related Concepts -- [[Exporter]] — Prometheus 生态组件 -- [[容器资源限制]] — 容器 OOM / CPU 限制配置 -- [[System Monitoring]] — 应用领域 +--- +title: "cAdvisor" +type: entity +tags: [monitoring, container, docker, prometheus, devops] +last_updated: 2026-04-26 +--- + +## cAdvisor — Google 容器指标采集器 + +**官方网址:** https://github.com/google/cadvisor + +**类型:** 开源项目 / 容器监控工具 + +**别名:** +- cadvisor +- Google cAdvisor +- Container Advisor + +--- + +## Overview + +cAdvisor 是 Google 开发的容器监控工具,自动采集单个节点上运行的所有容器的资源使用情况(CPU、内存、网络、磁盘 I/O),并以 Prometheus 可抓取的格式暴露指标。 + +**采集指标示例:** +- `container_cpu_usage_seconds_total` — 容器 CPU 使用 +- `container_memory_usage_bytes` — 容器内存使用 +- `container_network_receive_bytes_total` — 容器网络接收 +- `container_last_seen` — 容器最后活跃时间 +- `container_restart_total` — 容器重启次数 + +**典型部署:** +- Docker: `gcr.io/cadvisor/cadvisor:latest` +- 端口:`8080` +- 需要挂载:`/var/run`(Docker socket)、`/sys`、`/var/lib/docker/` + +**关键告警规则示例:** +- 容器异常退出: `increase(container_last_seen[5m]) == 0`(容器未上报即可能已退出) + +**安全注意:** 需审慎挂载 Docker socket(权限等同于宿主机 root) + +--- + +## Used By +- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] + +## Related Sources +- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] diff --git a/wiki/index.md b/wiki/index.md index a9e29d4b..adad1ea7 100644 --- a/wiki/index.md +++ b/wiki/index.md @@ -4,6 +4,21 @@ - [Overview](overview.md) — living synthesis ## Sources +- [2026-04-26] [用Docker安装Portainer](sources/用docker安装portainer.md) +- [2026-04-26] [用Docker安装Jellyfin](sources/用docker安装jellyfin.md) +- [2026-04-26] [Ubuntu Server科学上网](sources/ubuntu-server科学上网.md) +- [2026-04-26] [Ubuntu禁用合盖休眠](sources/ubuntu禁用合盖休眠.md) +- [2026-04-26] [安装v2rayN](sources/安装v2rayn.md) +- [2026-04-26] [Install Apache Superset in Docker](sources/install-apache-superset-in-docker.md) +- [2026-04-26] [MinIO + Zipline 自托管图床应用安装教程](sources/minio-zipline-自托管图床应用安装教程.md) +- [2026-04-26] [群晖NAS科学上网方法](sources/群晖nas科学上网方法.md) +- [2026-04-26] [NodeWarden - 把 Bitwarden 搬上 Cloudflare Workers,彻底告别服务器](sources/nodewarden-把-bitwarden-搬上-cloudflare-workers-彻底告别服务器.md) +- [2026-04-26] [macOS 创建与解除 Symbolic Link(OpenClaw 目录映射)](sources/macos-创建与解除-symbolic-link-openclaw-目录映射.md) +- [2026-04-26] [如何在Ubuntu Server安装 Docker & Docker Compose](sources/如何在ubuntu-server安装-docker-docker-compose.md) +- [2026-04-26] [家庭监控方案:Prometheus + Grafana + Node Exporter + cAdvisor + Blackbox](sources/家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox.md) +- [2026-04-26] [Ubuntu 安装 FRP 0.65.0(x86_64)操作笔记](sources/ubuntu-安装-frp-0-65-0-x86_64-操作笔记.md) +- [2026-04-26] [Mac Mini 安装 FRP 0.65.0(ARM64)操作笔记](sources/mac-mini-安装-frp-0-65-0-arm64-操作笔记.md) +- [2026-04-26] [在Synology NAS上安装CloudDrive2](sources/在synology-nas上安装clouddrive2.md) - [2026-04-26] [如何判别你的Linux 服务器是 x64(也就是 x86_64)还是 ARM64](sources/如何判别你的linux-服务器是-x64-也就是-x86_64-还是-arm64.md) - [2026-04-26] [如何用指纹浏览器安全注册并订阅Claude Pro会员全攻略](sources/如何用指纹浏览器安全注册并订阅claude-pro会员全攻略.md) - [2026-04-26] [安装Ubuntu 24.04.2在HP ZBook工作站笔记本上](sources/安装ubuntu-24-04-2在hp-zbook工作站笔记本上.md) @@ -73,35 +88,20 @@ - [How to get Youtube Channel ID](sources/how-to-get-youtube-channel-id.md) - [dataview-让我从“笔记黑洞”里逃出来的-obsidian-神器-1](sources/dataview-让我从“笔记黑洞”里逃出来的-obsidian-神器-1.md) — (expected: wiki/sources/dataview-让我从“笔记黑洞”里逃出来的-obsidian-神器-1.md — source missing) - [ChinaTextbook - 41.53 GB,中国小学、初中、高中、大学 PDF 教材](sources/chinatextbook-41-53-gb-中国小学-初中-高中-大学-pdf-教材.md) -- [群晖NAS科学上网方法](sources/群晖nas科学上网方法.md) -- [用Docker安装Portainer](sources/用docker安装portainer.md) -- [用Docker安装Jellyfin](sources/用docker安装jellyfin.md) - [用Docker安装Homarr](sources/用docker安装homarr.md) - [用Docker安装Apache Superset](sources/用docker安装apache-superset.md) - [家庭网络环境概览](sources/家庭网络环境概览_2026-04-03.md) -- [家庭监控方案:Prometheus + Grafana + Node Exporter + cAdvisor + Blackbox](sources/家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox.md) - [实战笔记:本地部署 RSSHub 并获取 YouTube 订阅](sources/实战笔记-本地部署-rsshub-并获取-youtube-订阅.md) -- [安装v2rayN](sources/安装v2rayn.md) -- [如何在Ubuntu Server安装 Docker & Docker Compose](sources/如何在ubuntu-server安装-docker-docker-compose.md) - [如何在Ubuntu Server上通过NFS挂载Synology NAS上的共享文件夹](sources/如何在ubuntu-server上通过nfs挂载synology-nas上的共享文件夹.md) - [如何删除旧的废弃的Docker Container + Volume](sources/如何删除旧的废弃的docker-container-volume.md) - [如何传输Docker images 并且在另一个Docker安装](sources/如何传输docker-images-并且在另一个docker安装.md) - [在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透](sources/在ubuntu上通过vps-内网反向代理实现域名访问内网穿透.md) -- [在Synology NAS上安装CloudDrive2](sources/在synology-nas上安装clouddrive2.md) - [n8n-docker-配置-telegram-代理-troubleshooting](sources/n8n-docker-配置-telegram-代理-troubleshooting.md) — (expected: wiki/sources/n8n-docker-配置-telegram-代理-troubleshooting.md — source missing) -- [macOS 创建与解除 Symbolic Link(OpenClaw 目录映射)](sources/macos-创建与解除-symbolic-link-openclaw-目录映射.md) - [WSL2 启动与网络配置指南](sources/wsl2-启动与网络配置指南.md) -- [Ubuntu禁用合盖休眠](sources/ubuntu禁用合盖休眠.md) - [Ubuntu用RustDesk远程登录出现不能使用Wayland登录的错误](sources/ubuntu用rustdesk远程登录出现不能使用wayland登录的错误.md) -- [Ubuntu 安装 FRP 0.65.0(x86_64)操作笔记](sources/ubuntu-安装-frp-0-65-0-x86_64-操作笔记.md) -- [Ubuntu Server科学上网](sources/ubuntu-server科学上网.md) -- [NodeWarden - 把 Bitwarden 搬上 Cloudflare Workers,彻底告别服务器](sources/nodewarden-把-bitwarden-搬上-cloudflare-workers-彻底告别服务器.md) -- [MinIO + Zipline 自托管图床应用安装教程](sources/minio-zipline-自托管图床应用安装教程.md) - [Mac必装软件清单](sources/mac必装软件清单-2026-04-17.md) - [Mac Mini 服务器配置:防止自动锁屏与睡眠](sources/mac-mini-服务器配置-防止自动锁屏与睡眠.md) -- [Mac Mini 安装 FRP 0.65.0(ARM64)操作笔记](sources/mac-mini-安装-frp-0-65-0-arm64-操作笔记.md) - [Install WSL](sources/install-wsl.md) -- [Install Apache Superset in Docker](sources/install-apache-superset-in-docker.md) - [Building your Quartz](sources/building-your-quartz.md) - [sre-weekly-issue-513](sources/sre-weekly-issue-513.md) — (expected: wiki/sources/sre-weekly-issue-513.md — source missing) - [Cloud Learning Master Index](sources/cloud-learning-master-index.md) @@ -582,6 +582,7 @@ - [BehavioralNudgeEngine](entities/BehavioralNudgeEngine.md) - [bitwarden](entities/bitwarden.md) - [blackbox-exporter](entities/blackbox-exporter.md) +- [BlackboxExporter](entities/BlackboxExporter.md) - [BMC](entities/BMC.md) - [BossZhipin](entities/BossZhipin.md) - [Bottlerocket](entities/Bottlerocket.md) @@ -729,6 +730,7 @@ - [NMPA](entities/NMPA.md) - [node-exporter](entities/node-exporter.md) - [Node.js](entities/Node.js.md) +- [NodeExporter](entities/NodeExporter.md) - [nodewarden](entities/nodewarden.md) - [Nomad-Bridge](entities/Nomad-Bridge.md) - [NotebookLlama](entities/NotebookLlama.md) @@ -791,6 +793,7 @@ - [Suravpul](entities/Suravpul.md) - [SurfSense](entities/SurfSense.md) - [Swinford.net](entities/Swinford.net.md) +- [Synology-DSM](entities/Synology-DSM.md) - [Synology-NAS](entities/Synology-NAS.md) - [Synology-NAS-DS718](entities/Synology-NAS-DS718.md) - [Telnyx](entities/Telnyx.md) @@ -818,6 +821,7 @@ - [Upload-Post](entities/Upload-Post.md) - [Uptime-Kuma](entities/Uptime-Kuma.md) - [UX-Researcher](entities/UX-Researcher.md) +- [V2RayA](entities/V2RayA.md) - [Veeam](entities/Veeam.md) - [Vibe-Kanban](entities/Vibe-Kanban.md) - [VictoriaMetrics](entities/VictoriaMetrics.md) @@ -899,6 +903,7 @@ - [AI文生视频](concepts/AI文生视频.md) - [AI簡報工作流](concepts/AI簡報工作流.md) - [Alerting](concepts/Alerting.md) +- [AlertManagement](concepts/AlertManagement.md) - [Algorithm-Agility](concepts/Algorithm-Agility.md) - [Amazon-EKS](concepts/Amazon-EKS.md) - [AmbientMessageMonitoring](concepts/AmbientMessageMonitoring.md) @@ -1081,6 +1086,7 @@ - [DNS托管](concepts/DNS托管.md) - [Docker-Compose](concepts/Docker-Compose.md) - [Docker-Containerization](concepts/Docker-Containerization.md) +- [Docker-Daemon-Proxy](concepts/Docker-Daemon-Proxy.md) - [Docker-LLM-Deployment](concepts/Docker-LLM-Deployment.md) - [Docker-用户组](concepts/Docker-用户组.md) - [Docker堆栈](concepts/Docker堆栈.md) @@ -1319,6 +1325,7 @@ - [NorthStarMetric](concepts/NorthStarMetric.md) - [Nunchi](concepts/Nunchi.md) - [NVMe硬盘分区](concepts/NVMe硬盘分区.md) +- [Observability](concepts/Observability.md) - [Observable-States](concepts/Observable-States.md) - [Obsidian-Agent-Client](concepts/Obsidian-Agent-Client.md) - [Obsidian-Bases](concepts/Obsidian-Bases.md) @@ -1511,6 +1518,8 @@ - [Substrate](concepts/Substrate.md) - [SwiftUI-Volumetric-APIs](concepts/SwiftUI-Volumetric-APIs.md) - [symbolic-link](concepts/symbolic-link.md) +- [SymbolicLink](concepts/SymbolicLink.md) +- [SyntheticMonitoring](concepts/SyntheticMonitoring.md) - [System-Economy](concepts/System-Economy.md) - [system-monitoring](concepts/system-monitoring.md) - [systemd](concepts/systemd.md) diff --git a/wiki/log.md b/wiki/log.md index 285def7c..33b3dd9e 100644 --- a/wiki/log.md +++ b/wiki/log.md @@ -1,4 +1,46 @@ -## [2026-05-14] ingest | NodeWarden - 把 Bitwarden 搬上 Cloudflare Workers,彻底告别服务器 +## [2026-05-14] ingest | 用Docker安装Portainer +- Source file: Home Office/用Docker安装Portainer.md +- Status: ✅ 成功摄入 +- Summary: 通过 Docker Compose 方式安装 Portainer 容器管理面板,使用 LTS 版本镜像(portainer/portainer-ce:lts),挂载 Docker Socket 实现本地Docker守护进程管理,暴露 9443(HTTPS管理界面)和 8000(Edge Agent)端口,配置 restart: always 确保自动恢复。 +- Concepts created: 无(Docker Compose/Portainer 等概念均已在 source page 内嵌引用,未达独立建页阈值) +- Entities created: 无(Portainer Entity 页面已存在) +- Source page: wiki/sources/用docker安装portainer.md +- Notes: index.md 第90行已有本条目(无需更新);overview.md 无相关内容,无需更新;Entity 页面 [[Portainer.md]] 已存在且包含完整内容;冲突检测:无冲突(与 [[如何删除旧的废弃的Docker Container + Volume]] 的 related_to 连接已在 Connections 节记录)。 + +## [2026-05-14] ingest | Ubuntu禁用合盖休眠 +- Source file: Home Office/Ubuntu禁用合盖休眠.md +- Status: ✅ 成功摄入 +- Summary: Ubuntu 24.04 笔记本合盖休眠行为配置方法,通过修改 systemd-logind 的 logind.conf 将 HandleLidSwitch 系列参数设为 ignore,使服务器场景下合盖后继续运行;进阶方案通过 systemctl mask 彻底禁用所有休眠目标。 +- Concepts created: 无(systemd-logind、HandleLidSwitch 等概念已内嵌于 source page,未达独立建页阈值) +- Source page: wiki/sources/ubuntu禁用合盖休眠.md +- Notes: index.md 已有本条目(line 99);overview.md 无相关内容,无需更新;Entity 页面无需创建(Ubuntu 24.04、systemd 无独立页面价值);冲突检测:与 Mac Mini 防止锁屏方案无冲突(不同 OS,方法完全不同)。 + +## [2026-05-14] ingest | 安装v2rayN +- Source file: Home Office/安装v2rayN.md +- Status: ✅ 成功摄入 +- Summary: v2rayN 跨平台代理客户端安装指南,覆盖 Windows(x64/arm64)、Linux(x64/arm64,deb/rpm/zip)、macOS(x64/arm64,zip/dmg)全平台,详解便携版与安装版的区别及 ARM64 架构支持。 +- Concepts created: 无(代理客户端/代理核心 Core/跨平台兼容/ARM64架构支持 等概念均已内嵌于 source page,未达独立建页阈值) +- Source page: wiki/sources/安装v2rayn.md +- Notes: index.md 第92行已有本条目;overview.md 无相关内容,无需更新;Entity 页面均已存在(V2RayA 为服务器端工具,与 v2rayN 客户端不同);冲突检测:无已知冲突。 + +## [2026-05-14] ingest | Install Apache Superset in Docker +- Source file: Home Office/Install Apache Superset in Docker.md +- Status: ✅ 验证完成(source page 已存在且完整,无需重新生成) +- Summary: 通过 Docker 容器快速部署 Apache Superset BI 平台,6 步初始化流程(pull → run → create-admin → db upgrade → load_examples → init),默认端口 8777:8088,默认凭据 admin/admin。Source page 记录了 docker run 单容器模式与 docker compose 生产模式的潜在冲突。 +- Concepts created: 无(Docker/容器初始化/BI平台 等概念均已在 source page 内嵌引用,未达独立建页阈值) +- Entities created: 无(Apache Superset/Docker/MySQL Entity 页面均已存在) +- Source page: wiki/sources/install-apache-superset-in-docker.md +- Notes: index.md 第104行已有本条目;overview.md 未提及,无需更新;Entity 页面均已存在;冲突检测:与 [[用docker安装apache-superset]] 的 docker run vs docker compose 冲突已在 source page Contradictions 节记录。 + +## [2026-05-14] ingest | 群晖NAS科学上网方法 +- Source file: Home Office/群晖NAS科学上网方法.md +- Status: ✅ 成功摄入 +- Summary: 在群晖(Synology)NAS 上通过 Docker 部署 V2RayA 实现透明代理,核心洞察:透明代理对 NAS 本机有效,但对 Docker Daemon(docker pull)无效;Engineering Best Practice 是显式配置 Docker 守护进程 HTTP 代理环境变量(systemd drop-in),而非依赖 Host 透明代理。 +- Concepts created: [[Docker-Daemon-Proxy]](新建,通过 systemd 环境变量为 Docker Daemon 配置显式代理;透明代理失效时的推荐替代方案) +- Entities created: [[V2RayA]](新建,基于 V2Ray 的透明代理 Web 管理界面)、[[Synology-DSM]](新建,群晖 NAS 操作系统,Docker 服务名 pkg-ContainerManager-dockerd);[[Synology-NAS.md]] 补充 Docker 套件说明 +- Source page: wiki/sources/群晖nas科学上网方法.md +- Notes: index.md 第83行已有本条目(补充日期前缀 2025-03-08);overview.md 第721/1021行已有相关内容(V2RayA 描述/四层科学上网对比),无需更新;冲突检测:无冲突(与 [[ubuntu-server科学上网]] 的 Docker Daemon Proxy 内容一致,互相引用);[[SOCKS5代理.md]] 中 Docker Daemon 代理引用已更新为正确 wikilink。 + - Source file: Home Office/NodeWarden - 把 Bitwarden 搬上 Cloudflare Workers,彻底告别服务器.md - Status: ✅ 验证完成(source page 已存在且完整,无需重新生成) - Summary: NodeWarden 将 Bitwarden 服务器端部署到 Cloudflare Workers,实现真正的无服务器密码管理。数据存储在 Cloudflare D1(SQLite)和 R2(对象存储),支持 Bitwarden 官方全平台客户端登录。核心优势:零 VPS 成本、自动部署、免费 TOTP/Passkey 支持(官方需付费会员)。 diff --git a/wiki/overview.md b/wiki/overview.md index 5c1fe8f4..f4c53a7b 100644 --- a/wiki/overview.md +++ b/wiki/overview.md @@ -380,7 +380,9 @@ Key concepts: [[Process]], [[Value]], [[Value-Stream]], [[Value-Adding]], [[Wast **[[ubuntu-24-04-enable-ssh]]**([[Ubuntu-24.04-启动SSH服务]]):Ubuntu 24.04 SSH 快速启用指南——安装 OpenSSH Server 后通过 `systemctl start/enable ssh` 启用服务。核心变化:Ubuntu 24.04 默认使用 **ssh.socket 激活机制**(仅在连接请求进入时才启动 sshd 守护进程,与旧版本持续运行后台进程不同)。进阶配置:可通过 `systemctl edit ssh.socket` 修改监听端口;如需切换回传统模式:先 `systemctl disable --now ssh.socket`,再 `systemctl enable --now ssh.service`。SSH 是 [[Ubuntu Server]] 远程管理的必备基础,也是 FRP 内网穿透的关键——通过 frpc 将本地 SSH 端口(22)映射到 VPS remote_port 60022 实现远程访问。与 [[Ubuntu服务器通过rsync实现日常增量备份]] 互补(SSH 是执行 rsync 备份命令的通道)。 -**[[通过vps-内网反向代理实现域名访问内网穿透]]**:通过 VPS(frps + Caddy)+ frp 反向隧道,实现内网服务公网域名 HTTPS 访问的完整操作指南。覆盖:①阿里云 DNS A 记录配置(`nas.ishenwei.online`/`n8n.ishenwei.online` → VPS IP);②VPS 安装 frps v0.65.0(systemd 管理,端口 7000)+ Caddy(自动 HTTPS);③NAS(192.168.3.17)和 Ubuntu(192.168.3.47)安装 frpc,各服务端口映射(NAS: 5000/4533/8083/5005 → VPS 15000/14533/18083/60055;Ubuntu: 5678/9091/3000/22 → 15678/19091/13000/60022);④Caddy 反向代理配置(`*.ishenwei.online` → frp 映射端口);⑤SSH 穿透(TCP 映射不走 Caddy);⑥7 步系统化故障排查(frps 端口监听/进程配置/token 一致性/防火墙规则/telnet 诊断/日志分析/强制重启)。与 [[ubuntu-安装-frp-0-65-0-x86-64-操作笔记]] 互补(后者侧重 FRP 工具本身安装,前者是完整实践指南)。 +**[[通过vps-内网反向代理实现域名访问内网穿透]]**:通过 VPS(frps + Caddy)+ frp 反向隧道,实现内网服务公网域名 HTTPS 访问的完整操作指南。覆盖:①阿里云 DNS A 记录配置(`nas.ishenwei.online`/`n8n.ishenwei.online` → VPS IP);②VPS 安装 frps v0.65.0(systemd 管理,端口 7000)+ Caddy(自动 HTTPS);③NAS(192.168.3.17)和 Ubuntu(192.168.3.47)安装 frpc,各服务端口映射(NAS: 5000/4533/8083/5005 → VPS 15000/14533/18083/60055;Ubuntu: 5678/9091/3000/22 → 15678/19091/13000/60022);④Caddy 反向代理配置(`*.ishenwei.online` → frp 映射端口);⑤SSH 穿透(remote_port TCP 映射不走 Caddy);⑥7 步系统化故障排查(端口监听检查、token 验证、防火墙规则、telnet 诊断等)。与 [[ubuntu-安装-frp-0-65-0-x86-64-操作笔记]] 互补(后者侧重 FRP 工具本身安装,前者是完整实践指南)。 + +**[[如何在ubuntu-server安装-docker-docker-compose]]**([[Docker Engine]] 安装指南):Ubuntu Server 上通过 Docker 官方 APT 仓库安装 Docker Engine + Docker Compose V2 的完整操作指南——①卸载旧版 docker.io 等冲突包;②添加 Docker 官方 GPG 密钥(`/etc/apt/keyrings/docker.asc`);③配置 APT 仓库(`/etc/apt/sources.list.d/docker.list`);④安装 5 个组件包(docker-ce、docker-ce-cli、containerd.io、docker-buildx-plugin、docker-compose-plugin);⑤运行 `sudo docker run hello-world` 验证;⑥通过 `usermod -aG docker $USER` 配置非 root 用户免 sudo 权限。是所有 Home Server Automation Docker 部署笔记(Portainer/Jellyfin/Navidrome/it-tools/Superset 等)的前置依赖,Home Server Automation 节中所有容器化服务均依赖本文档搭建的环境。属 [[Home Server Automation]] 的基础设施层,与 [[用docker安装portainer]] 等应用部署笔记共同构成完整"安装 Docker → 部署服务"的链路。 ### Home Server Automation Home office setup guides cover a complete multi-node home network infrastructure across 5 nodes: **RackNerd VPS** (public gateway), **Mac Mini M4** (control node), **Synology NAS DS718** (media & storage), and **2 Ubuntu Servers** (monitoring & services). The architecture uses **FRP** (frps/frpc v0.65.0) for reverse tunnel-based intranet penetration, **Caddy** for automatic HTTPS with Let's Encrypt, and **Cloudflare** for DNS托管. **内网穿透方案(VPS + frp + Caddy)**提供完整公网域名访问:Cloudflare DNS A 记录指向 VPS 公网 IP → VPS 运行 frps 和 Caddy → 内网主机运行 frpc 将本地端口映射到 VPS(TCP 隧道)→ Caddy 反向代理到 frp 映射端口,自动申请 Let's Encrypt 证书提供 HTTPS 访问。支持 SSH 穿透(remote_port TCP 映射)不走 Caddy,包含 7 步系统化故障排查(端口监听检查、token 验证、防火墙规则、telnet 诊断等)。 Services deployed include Docker monitoring stack (**Prometheus** + **Grafana** + node_exporter + cAdvisor + blackbox_exporter + Alertmanager), media servers (**Jellyfin**, **Navidrome**, **Transmission**), personal dashboards (**Homarr**, **Apache Superset**), password management (**vaultwarden**), workflow automation (**n8n**), self-hosted Git (**Gitea**), diagram editing (**Draw.io**), developer utilities (**it-tools**), image hosting (**Zipline** + **MinIO**), cloud drive mounting (**CloudDrive2**), AI assistant (**OpenClaw**), e-book management (**Calibre**), proxy client (**v2rayA**), and Docker management (**Portainer**). All services are containerized via Docker Compose. The media workflow follows: Transmission (download) → organize → Jellyfin/Navidrome (play). Key configurations include read-only music mounts, transcode caching (200MB limit), FRP TCP tunnel port mappings (remotePort 60022-60026 for SSH, 13000 for Grafana, 14533 for Navidrome, etc.), Caddy domain mapping table (20+ subdomains under *.ishenwei.online), and SOCKS5 proxy (127.0.0.1:10808) status tracking across all nodes (Mac mini, Ubuntu1, Ubuntu2 working; NAS local-only). **CloudDrive2** enables direct NAS access to cloud storage via virtual filesystem mount (Aliyun Drive resource directory only, scan QR code with App authorization). Backup automation is implemented via rsync incremental sync to NAS, using **Synology DSM NFS** (Squash=admin, sys security, _netdev fstab params) and **nfs-common** client on Ubuntu Server. SSH server setup on Ubuntu 24.04 introduces **ssh.socket activation** (on-demand startup) as the default; administrators can switch to persistent ssh.service mode. Cross-border AI service registration guides cover using **fingerprint browsers** (**AdsPower**), **high-purity US proxies**, **SMS verification platforms** (**PingMe**), and **virtual credit cards** (**WildCard**) to safely subscribe to **Claude Pro**. The architecture provides unified HTTPS public access to all internal services without requiring static IPs, achieving privacy for internal services while maintaining low bandwidth costs. diff --git a/wiki/sources/mac-mini-安装-frp-0-65-0-arm64-操作笔记.md b/wiki/sources/mac-mini-安装-frp-0-65-0-arm64-操作笔记.md index 875cadbc..919f6ece 100644 --- a/wiki/sources/mac-mini-安装-frp-0-65-0-arm64-操作笔记.md +++ b/wiki/sources/mac-mini-安装-frp-0-65-0-arm64-操作笔记.md @@ -1,81 +1,135 @@ ---- -title: "Mac Mini 安装 FRP 0.65.0(ARM64)操作笔记" -type: source -tags: [frp, frpc, gatekeeper, mac-mini, macos, arm64] -date: 2026-04-14 ---- - -## Source File -- [[raw/Home Office/Mac Mini 安装 FRP 0.65.0(ARM64)操作笔记.md]] - -## Summary (用中文描述) -- **核心主题**:在 Apple Silicon(ARM64)Mac Mini M4 上安装配置 FRP 0.65.0 内网穿透客户端,实现通过公网 VPS 远程访问本地服务 -- **问题域**:macOS 服务器化运维、内网穿透、远程访问 -- **方法/机制**:通过 FRP(frpc)客户端连接远程 VPS(frps)建立反向隧道,结合 tmux/nohup/launchd 三种方式实现后台持久运行 -- **结论/价值**:提供完整的 Mac Mini 服务器化运维指南,包含 macOS 特有障碍(Gatekeeper)的解决方案 - -## Key Claims (用中文描述) -- macOS 默认 `/opt` 目录需要手动创建并授权才能使用 -- macOS Gatekeeper 会阻止未签名程序运行,必须通过 `xattr -rd com.apple.quarantine .` 解除限制 -- launchd 是 macOS 推荐的开机自启服务管理方式,可通过 `launchctl` 管理生命周期 -- 软链接(symlink)策略可实现 FRP 版本无缝切换 - -## Key Quotes -> "macOS 默认 `/opt` 需要手动创建" — 说明了 macOS 与 Linux 目录结构的差异,需手动初始化系统目录 -> "xattr -rd com.apple.quarantine ." — macOS 特有的安全限制解除命令,针对整个目录递归执行 -> "launchd(推荐开机自启)" — macOS 原生服务管理器,是进程持久化的推荐方案 - -## Key Concepts -- [[内网穿透]]:通过反向隧道技术,使公网用户能够访问处于 NAT 或防火墙后的内网服务 -- [[frp]]:Fast Reverse Proxy,开源内网穿透工具,包含 frps(服务端)和 frpc(客户端) -- [[TCP隧道]]:基于 TCP 协议的端口转发机制,将本地端口映射到远程服务器 -- [[launchd]]:macOS 原生服务管理器,用于管理系统级和用户级守护进程 - -## Key Entities -- [[Mac Mini M4]]:Apple Silicon Mac Mini,作为家庭服务器运行 FRP 客户端 -- [[VPS]]:公网虚拟专用服务器,运行 frps 作为内网穿透的中转站(IP: 192.227.222.142) -- [[frpc]]:FRP 客户端程序,运行在 Mac Mini 上,建立与 frps 的连接 -- [[frps]]:FRP 服务端程序,运行在 VPS 上,接收公网请求并转发到 frpc -- [[Gatekeeper]]:macOS 安全机制,阻止未签名应用运行 - -## Connections -- [[Mac Mini M4]] ← runs_on ← [[frpc]] -- [[VPS]] ← runs_on ← [[frps]] -- [[frpc]] ← creates_tunnel ← [[frps]] -- [[内网穿透]] ← enables ← [[远程SSH访问]] -- [[launchd]] ← manages ← [[frpc]] 进程生命周期 -- [[Gatekeeper]] ← blocks ← [[frpc]] (需解除) - -## Contradictions -- 无已知冲突 - -## Environment Details -| 项目 | 内容 | -|------|------| -| 系统 | macOS(Mac Mini M4)| -| 架构 | Apple Silicon (ARM64) | -| 软件 | FRP 0.65.0 | -| 安装目录 | `/opt/frp/frp_0.65.0_darwin_arm64` | -| 客户端程序 | `frpc` | -| 配置文件 | `frpc.toml` | -| frps服务器 | 192.227.222.142:7000 | -| frps映射端口 | 6000(SSH)| - -## Installation Steps -1. 创建安装目录:`sudo mkdir -p /opt/frp && sudo chown -R $(whoami) /opt/frp` -2. 下载 ARM64 版本:`wget https://github.com/fatedier/frp/releases/download/v0.65.0/frp_0.65.0_darwin_arm64.tar.gz` -3. 解压:`tar -xzf frp_0.65.0_darwin_arm64.tar.gz` -4. 解除 Gatekeeper:`xattr -rd com.apple.quarantine .` -5. 配置 frpc.toml:设置 serverAddr、serverPort、auth.token 和 proxies -6. 启动 frpc:`./frpc -c frpc.toml` - -## Background Running Methods -1. **tmux**(推荐开发环境):创建持久会话,断开 SSH 后仍保持运行 -2. **nohup**(简单后台):重定向输出到日志文件,适合简单部署 -3. **launchd**(生产环境):系统级服务,开机自启,推荐使用 plist 配置 - -## Best Practices -- 统一安装路径:`/opt/frp/` 便于版本管理 -- 创建软链接:`ln -sfn /opt/frp/frp_0.65.0_darwin_arm64 /opt/frp/current` 简化启动命令 -- 日志独立存储:配置 StandardOutPath 和 StandardErrorPath 分离日志 -- 进程守护:使用 launchd KeepAlive=true 确保服务持续运行 +--- +title: "Mac Mini 安装 FRP 0.65.0(ARM64)操作笔记" +type: source +tags: [frp, frpc, gatekeeper, mac-mini, macos, arm64] +date: 2026-04-14 +--- + +## Source File +- [[raw/Home Office/Mac Mini 安装 FRP 0.65.0(ARM64)操作笔记.md]] + +## Summary (用中文描述) +- **核心主题**:在 Apple Silicon(ARM64)Mac Mini M4 上安装配置 FRP 0.65.0 内网穿透客户端,实现通过公网 VPS 远程访问本地服务 +- **问题域**:macOS 服务器化运维、内网穿透、远程访问、SSH 安全隧道 +- **方法/机制**:通过 FRP(frpc)客户端连接远程 VPS(frps)建立反向隧道,结合 tmux/nohup/launchd 三种方式实现后台持久运行;通过 SSH 客户端配置简化远程访问 +- **结论/价值**:提供完整的 Mac Mini 服务器化运维指南,包含 macOS 特有障碍(Gatekeeper)的解决方案和 SSH 客户端优化配置 + +## Key Claims (用中文描述) +- macOS 默认 `/opt` 目录需要手动创建并授权才能使用 +- macOS Gatekeeper 会阻止未签名程序运行,必须通过 `xattr -rd com.apple.quarantine .` 解除限制 +- launchd 是 macOS 推荐的开机自启服务管理方式,可通过 `launchctl` 管理生命周期 +- 软链接(symlink)策略可实现 FRP 版本无缝切换 +- SSH 客户端配置(`~/.ssh/config`)可简化远程访问命令,只需 `ssh macmini` 即可登录 + +## Key Quotes +> "macOS 默认 `/opt` 需要手动创建" — 说明了 macOS 与 Linux 目录结构的差异,需手动初始化系统目录 +> "xattr -rd com.apple.quarantine ." — macOS 特有的安全限制解除命令,针对整个目录递归执行 +> "launchd(推荐开机自启)" — macOS 原生服务管理器,是进程持久化的推荐方案 +> "ssh macmini" — SSH 客户端配置后的简化登录命令,通过 `~/.ssh/config` 定义 Host 别名 + +## Key Concepts +- [[内网穿透]]:通过反向隧道技术,使公网用户能够访问处于 NAT 或防火墙后的内网服务 +- [[frp]]:Fast Reverse Proxy,开源内网穿透工具,包含 frps(服务端)和 frpc(客户端) +- [[TCP隧道]]:基于 TCP 协议的端口转发机制,将本地端口映射到远程服务器 +- [[launchd]]:macOS 原生服务管理器,用于管理系统级和用户级守护进程 +- [[SSH隧道]]:通过 SSH 协议建立的加密隧道,实现安全的远程端口转发 + +## Key Entities +- [[Mac Mini M4]]:Apple Silicon Mac Mini,作为家庭服务器运行 FRP 客户端 +- [[VPS]]:公网虚拟专用服务器,运行 frps 作为内网穿透的中转站(IP: 192.227.222.142) +- [[frpc]]:FRP 客户端程序,运行在 Mac Mini 上,建立与 frps 的连接 +- [[frps]]:FRP 服务端程序,运行在 VPS 上,接收公网请求并转发到 frpc +- [[Gatekeeper]]:macOS 安全机制,阻止未签名应用运行 +- [[UFW防火墙]]:VPS 上的防火墙,需开放 FRP 映射端口 + +## Connections +- [[Mac Mini M4]] ← runs_on ← [[frpc]] +- [[VPS]] ← runs_on ← [[frps]] +- [[frpc]] ← creates_tunnel ← [[frps]] +- [[内网穿透]] ← enables ← [[远程SSH访问]] +- [[launchd]] ← manages ← [[frpc]] 进程生命周期 +- [[Gatekeeper]] ← blocks ← [[frpc]] (需解除) +- [[UFW防火墙]] ← controls_access ← [[SSH隧道]](需开放 remotePort 60026) + +## Contradictions +- 无已知冲突 + +## Environment Details +| 项目 | 内容 | +|------|------| +| 系统 | macOS(Mac Mini M4)| +| 架构 | Apple Silicon (ARM64) | +| 软件 | FRP 0.65.0 | +| 安装目录 | `/opt/frp/frp_0.65.0_darwin_arm64` | +| 客户端程序 | `frpc` | +| 配置文件 | `frpc.toml` | +| frps服务器 | 192.227.222.142:7000 | +| frps映射端口 | 6000(SSH),60026(实际案例端口)| + +## Installation Steps +1. 创建安装目录:`sudo mkdir -p /opt/frp && sudo chown -R $(whoami) /opt/frp` +2. 下载 ARM64 版本:`wget https://github.com/fatedier/frp/releases/download/v0.65.0/frp_0.65.0_darwin_arm64.tar.gz` +3. 解压:`tar -xzf frp_0.65.0_darwin_arm64.tar.gz` +4. 解除 Gatekeeper:`xattr -rd com.apple.quarantine .` +5. 配置 frpc.toml:设置 serverAddr、serverPort、auth.token 和 proxies +6. 启动 frpc:`./frpc -c frpc.toml` + +## Background Running Methods +1. **tmux**(推荐开发环境):创建持久会话,断开 SSH 后仍保持运行 +2. **nohup**(简单后台):重定向输出到日志文件,适合简单部署 +3. **launchd**(生产环境):系统级服务,开机自启,推荐使用 plist 配置 + +## Best Practices +- 统一安装路径:`/opt/frp/` 便于版本管理 +- 创建软链接:`ln -sfn /opt/frp/frp_0.65.0_darwin_arm64 /opt/frp/current` 简化启动命令 +- 日志独立存储:配置 StandardOutPath 和 StandardErrorPath 分离日志 +- 进程守护:使用 launchd KeepAlive=true 确保服务持续运行 + +## SSH 远程访问案例(完整配置) + +### 网络架构 +``` +本地 Mac Mini + │ SSH 22 + │ +frpc 客户端 + │ FRP 隧道 + │ +远端 VPS (frps) + │ 60026 + │ +公网 SSH 访问:ssh username@VPS_IP -p 60026 +``` + +### VPS 防火墙配置(UFW) +```bash +sudo ufw allow 60026 +sudo ufw status +# 输出:60026/tcp ALLOW Anywhere +``` + +### frpc.toml SSH 代理配置 +```toml +serverAddr = "VPS_IP" +serverPort = 7000 + +auth.method = "token" +auth.token = "your_token" + +[[proxies]] +name = "macmini-ssh" +type = "tcp" +localIP = "127.0.0.1" +localPort = 22 +remotePort = 60026 +``` + +### SSH 客户端配置(~/.ssh/config) +```ssh-config +Host macmini +HostName VPS_IP +Port 60026 +User billy +``` + +配置后可直接使用 `ssh macmini` 登录 Mac Mini,无需记忆 IP 和端口。 diff --git a/wiki/sources/macos-创建与解除-symbolic-link-openclaw-目录映射.md b/wiki/sources/macos-创建与解除-symbolic-link-openclaw-目录映射.md index 1b299941..656403fc 100644 --- a/wiki/sources/macos-创建与解除-symbolic-link-openclaw-目录映射.md +++ b/wiki/sources/macos-创建与解除-symbolic-link-openclaw-目录映射.md @@ -1,49 +1,41 @@ ---- -title: "macOS 创建与解除 Symbolic Link(OpenClaw 目录映射)" -type: source -tags: [obsidian, openclaw, symbolic-link, macos] -date: 2026-04-14 ---- - -## Source File -- [[raw/Home Office/macOS 创建与解除 Symbolic Link(OpenClaw 目录映射).md]] - -## Summary (用中文描述) -- **核心主题**:在 macOS 上为 OpenClaw 隐藏目录创建符号链接,使 Finder 和 Obsidian 能够直接访问 -- **问题域**:OpenClaw 默认使用 `~/.openclaw` 隐藏目录,在图形界面中不可见,无法直接作为 Obsidian Vault 使用 -- **方法/机制**:使用 `ln -s` 创建 Symbolic Link,将 `~/.openclaw` 映射为可见的 `~/openclaw` 目录,两个路径指向同一份数据 -- **结论/价值**:符号链接让 Obsidian 可以访问 OpenClaw 的 Markdown 文件,同时保持 OpenClaw 正常工作,是一种零成本、无风险的目录可见性解决方案 - -## Key Claims (用中文描述) -- OpenClaw 的默认数据目录 `~/.openclaw` 是隐藏目录,Finder 和 Obsidian 无法直接访问 -- Symbolic Link(符号链接)可以将隐藏目录映射为可见目录,两个路径指向同一份数据 -- 创建符号链接 `ln -s ~/.openclaw ~/openclaw` 不会复制数据,只创建指向关系 -- 删除符号链接 `rm ~/openclaw` 只会删除链接本身,不会影响原始数据 -- 推荐的长期方案是以 `~/openclaw` 为实际目录,再用 `ln -s` 反向链接到 `~/.openclaw`,便于 Git 管理和 Finder 访问 - -## Key Quotes -> "该操作**只会删除链接文件,不会删除真实目录**。" — Symbolic Link 删除操作的安全性说明 - -> "Finder / Obsidian 可直接访问;OpenClaw 兼容原路径;方便 Git 管理与备份。" — 推荐的长期目录结构三优点 - -## Key Concepts -- [[Symbolic Link]]:符号链接,Unix/Linux/macOS 文件系统特性,通过 `ln -s` 创建,指向另一个文件或目录的特殊文件类型 -- [[目录映射]]:将一个目录路径指向另一个目录内容的机制,使不同路径访问同一份数据 -- [[隐藏目录]]:以 `.` 开头的目录,macOS Finder 默认不显示,需用 `ls -a` 或 `Cmd+Shift+.` 可见 - -## Key Entities -- [[OpenClaw]]:多 Agent 框架,默认数据目录为 `~/.openclaw` 隐藏目录,本笔记的操作对象 -- [[Obsidian]]:本地 Markdown 知识库工具,可通过 Symbolic Link 将 OpenClaw 目录作为 Vault 直接打开 - -## Connections -- [[Obsidian]] ← 通过 Symbolic Link 访问 ← [[OpenClaw]] -- [[OpenClaw]] ← 数据存储于 ← [[Symbolic Link]] - -## Contradictions -- 无已知冲突 - -## Aliases -- Symbolic Link -- 符号链接 -- symlink -- 软链接 +--- +title: "macOS 创建与解除 Symbolic Link(OpenClaw 目录映射)" +type: source +tags: [obsidian, openclaw, symbolic-link, macos] +date: +--- + +## Source File +- [[Home Office/macOS 创建与解除 Symbolic Link(OpenClaw 目录映射).md]] + +## Summary(用中文描述) +- 核心主题:macOS 下为 OpenClaw 隐藏目录创建和解除符号链接,使 Finder / Obsidian 可直接访问 +- 问题域:OpenClaw 默认使用 `~/.openclaw` 隐藏目录,不便于文件管理器直接操作 +- 方法/机制:通过 `ln -s` 创建符号链接,将隐藏目录映射为可见目录 `~/openclaw`;通过 `rm` 删除链接文件而非真实目录 +- 结论/价值:实现 OpenClaw 与 Obsidian 共用同一数据目录,无需复制文件,同时保留原 OpenClaw 的正常功能 + +## Key Claims(用中文描述) +- OpenClaw 默认隐藏目录 `~/.openclaw` 不便于 Finder 或 Obsidian 直接访问 +- 使用 `ln -s ~/.openclaw ~/openclaw` 创建符号链接后,Obsidian 可将 `~/openclaw` 作为 Vault 打开 +- 使用 `rm ~/openclaw` 仅删除链接文件,不会影响真实目录 `~/.openclaw` 中的数据 +- 推荐长期方案:建立可见目录 `~/openclaw` 作为实际存储,反向链接 `~/.openclaw -> ~/openclaw`,便于 Git 管理和 Finder 访问 + +## Key Quotes +> `ln -s ~/.openclaw ~/openclaw` — 创建符号链接的标准命令,将隐藏目录映射为可见目录 +> `rm ~/openclaw` — 删除符号链接(注意:不会删除真实目录中的数据) +> `⚠️ 该操作只会删除链接文件,不会删除真实目录` — 强调操作安全性 + +## Key Concepts +- [[SymbolicLink]]:Unix/Linux/macOS 中的符号链接(Symlink),是一种特殊类型的文件,指向另一个文件或目录路径 +- [[ObsidianVault]]:Obsidian 知识库的核心概念,以本地文件夹为单位的笔记管理方式 + +## Key Entities +- [[OpenClaw]]:AI Agent 管理工具,默认使用隐藏目录存储记忆、Skills、Prompts 等数据 +- [[Obsidian]]:本地 Markdown 笔记应用,支持将任意文件夹作为 Vault 使用 + +## Connections +- [[OpenClaw]] ← 使用 ← [[SymbolicLink]] +- [[Obsidian]] ← 访问 ← [[OpenClaw]](通过 [[SymbolicLink]] 映射后的可见目录) + +## Contradictions +- 无已知冲突内容 diff --git a/wiki/sources/ubuntu禁用合盖休眠.md b/wiki/sources/ubuntu禁用合盖休眠.md index 59310594..eb482ffd 100644 --- a/wiki/sources/ubuntu禁用合盖休眠.md +++ b/wiki/sources/ubuntu禁用合盖休眠.md @@ -1,75 +1,45 @@ ---- -title: "Ubuntu禁用合盖休眠" -type: source -tags: [ubuntu, systemd, 服务器配置] -date: 2026-04-14 ---- - -## Source File -- [[raw/Home Office/Ubuntu禁用合盖休眠.md]] - -## Summary (用中文描述) -- 核心主题:Ubuntu Server 合盖不休眠的完整操作指南 -- 问题域:Ubuntu 笔记本作为服务器运行时,合盖触发系统休眠/待机导致服务中断的问题 -- 方法/机制:通过修改 systemd-logind 的 logind.conf 配置文件,设置 HandleLidSwitch 系列参数为 ignore,并重启服务生效;进阶方案是通过 systemctl mask 彻底禁用内核级休眠目标 -- 结论/价值:让 Ubuntu 笔记本在无外接显示器的情况下作为稳定服务器运行 - -## Key Claims (用中文描述) -- systemd-logind 是 Ubuntu 24.04 控制笔记本合盖行为的系统服务 -- 修改 /etc/systemd/logind.conf 中的 HandleLidSwitch* 系列配置项并重启服务即可生效 -- HandleLidSwitch=ignore 使系统合盖后继续运行 -- systemctl mask 可从内核级别彻底禁用 sleep/suspend/hibernate/hybrid-sleep 四个休眠目标 - -## Key Quotes -> "HandleLidSwitch:合盖时的动作(通常指用电池时)" — Ubuntu logind.conf 配置项说明 -> "HandleLidSwitchExternalPower:连接外接电源合盖时的动作" — Ubuntu logind.conf 配置项说明 -> "HandleLidSwitchDocked:连接扩展坞合盖时的动作" — Ubuntu logind.conf 配置项说明 -> "在执行此命令时,你的当前会话(包括图形界面或当前的 SSH 连接)可能会短暂断开或重新加载。" — 重启 systemd-logind 的注意事项 - -## Key Concepts -- [[systemd-logind]]:Linux 系统登录管理器,负责管理用户会话、电源事件和系统休眠行为 -- [[HandleLidSwitch]]:systemd-logind 的合盖动作配置项,支持 ignore/suspend/hibernate/poweroff/lock 等值 -- [[休眠目标]]:Linux 内核的电源管理目标,包括 sleep.target / suspend.target / hibernate.target / hybrid-sleep.target - -## Key Entities -- [[Ubuntu Server]]:Canonical 维护的 Linux 服务器操作系统,默认使用 systemd 作为初始化系统 -- [[systemd]]:Linux 系统和服务管理器,通过 logind 管理笔记本电源事件 - -## Connections -- [[Ubuntu Server]] ← 使用 ← [[systemd-logind]](电源管理机制) -- [[systemd-logind]] ← 配置项 ← [[HandleLidSwitch]](合盖行为控制) -- [[休眠目标]] ← 进阶禁用 ← systemd(通过 systemctl mask) - -## Contradictions -- 无已知冲突页面 - -## Related Sources -- [[mac-mini服务器配置-防止自动锁屏与睡眠]] — macOS 等效配置(防止 Mac Mini 服务器自动睡眠) -- [[ubuntu服务器通过rsync实现日常增量备份]] — Ubuntu 服务器备份方案 -- [[安装ubuntu-24-04-2在hp-zbook工作站笔记本上]] — HP ZBook Ubuntu 安装记录 - -## Operations (操作步骤) - -### 基础方案:修改 logind.conf -```bash -# 1. 编辑配置文件 -sudo nano /etc/systemd/logind.conf - -# 2. 修改/添加以下配置(删除行首 #) -[Login] -HandleLidSwitch=ignore -HandleLidSwitchExternalPower=ignore -HandleLidSwitchDocked=ignore - -# 3. 重启服务使配置生效 -sudo systemctl restart systemd-logind -``` - -### 进阶方案:禁用内核级休眠功能 -```bash -# 彻底禁用所有休眠目标 -sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target - -# 恢复(如需) -sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target -``` +--- +title: "Ubuntu禁用合盖休眠" +type: source +tags: [ubuntu, systemd, 服务器配置] +date: 2026-04-26 +--- + +## Source File +- [[Home Office/Ubuntu禁用合盖休眠]] + +## Summary(用中文描述) +- 核心主题:Ubuntu 24.04 笔记本合盖休眠行为配置 +- 问题域:服务器场景下笔记本合盖后不应进入休眠状态 +- 方法/机制:通过修改 `systemd-logind` 的 `logind.conf` 配置文件,将 `HandleLidSwitch` 系列参数设为 `ignore`;进阶方法通过 `systemctl mask` 彻底禁用所有休眠目标 +- 结论/价值:提供两步完成服务器场景下笔记本合盖持续运行的生产级方案 + +## Key Claims(用中文描述) +- systemd-logind 是 Ubuntu 24.04 控制笔记本合盖行为的登录管理器 +- 通过 `HandleLidSwitch`、`HandleLidSwitchExternalPower`、`HandleLidSwitchDocked` 三个配置项可覆盖不同场景 +- 将配置值设为 `ignore` 后系统合盖不执行任何操作,继续运行 +- 修改配置后需执行 `systemctl restart systemd-logind` 重启服务才能生效 +- 可通过 `systemctl mask` 从内核级别彻底禁止待机(sleep/suspend/hibernate/hybrid-sleep) +- `mask` 与 `unmask` 可逆,恢复时将 mask 改为 unmask 即可 + +## Key Quotes +> "在执行此命令时,你的当前会话(包括图形界面或当前的 SSH 连接)可能会短暂断开或重新加载。" — 重启 systemd-logind 服务的注意事项 + +## Key Concepts +- [[systemd-logind]]:Linux 系统登录管理器,负责管理用户会话、电源管理和设备访问权限,合盖行为由其控制 +- [[HandleLidSwitch]]:systemd-logind 配置项,定义笔记本合盖时的电源行为 +- [[sleep.target suspend.target hibernate.target hybrid-sleep.target]]:Linux 休眠相关系统目标,通过 `systemctl mask` 可从内核级别彻底禁用 + +## Key Entities +- [[Ubuntu 24.04]]:Canonical 发布的长期支持版 Ubuntu,本配置方法的适用系统 +- [[systemd]]:Linux 系统和服务管理器,systemd-logind 为其组件之一 + +## Connections +- [[Ubuntu禁用合盖休眠]] ← relates_to ← [[Ubuntu服务器通过rsync实现日常增量备份]] +- [[Ubuntu禁用合盖休眠]] ← related_topic ← [[Mac Mini 服务器配置:防止自动锁屏与睡眠]](不同 OS,方法不同,无冲突) + +## Contradictions +- 与 [[Mac Mini 服务器配置:防止自动锁屏与睡眠]] 无冲突: + - 冲突点:无(macOS 使用 `pmset` 命令,与 Ubuntu systemd 配置完全不同) + - 当前观点:Ubuntu 通过 systemd-logind 配置 + - 对方观点:macOS 通过 pmset 命令配置 diff --git a/wiki/sources/在synology-nas上安装clouddrive2.md b/wiki/sources/在synology-nas上安装clouddrive2.md index 8fdbc137..785e8c3b 100644 --- a/wiki/sources/在synology-nas上安装clouddrive2.md +++ b/wiki/sources/在synology-nas上安装clouddrive2.md @@ -1,42 +1,46 @@ ---- -title: "在Synology NAS上安装CloudDrive2" -type: source -tags: [clouddrive2, nas, synology, 阿里云盘] -date: 2025-12-29 ---- - -## Source File -- [[raw/Home Office/在Synology NAS上安装CloudDrive2.md]] - -## Summary (用中文描述) -- 核心主题:在 Synology NAS 上通过 CloudDrive2 将阿里云盘挂载为本地文件系统 -- 问题域:NAS 本地存储与云端存储的融合、家庭多媒体中心的云盘访问 -- 方法/机制:利用矿神源(社群套件源)安装 CloudDrive2,通过阿里云盘 App 扫码授权,实现云盘的本地挂载访问 -- 结论/价值:将阿里云盘无缝接入 NAS 文件系统,无需手动同步即可直接访问云端资源 - -## Key Claims (用中文描述) -- 矿神源提供了 CloudDrive2 等第三方套件,扩展了 Synology 官方套件中心的应用生态 -- DSM 7+ 版本要求额外的 Root 权限修复命令,否则 CloudDrive2 可能无法正常运行 -- 阿里云盘授权时应仅授权"资源目录",避免"备份目录"以控制数据访问范围 - -## Key Quotes -> "不要授权备份目录,仅资源目录即可" — 最小权限原则,避免意外访问敏感备份数据 - -## Key Concepts -- [[云盘挂载]]:通过 FUSE/虚拟文件系统将云端存储映射为本地目录的技术 -- [[NAS套件管理]]:群晖 NAS 的 Package Center 套件安装与管理机制 -- [[Root权限修复]]:DSM 7+ 系统中第三方套件权限配置的特殊处理方法 - -## Key Entities -- [[CloudDrive2]]:云盘挂载工具,支持阿里云盘、Google Drive、OneDrive 等多种云存储服务 -- [[Synology NAS]](群晖 NAS):网络附加存储设备,本方案的硬件平台 -- [[矿神源]]:Synology 社群套件源(SPK 社区生态),提供大量官方未收录的第三方应用 -- [[阿里云盘]]:阿里巴巴云盘服务,本方案的挂载目标云存储 - -## Connections -- [[群晖NAS科学上网]] ← 关联场景 ← [[在Synology NAS上安装CloudDrive2]] -- [[Home Server 多服务架构]] ← 扩展 ← [[在Synology NAS上安装CloudDrive2]] -- [[CloudDrive2]] ← 挂载目标 ← [[阿里云盘]] - -## Contradictions -- 无已知冲突 +--- +title: "在Synology NAS上安装CloudDrive2" +type: source +tags: [clouddrive2, nas, synology, 阿里云盘] +date: 2025-12-29 +--- + +## Source File +- [[Home Office/在Synology NAS上安装CloudDrive2.md]] + +## Summary(用中文描述) +- 核心主题:在 Synology NAS(DSM 7+)上安装并配置 CloudDrive2,实现阿里云盘的本地挂载 +- 问题域:群晖 NAS 用户希望将阿里云盘像本地硬盘一样挂载使用,无需手动同步 +- 方法/机制:通过 Synology 社群(矿神源)安装 CloudDrive2 → 执行 root 权限修复命令(DSM 7+ 专用)→ Web UI 配置 → 阿里云盘 App 扫码授权 → 挂载 Aliyun 目录 +- 结论/价值:CloudDrive2 提供了在 NAS 上原生挂载云盘的能力,适合影视、文件等大体积内容管理 + +## Key Claims(用中文描述) +- 主体 + 机制 + 结果 +- Synology 社群安装方式:矿神源 → 社群 → CloudDrive2(标准流程) +- DSM 7+ 特殊处理:需执行 `sed` 命令修改 CloudDrive2 权限文件,将 `package` 替换为 `root`,否则因权限不足无法正常运行 +- Web UI 访问:通过 `http://192.168.3.17:19798/` 访问 CloudDrive2 配置界面 +- 阿里云盘授权:使用阿里云盘 App 扫码授权,仅授权「资源目录」(不要授权「备份目录」) + +## Key Quotes +> "因为我的 DSM 是 7+ 版本,所以需要额外在 root 下执行一条命令" — DSM 7+ 权限修复说明 +> "请主要,不要授权备份目录,仅资源目录即可" — 安全提示,避免备份文件被挂载 + +## Key Concepts +- [[CloudDrive2]]:云盘挂载工具,支持阿里云盘、百度网盘等多种云存储,可将云端文件像本地硬盘一样在 NAS 上使用 +- [[Synology NAS]]:群晖网络附加存储设备,运行 DSM 操作系统;通过社群套件源安装第三方应用 +- [[矿神源]]:Synology 社群第三方套件源,提供大量社群维护的应用(如 CloudDrive2) + +## Key Entities +- [[阿里云盘]]:阿里巴巴旗下云盘服务,CloudDrive2 支持挂载的云存储之一;通过 App 扫码授权连接 +- [[CloudDrive2]]:云盘挂载应用,可在 NAS/PC 上将云盘映射为本地文件系统(WebDAV/SMB 等协议) + +## Connections +- [[群晖NAS科学上网方法]] ← related ← [[在Synology NAS上安装CloudDrive2]](同一设备上的网络配置需求) +- [[用Docker安装Jellyfin]] ← related ← [[在Synology NAS上安装CloudDrive2]](Jellyfin 可读取 CloudDrive2 挂载的阿里云盘影视资源) + +## Contradictions +- 无已知冲突 + +## Related Sources +- [[群晖NAS科学上网方法]] +- [[用Docker安装Jellyfin]] diff --git a/wiki/sources/如何删除旧的废弃的docker-container-volume.md b/wiki/sources/如何删除旧的废弃的docker-container-volume.md index fe15d72b..f9d199bd 100644 --- a/wiki/sources/如何删除旧的废弃的docker-container-volume.md +++ b/wiki/sources/如何删除旧的废弃的docker-container-volume.md @@ -1,54 +1,59 @@ ---- -title: "如何删除旧的废弃的Docker Container + Volume" -type: source -tags: [container, docker, portainer, volume] -date: 2026-04-14 ---- - -## Source File -- [[raw/Home Office/如何删除旧的废弃的docker container +volume.md]] - -## Summary (用中文描述) -- 核心主题:Docker 容器生命周期管理——如何彻底清理旧的废弃 Portainer 容器、Volume 和 Network,并安全重装 -- 问题域:Home Server 运维中常见的 Docker 残留资源清理问题,尤其是 Portainer 重装时遇到的警告和报错 -- 方法/机制:通过 `docker stop` / `docker rm` 删除容器 → `docker volume rm` 删除数据卷 → `docker network rm` 删除网络 → `docker compose down` 清理 Compose 堆栈;对于遗留资源通过 `external: true` 配置复用或直接重建 -- 结论/价值:提供了从发现到彻底重装的完整操作流程,以及对两类常见 WARN 警告的根因分析和解决方案 - -## Key Claims (用中文描述) -- 运维人员可通过 `docker ps -a | grep portainer` 快速定位 Portainer 容器 -- 容器删除前必须先停止,否则需使用 `docker rm -f` 强制删除 -- 删除 `portainer_data` Volume 会永久丢失 Portainer 所有数据(用户、配置) -- `docker compose down` 可一键清理整个 Compose 堆栈的容器、网络和(可选)卷 -- WARN 1 根因:之前的 compose 文件创建了 network,但新 compose 文件试图重建同名网络 -- WARN 2 根因:之前的 compose 项目使用了不同 project name,遗留了 Volume -- 解决方案:在 compose 文件中声明 `external: true` 以复用旧网络/卷,或删除旧资源后重建 - -## Key Quotes -> "⚠️ 注意:这会删除 Portainer 所有数据(用户、配置)。如果你想保留数据,不要删 volume,只需要在 compose 文件里加:`external: true`" — 删除 Volume 前的警告,区分数据保留策略 - -> "说明你之前用了别的 compose 文件部署过 Portainer" — WARN 1 的根因解释,network 冲突的场景 - -> "说明你以前用不同 project 名字做过 Portainer" — WARN 2 的根因解释,Volume 隔离的项目命名机制 - -## Key Concepts -- [[Docker容器生命周期管理]]:容器的创建( create ) → 启动( start ) → 停止( stop ) → 删除( rm ) 完整流程管理 -- [[Docker Volume]]:容器持久化数据存储卷,通过 `docker volume ls` 查看,`docker volume rm` 删除 -- [[Docker Network]]:容器网络连接,通过 `docker network ls` 查看,`docker network rm` 删除 -- [[Docker Compose堆栈管理]]:通过 `docker compose down` 一次性清理整个堆栈的容器、网络和卷 -- [[external配置]]:compose 文件中 `external: true` 声明让 Docker 复用已存在的 Volume 或 Network 而非创建新的 -- [[Docker警告处理]]:Network 已存在警告和 Volume 属于其他项目的警告的标准排查思路 - -## Key Entities -- [[Portainer]]:Docker 可视化管理工具(portainer/portainer-ce),通过 Web UI 管理容器/卷/网络,支持 Edge Agent 集群管理 -- [[Docker]]:容器化平台,本文档所有操作的底层系统 -- [[Docker Compose]]:多容器应用的定义和编排工具,`docker compose down` 提供堆栈级清理能力 - -## Connections -- [[Portainer]] ← 部署于 ← [[Docker]] -- [[Docker Compose]] ← 管理 ← [[Docker容器生命周期管理]] -- [[Docker Volume]] ← 依赖 ← [[Docker]] -- [[Docker Network]] ← 连接 ← [[Docker]] -- [[external配置]] ← 解决 ← [[Docker警告处理]] - -## Contradictions -- 与其他文档无已知冲突 +--- +title: "如何删除旧的废弃的 Docker Container + Volume" +type: source +tags: [docker, container, portainer, volume] +date: 2026-04-26 +--- + +## Source File +- [[Home Office/如何删除旧的废弃的docker container +volume.md]] + +## Summary(用中文描述) +- 核心主题:清理 Docker 环境中废弃的 Portainer 容器、Volume 和 Network 的完整操作流程 +- 问题域:Docker 容器残留导致的端口冲突、卷数据残留、以及重启 Portainer 时出现的 WARN 警告 +- 方法/机制:通过 `docker stop/rm`、`docker volume ls/rm`、`docker network ls/rm` 系列命令手动清理;使用 `docker compose down` 一键清理整个 compose 项目;通过 `external: true` 配置避免 future 部署时的资源冲突 +- 结论/价值:提供了从手动单步清理到一键重装的完整操作链,以及 WARN 原因分析和解决方案 + +## Key Claims(用中文描述) +- `docker compose down` 命令可同时删除容器、网络和匿名 Volume,但保留命名 Volume +- `docker volume rm` 可显式删除指定 Volume(如 `portainer_data`),从而清除 Portainer 所有用户数据和配置 +- Docker WARN "Network already exists" 表示同名 network 由另一个 compose 项目创建,与当前项目冲突 +- Docker WARN "Volume is used by another service" 表示同名 volume 属于另一个 compose 项目的不同 project name +- 在 compose 文件中设置 `external: true` 可让新项目复用旧 network/volume 而不触发冲突警告 + +## Key Quotes +> "⚠️ 注意:这会删除 Portainer 所有数据(用户、配置)。如果你想保留数据,不要删 volume,只需要在 compose 文件里加:`external: true`" — 删除 portainer_data 的重要提示 + +## Key Concepts +- [[Docker Container]]:Docker 镜像的运行实例,`docker ps -a` 查看所有容器,`docker rm` 删除已停止容器,`docker rm -f` 强制删除运行中容器 +- [[Docker Volume]]:持久化存储机制,挂载到容器内部用于保存数据;`docker volume ls` 列出所有卷,`docker volume rm` 删除指定卷 +- [[Docker Network]]:容器间通信的虚拟网络;同名 network 冲突是 compose 项目隔离机制导致的警告 +- [[Docker Compose]]:`docker compose down` 停止并删除整个 compose 项目中的容器、网络,以及(非 external 的)命名卷 +- [[Docker Socket]]:Docker 守护进程的 Unix Socket(通常为 `/var/run/docker.sock`),Portainer 通过挂载它实现对本地 Docker 的管理 + +## Key Entities +- [[Portainer]]:开源 Docker 容器管理面板,本文档的清理目标;`portainer/portainer-ce` 为其 Community Edition 镜像 +- [[portainer_data]]:Portainer 的命名 Docker Volume,存储用户、配置等持久化数据 + +## Connections +- [[用Docker安装Portainer]] ← depends_on ← [[如何删除旧的废弃的 Docker Container + Volume]] +- [[如何在Ubuntu Server安装 Docker & Docker Compose]] ← related_to ← [[如何删除旧的废弃的 Docker Container + Volume]] + +## Contradictions +- 无已知冲突 + +## 完整操作流程速查 + +```bash +# 最干净的重装流程 +docker stop portainer && docker rm portainer +docker volume rm portainer_data +docker network rm portainer_network +docker compose up -d +``` + +```bash +# 一键清理(compose 部署) +docker compose down # 删除容器+网络+匿名卷 +docker compose down -v # 额外删除命名卷(谨慎!) +``` diff --git a/wiki/sources/如何在ubuntu-server安装-docker-docker-compose.md b/wiki/sources/如何在ubuntu-server安装-docker-docker-compose.md index 01fa94df..3621ac70 100644 --- a/wiki/sources/如何在ubuntu-server安装-docker-docker-compose.md +++ b/wiki/sources/如何在ubuntu-server安装-docker-docker-compose.md @@ -1,60 +1,54 @@ ---- -title: "如何在Ubuntu Server安装 Docker & Docker Compose" -type: source -tags: [docker, ubuntu] -date: 2026-04-14 ---- - -## Source File -- [[raw/Home Office/如何在Ubuntu Server安装 docker & docker compose.md]] - -## Summary (用中文描述) -- 核心主题:在 Ubuntu Server 上通过官方 apt 仓库安装 Docker Engine 和 Docker Compose V2 的完整流程 -- 问题域:服务器容器化环境搭建 -- 方法/机制:五步标准安装流程——卸载旧版 → 配置官方仓库 → 安装引擎 → 验证安装 → 配置非 root 用户 -- 结论/价值:推荐从 Docker 官方仓库安装以确保获取最新版本;Docker Compose V2 已集成到 docker-compose-plugin,使用 `docker compose` 命令 - -## Key Claims (用中文描述) -- Docker 官方仓库安装能确保获取最新版本的 Docker Engine -- Docker Compose V2 通过 docker-compose-plugin 安装,使用 `docker compose` 命令而非 `docker-compose` -- 将用户加入 docker 用户组后,可无需 sudo 直接运行 Docker 命令 -- 必须先安装 ca-certificates 和 curl 才能通过 HTTPS 添加 Docker GPG 密钥和仓库 - -## Key Quotes -> "It's generally best to install from Docker's official repositories to ensure you have the latest version." — 官方仓库安装的最佳实践理由 -> "The `docker-compose-plugin` installs **Docker Compose V2**, which is used via the command `docker compose` instead of `docker-compose`." — V2 版本命令变化说明 -> "By default, running Docker commands requires `sudo`. To run Docker without `sudo`, you can add your user to the **`docker` group`." — docker 用户组的作用 - -## Key Concepts -- [[Docker Engine]]:Docker 核心运行时,包含 dockerd 守护进程、CLI 和 containerd 容器运行时 -- [[Docker Compose]]:多容器 Docker 应用的定义和运行工具,V2 版本集成到 docker CLI(`docker compose`) -- [[APT 仓库]]:Ubuntu/Debian 的软件包管理仓库,通过 /etc/apt/sources.list.d/ 配置 -- [[GPG 密钥]]:apt 仓库签名验证,确保软件包来源可信 -- [[Docker 用户组]]:Linux 用户组,允许组成员无需 sudo 直接运行 Docker 命令(存在安全风险) -- [[containerd]]:Docker 的容器运行时底层引擎,独立项目 - -## Key Entities -- [[Docker CE]]:Docker Community Edition,Docker Engine 的开源版本 -- [[docker-ce-cli]]:Docker 命令行工具 -- [[docker-buildx-plugin]]:Docker 扩展插件,支持多平台镜像构建 -- [[docker-compose-plugin]]:Docker Compose V2 插件,替代独立的 docker-compose 包 -- [[containerd.io]]:containerd 的 Docker 打包版本 -- [[hello-world]]:Docker 官方测试镜像,用于验证安装是否成功 - -## Connections -- [[Docker Engine]] ← installed_by ← [[Docker CE on Ubuntu]] -- [[Docker Compose]] ← extends ← [[Docker Engine]] -- [[APT 仓库]] ← provides ← [[Docker CE]] -- [[GPG 密钥]] ← authenticates ← [[APT 仓库]] -- [[Ubuntu Server]] ← runs_on ← [[Docker Engine]] -- [[Docker 用户组]] ← enables ← [[Docker Engine]] (non-root execution) -- [[containerd]] ← powers ← [[Docker Engine]] - -## Contradictions -- 无已知冲突 - -## Related Sources -- [[用docker安装transmission]] — Docker 部署实战 -- [[用docker安装portainer]] — Docker 可视化管理 -- [[用docker安装jellyfin]] — Docker 媒体服务 -- [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]] — Docker 监控堆栈 +--- +title: "如何在Ubuntu Server安装 Docker & Docker Compose" +type: source +tags: [Docker, Ubuntu, 容器化, DevOps] +date: 2026-04-14 +--- + +## Source File +- [[Home Office/如何在Ubuntu Server安装 docker & docker compose]] + +## Summary(用中文描述) +- 核心主题:Ubuntu Server 上安装 Docker Engine 和 Docker Compose V2 的完整操作指南 +- 问题域:Ubuntu Server 容器运行时环境搭建,是后续所有 Docker 部署类笔记的前置依赖 +- 方法/机制:通过添加 Docker 官方 APT 仓库(GPG 密钥验证)→ 安装 Docker Engine 核心组件(dockerd、containerd、buildx、compose)→ 验证安装 → 配置非 root 用户权限 +- 结论/价值:官方仓库安装确保版本最新,与 Ubuntu 内置旧版 docker.io 包完全兼容;Docker Compose V2 通过 `docker compose` 调用,与传统 `docker-compose` 命令分离 + +## Key Claims(用中文描述) +- Docker 官方 APT 仓库安装比 Ubuntu 默认仓库版本更新、功能更完整 +- 安装 `docker-compose-plugin` 即获得 Docker Compose V2,使用 `docker compose` 而非 `docker-compose` 命令 +- 将用户加入 `docker` 用户组后无需 `sudo` 即可运行 Docker 命令 +- 完整安装包含 5 个组件包:docker-ce、docker-ce-cli、containerd.io、docker-buildx-plugin、docker-compose-plugin + +## Key Quotes +> "The `docker-compose-plugin` installs Docker Compose V2, which is used via the command `docker compose` instead of `docker-compose`." — 源文档 Step 3 安装说明 +> "Log out and log back in (or restart your terminal session, or run `newgrp docker`) for the changes to take effect." — 源文档 Step 5 用户组配置说明 + +## Key Concepts +- [[Docker Engine]]:容器运行时核心,包含 dockerd 守护进程、containerd 容器运行时、docker CLI 工具 +- [[Docker Compose]]:多容器应用编排工具,V2 版本通过 `docker compose` 子命令调用 +- [[containerd]]:Docker 的底层容器运行时,本文档安装 `containerd.io` 包 +- [[GPG 密钥验证]]:Docker 官方通过 GPG 密钥(`/etc/apt/keyrings/docker.asc`)验证 APT 包来源真实性 +- [[APT 仓库配置]]:通过在 `/etc/apt/sources.list.d/docker.list` 添加 Docker 官方仓库启用 +- [[Docker 用户组]]:通过 `usermod -aG docker $USER` 将用户加入 docker 组实现免 sudo 运行 + +## Key Entities +- [[Docker]]:Docker 公司及其容器平台生态 +- [[Docker-CE]]:Docker Community Edition 开源版本 +- [[hello-world]]:官方验证镜像,用于测试 Docker 安装是否成功 +- [[Docker-Buildx-Plugin]]:Docker 多平台镜像构建插件 +- [[Docker-Compose-Plugin]]:Docker Compose V2 插件形式实现 + +## Connections +- [[Docker Engine]] ← 依赖 ← [[containerd]](安装 containerd.io 包) +- [[Docker Engine]] ← 依赖 ← [[Docker-Buildx-Plugin]](安装时一并安装) +- [[Docker Engine]] ← 依赖 ← [[Docker-Compose-Plugin]](安装时一并安装) +- [[Ubuntu Server]] ← 目标平台 ← [[如何在ubuntu-server安装-docker-docker-compose]](本文档) +- [[Docker]] ← 官方维护 ← [[Docker-CE]](上游包来源) +- [[如何在ubuntu-server安装-docker-docker-compose]] → 前置依赖 → [[用docker安装it-tools]](it-tools 需 Docker 环境) +- [[如何在ubuntu-server安装-docker-docker-compose]] → 前置依赖 → [[用docker安装portainer]](Portainer 需 Docker 环境) +- [[如何在ubuntu-server安装-docker-docker-compose]] → 前置依赖 → [[用docker安装transmission]](Transmission 需 Docker 环境) +- [[如何在ubuntu-server安装-docker-docker-compose]] → 前置依赖 → [[用docker中安装navidrome]](Navidrome 需 Docker 环境) + +## Contradictions +- 无冲突。文档聚焦 Ubuntu Server 单机安装流程,与企业级 Kubernetes 容器编排([[Container-Lifecycle-Hardening]])等来源属不同层次,无内容矛盾。 diff --git a/wiki/sources/安装v2rayn.md b/wiki/sources/安装v2rayn.md index 0eea036c..5cc3e55b 100644 --- a/wiki/sources/安装v2rayn.md +++ b/wiki/sources/安装v2rayn.md @@ -1,66 +1,48 @@ ---- -title: "安装v2rayN" -type: source -tags: [linux, v2rayn, windows, macos] -date: 2026-04-14 ---- - -## Source File -- [[raw/Home Office/安装v2rayN.md]] - -## Summary (中文) -- **核心主题**:v2rayN 跨平台代理客户端的官方发布包详解,涵盖 Windows/Linux/macOS 各平台下载选项、安装方式与依赖要求 -- **问题域**:如何为不同操作系统选择正确的 v2rayN 版本,以及各平台安装注意事项 -- **方法/机制**: - - zip 便携版:解压即用,数据存储在同目录,多份独立运行 - - deb/rpm 安装版:存储在系统用户文件目录,通过 apt/dnf 安装 - - WPF 版需额外安装 .NET 8 Desktop Runtime;Avalonia UI 版为自包含 - - macOS DMG 版因无签名需执行 `xattr -cr` 修复 - - 支持多核心:Xray、sing-box、mihomo -- **结论/价值**:v2rayN 是支持 Windows/Linux/macOS 的可视化代理客户端,Windows 推荐 WPF 版,跨平台推荐 Avalonia UI 版;核心文件需单独下载 - -## Key Claims (中文) -- v2rayN 跨平台支持 Windows 10+、Linux(Debian 12+/Ubuntu 22.04+/Fedora 36+/RHEL 9+)、macOS 12+ -- zip 便携版解压后直接运行 `./v2rayN`,数据存放在程序同目录,可多份独立使用 -- deb/rpm 安装版存储位置为系统规定的用户文件目录 -- Windows x64 WPF 版需预装 Microsoft .NET 8.0 Desktop Runtime,Avalonia UI 版为自包含无需额外依赖 -- macOS DMG 版因应用无签名会提示"已损坏",安装后需执行 `xattr -cr /Applications/v2rayN.app` 修复 -- 发布包内含部分 Core(Xray/sing-box/mihomo),其他 Core 需从 v2rayN-core-bin 仓库单独下载 - -## Key Quotes -> "zip 格式包为便携版,解压缩到文件夹后直接可以运行,存储文件位置为本文件夹;可以复制多份互相独立" — 官方说明 -> "v2rayN-windows-64.zip WPF实现的界面,需要安装 Microsoft .NET 8.0 Desktop Runtime" — Windows x64 WPF版依赖说明 -> "v2rayN-macos-64.dmg 由于安装包没有签名,会提示应用已损坏;安装后需要运行:xattr -cr /Applications/v2rayN.app" — macOS签名问题解决方案 - -## Key Concepts -- [[代理客户端]]:运行在终端设备上,通过代理协议连接远程节点的软件 -- [[代理协议]]:v2rayN 支持 VLESS/VMess/Trojan/SS 等协议 -- [[Reality]]:Xray 的流量伪装方案,v2rayN 可配合 Reality 节点使用 -- [[Avalonia UI]]:跨平台 .NET UI 框架,v2rayN Avalonia 版可运行在 Windows/Linux/macOS,无需额外运行时依赖 -- [[WPF]]:Windows Presentation Foundation,Windows 原生 UI 框架,.NET 桌面应用首选 -- [[.NET Desktop Runtime]]:.NET 桌面运行时环境,WPF 应用必需依赖 -- [[便携版]] vs [[安装版]]:便携版数据自包含、安装版数据放系统目录 -- [[代理核心]]:代理客户端的底层引擎,如 Xray、sing-box、mihomo - -## Key Entities -- [[v2rayN]]:主产品,GitHub 2dust 维护的跨平台代理客户端,支持多种协议和核心 -- [[Xray]]:v2rayN 支持的代理核心之一,Reality 流量伪装方案的内核 -- [[sing-box]]:v2rayN 支持的代理核心,支持多协议 -- [[mihomo]]:v2rayN 支持的代理核心,mihomo 协议实现 -- [[2dust]]:v2rayN GitHub 仓库维护者 -- [[Microsoft .NET 8.0 Desktop Runtime]]:Windows WPF 版的必需运行时环境 -- [[Avalonia UI]]:跨平台 UI 框架,v2rayN desktop 版基于此构建 - -## Connections -- [[v2rayN]] ← 使用 ← [[Xray]] -- [[v2rayN]] ← 使用 ← [[sing-box]] -- [[v2rayN]] ← 使用 ← [[mihomo]] -- [[v2rayN]] ← 依赖 ← [[Microsoft .NET 8.0 Desktop Runtime]](WPF 版) -- [[v2rayN]] ← 基于 ← [[Avalonia UI]](desktop 版) -- [[3X-UI]] ← 服务端 ← [[Xray]](v2rayN 的服务端 counterpart) -- [[v2rayNG]] ← 移动版 ← [[v2rayN]](Android 版) -- [[Bandwagon VPS]] ← 托管 ← [[3X-UI]] + [[Xray]](服务端节点) - -## Contradictions -- 与 [[3x-ui-xray-on-bandwagonvps]] 互补而非冲突:v2rayN 是客户端,3X-UI 是服务端管理面板,共同构成完整代理链路(服务端 Xray ←→ 客户端 v2rayN) -- 与 [[ubuntu-server科学上网]] 各有侧重:v2rayN 提供图形界面,命令行代理适合服务器/路由器场景 +--- +title: "安装v2rayN" +type: source +tags: [linux, v2rayn, windows] +date: 2026-05-14 +--- + +## Source File +- [[Home Office/安装v2rayN.md]] + +## Summary(用中文描述) +- 核心主题:v2rayN 跨平台代理工具的各操作系统安装包说明与安装方法 +- 问题域:用户在不同操作系统(Windows、Linux、macOS)上安装 v2rayN 客户端的需求 +- 方法/机制:通过官方提供的便携版(zip)和安装版(deb/rpm/dmg)两种方式覆盖不同使用场景;内置 Xray、sing-box、mihomo 核心;支持 x64 和 ARM64 架构 +- 结论/价值:提供了清晰的跨平台安装指引,用户可根据系统和架构选择对应包 + +## Key Claims(用中文描述) +- v2rayN 发布包内置部分 Core(Xray、sing-box、mihomo),其他 Core 需自行下载 +- zip 格式为便携版,解压即用,文件存储在程序文件夹,可复制多份互相独立 +- Windows 版需要 Windows 10+;x64 版提供 WPF 界面(需 .NET 8.0 Runtime)和 Avalonia UI 界面两种选择 +- Linux 版支持 Debian 12+、Ubuntu 22.04+、Fedora 36+、Redhat 9+;提供 zip 便携版和 deb/rpm 安装版 +- macOS 版支持 macOS 12+;dmg 安装包因无签名会提示"应用已损坏",需执行 `xattr -cr` 修复 +- ARM64 架构在 Windows、Linux、macOS 上均有对应包 + +## Key Quotes +> "zip格式包为便携版,解压缩到文件夹后直接可以运行,存储文件位置为本文件夹;可以复制多份互相独立" — 便携版特性说明 +> "v2rayN-windows-64-desktop.zip Avalonia UI 实现的界面" — WPF vs Avalonia 区别 +> "由于安装包没有签名,会提示应用已损坏;安装后需要运行:xattr -cr /Applications/v2rayN.app" — macOS dmg 安装后必须操作 + +## Key Concepts +- [[代理客户端]]:运行代理协议的桌面/服务器端程序,接收本地流量并转发至远程服务器 +- [[代理核心 Core]]:代理客户端的内核引擎,负责实际的协议通信;v2rayN 支持 Xray、sing-box、mihomo 等多种核心 +- [[跨平台兼容]]:同一软件支持 Windows、Linux、macOS 多操作系统 +- [[ARM64 架构支持]]:支持 Apple Silicon、ARM 服务器等 ARM64 硬件平台 + +## Key Entities +- [[v2rayN]]:2dust 开发的跨平台代理客户端,支持多种代理协议和多个代理核心 +- [[Xray]]:代理核心之一,内置于 v2rayN 发布包 +- [[sing-box]]:代理核心之一,内置于 v2rayN 发布包 +- [[mihomo]]:代理核心(Clash.Meta)之一,内置于 v2rayN 发布包 +- [[Microsoft .NET 8.0 Desktop Runtime]]:Windows WPF 版 v2rayN 的运行时依赖 + +## Connections +- [[3X-UI Xray on BandwagonVPS]] ← relates_to ← [[安装v2rayn]](均涉及 Xray/代理工具生态) +- [[Ubuntu Server科学上网]] ← extends ← [[安装v2rayn]](Linux 服务器端科学上网的客户端安装参考) + +## Contradictions +- 无已知冲突 diff --git a/wiki/sources/家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox.md b/wiki/sources/家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox.md index 89b901db..419530cf 100644 --- a/wiki/sources/家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox.md +++ b/wiki/sources/家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox.md @@ -1,101 +1,61 @@ ---- -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.yml,8 步落地路径,涵盖 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 与配置放在 Git(GitOps)。" — 配置备份最佳实践 - -## 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]] 冲突:该来源标注为 expected(source 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 Kuma(19999 / 3001)验证 -2. 上线 Prometheus + prometheus.yml,配置 scrape_configs -3. 每台主机部署 node_exporter(host network 模式) -4. Grafana 导入 Dashboard(1860 / 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: [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 告警集成 diff --git a/wiki/sources/用docker安装portainer.md b/wiki/sources/用docker安装portainer.md index 6905d9ee..084e22ef 100644 --- a/wiki/sources/用docker安装portainer.md +++ b/wiki/sources/用docker安装portainer.md @@ -1,50 +1,34 @@ ---- -title: "用Docker安装Portainer" -type: source -tags: [docker, portainer] -date: 2026-04-14 ---- - -## Source File -- [[raw/Home Office/用Docker安装Portainer.md]] - -## Summary (用中文描述) -- **核心主题**:通过 Docker Compose 在 Home Server 上部署 Portainer 容器管理 Web UI -- **问题域**:家庭服务器 Docker 容器运维管理 -- **方法/机制**:使用 docker-compose.yml 定义 Portainer 服务,通过 Docker socket 直通实现宿主机 Docker 守护进程的 Web 可视化管理 -- **结论/价值**:提供图形化界面管理 Docker 容器/镜像/卷/网络,降低命令行运维门槛 - -## Key Claims (用中文描述) -- **Portainer** 通过 `docker.sock` 挂载实现对宿主机 Docker 守护进程的完整访问控制 -- 使用 **portainer/portainer-ce:lts** 镜像部署 Portainer Community Edition 长期支持版 -- 配置 `restart: always` 确保容器在宿主机重启后自动恢复 -- 映射端口 `9443:9443` 提供 HTTPS API Web 界面,`8000:8000` 支持 Edge Agent 通信 -- 持久化数据存储在 Docker 卷 `portainer_data:/data` - -## Key Quotes -> "create docker-compose.yml" — 部署起点,docker-compose 是 Portainer 部署的标准方式 - -> "`docker-compose run -d`" — 容器启动命令,后台守护模式运行 - -## Key Concepts -- [[Docker可视化管理工具]]:提供 Web UI 替代命令行管理 Docker 容器、镜像、卷、网络 -- [[Docker Socket]]:`/var/run/docker.sock` 是 Docker 守护进程的 Unix socket,挂载到容器内实现特权访问 -- [[Docker卷]]:`portainer_data` Docker 卷用于持久化 Portainer 自身数据(配置、密码等) - -## Key Entities -- [[Portainer]]:开源 Docker 可视化管理工具,提供 Web UI 管理容器/镜像/卷/网络 -- [[Portainer CE LTS]]:Portainer Community Edition 长期支持版本 - -## Connections -- [[Portainer]] ← 依赖 ← [[Docker Engine]](宿主机 Docker 守护进程) -- [[Portainer]] ← 使用 ← [[Docker Socket]](socket 直通实现特权访问) -- [[Portainer]] ← 存储数据在 ← [[Docker卷]](portainer_data 卷) -- [[Portainer]] ← 属于 ← [[Docker可视化管理工具]](替代命令行运维) - -## Contradictions -- 无冲突 - -## Related Sources -- [[用docker安装transmission]] — 同属 Home Office Docker 部署系列 -- [[用docker安装jellyfin]] — 同属 Home Office Docker 部署系列 -- [[用docker安装navidrome]] — 同属 Home Office Docker 部署系列 +--- +title: "用Docker安装Portainer" +type: source +tags: [docker, portainer] +date: 2026-04-26 +--- + +## Source File +- [[Home Office/用Docker安装Portainer]] + +## Summary(用中文描述) +- 核心主题:通过 Docker Compose 方式安装 Portainer 容器管理面板 +- 问题域:家庭服务器或NAS环境下的Docker容器可视化管理工作 +- 方法/机制:使用 docker-compose.yml 配置文件定义 Portainer 服务,通过 `docker-compose run -d` 启动容器 +- 结论/价值:提供图形化界面管理Docker容器、卷、网络等资源,降低命令行操作复杂度 + +## Key Claims(用中文描述) +- Portainer 通过挂载 Docker Socket(`/var/run/docker.sock`)实现对本地Docker守护进程的管理 +- 使用 LTS 版本镜像(`portainer/portainer-ce:lts`)确保稳定性和长期支持 +- 容器配置为 `restart: always`,确保服务在系统重启后自动恢复 +- 默认暴露 9443(HTTPS管理界面)和 8000(Edge Agent通信)端口 + +## Key Quotes +> "ports: - 9443:9443 - 8000:8000" — Portainer Web界面通过9443端口访问,8000端口用于Edge Agent通信(不使用Edge Agent时可移除) + +## Key Concepts +- [[Docker Compose]]:定义和运行多容器Docker应用的工具,通过YAML配置文件管理服务 +- [[Portainer]]:开源的Docker和Kubernetes图形化管理界面,支持容器、镜像、卷、网络等资源管理 + +## Key Entities +- [[Portainer]]:开源容器管理平台,本文档的核心安装目标 + +## Connections +- [[如何删除旧的废弃的Docker Container + Volume]] ← related_to ← [[用Docker安装Portainer]] diff --git a/wiki/sources/群晖nas科学上网方法.md b/wiki/sources/群晖nas科学上网方法.md index 0e7a0daf..bac2be6c 100644 --- a/wiki/sources/群晖nas科学上网方法.md +++ b/wiki/sources/群晖nas科学上网方法.md @@ -1,53 +1,48 @@ ---- -title: "群晖NAS科学上网方法" -type: source -tags: [docker, nas, synology, v2raya, vpn] -date: 2025-03-08 ---- - -## Source File -- [[raw/Home Office/群晖NAS科学上网方法.md]] - -## Summary (用中文描述) -- **核心主题:** 在群晖 NAS(Synology DSM)上通过 V2RayA 代理实现 Docker 容器透明代理,使 NAS 上的 Docker 可以访问 Docker Hub 等被墙的国外资源 -- **问题域:** 国内网络环境下 NAS Docker pull/pull image 困难;V2RayA 透明代理对 Docker Daemon 网络栈的兼容性挑战 -- **方法/机制:** 两层方案——① V2RayA Docker 容器 + 透明代理(分流模式:大陆白名单);② Docker Daemon HTTP Proxy 配置(兜底方案) -- **结论/价值:** 透明代理在群晖 DSM 7.x 中对 Docker Daemon 网络栈不一定生效;显式配置 Docker Daemon Proxy 环境变量是更可靠的 Engineering Best Practice - -## Key Claims (用中文描述) -- V2RayA 在群晖 DSM 7.x 环境下透明代理不一定对 Host(NAS 本机)生效,可能与 DSM 防火墙或路由表冲突 -- Docker Daemon (dockerd) 的网络栈在群晖 DSM 7.x 中不完全遵循 v2rayA 修改的 iptables 规则 -- 显式配置 Docker Daemon 的 HTTP Proxy 环境变量(`/etc/systemd/system/`)比依赖 NAS Host 透明代理更符合工程最佳实践 -- 验证流程:`curl -x` 测端口 → `curl` 直连测透明代理 → `docker pull` 实战验证 - -## Key Quotes -> "对于企业级或生产环境(即使是 SOHO),我建议**不要**依赖 NAS Host 的透明代理来解决 `docker pull` 问题,因为这修改了系统级路由表,容易影响 NAS 其他服务。**显式配置 Docker Daemon 的 Proxy 环境变量(上面的最后一种方法)是更符合 Engineering Best Practice 的做法。**" — 经验总结 - -> "⚠️ 风险提示:在 NAS 上开启透明代理(尤其是 Host 模式)有极小概率会导致局域网连接中断。如果你正在远程操作,请确保有备用连接方案(如 QuickConnect 或同局域网设备)。" — 操作警告 - -## Key Concepts -- [[透明代理]]:V2RayA 通过修改 iptables 规则劫持系统出站流量,国内流量直连、国外流量走代理的分流模式 -- [[Docker Daemon Proxy]]:Docker 守护进程的 HTTP/HTTPS 代理配置,通过 systemd 环境变量注入,使 `docker pull` 显式走代理而非依赖系统透明代理 -- [[分流模式]]:V2RayA 路由策略,"大陆白名单"模式下仅代理非中国大陆流量,减少不必要的代理开销 -- [[iptables]]:Linux 内核防火墙,V2RayA 通过修改 iptables 规则实现透明代理 - -## Key Entities -- [[V2RayA]]:V2Ray 的 Web 可视化管理界面,基于 V2Ray 内核,支持透明代理和多种分流策略 -- [[群晖 NAS]]:Synology NAS 设备,运行 DSM 操作系统,Docker 环境为 ContainerManager (DSM 7.x) -- [[Docker]]:容器化平台,群晖通过 ContainerManager 套件提供 Docker 支持 -- [[Docker Hub]]:Docker 官方镜像仓库,国内访问受限,是科学上网的主要需求驱动 -- [[DSM 7.x]]:群晖 DiskStation Manager 7.x 版本,Docker 服务名为 ContainerManager(旧版叫 Docker) - -## Connections -- [[V2RayA]] ← 部署于 ← [[群晖 NAS]] -- [[透明代理]] ← 依赖 ← [[iptables]] -- [[Docker Daemon Proxy]] ← 解决 ← 透明代理对 Docker 无效的场景 -- [[分流模式]] ← 配置于 ← [[V2RayA]] -- [[群晖NAS科学上网]] ← 扩展 ← [[ubuntu-server科学上网]](终端代理场景) - -## Contradictions -- 与"路由器科学上网"方案([[MerlinClash插件]])对比: - - **冲突点:** 路由器作为全屋透明网关 vs NAS 终端代理 - - **当前观点(本文):** NAS 终端配置 Docker Daemon Proxy 是针对 Docker 场景的精确解决方案 - - **对方观点(路由方案):** 路由器透明代理覆盖所有设备,无需逐设备配置 - - **结论:** 两者互补,路由器作为主网关,NAS 按需单独配置 Docker 代理 +--- +title: "群晖NAS科学上网方法" +type: source +tags: [docker, nas, synology, v2raya, vpn, 透明代理] +date: 2025-03-08 +--- + +## Source File +- [[Home Office/群晖NAS科学上网方法]] + +## Summary(用中文描述) +- 核心主题:在群晖(Synology)NAS 上通过 Docker 安装 V2RayA,实现透明代理,使 NAS 本机和 Docker Daemon 均能科学上网 +- 问题域:群晖 DSM 环境下,Docker Daemon 网络栈不遵循 V2RayA 的 iptables 规则,导致 `docker pull` 仍无法走代理 +- 方法/机制: + - 通过 Docker 部署 V2RayA 容器(Host 网络模式) + - 透明代理(transparent proxy)劫持 NAS 本机出站流量 + - 路由规则选择"大陆白名单(Whitelist of Mainland China)"分流 + - 备用方案:显式配置 Docker Daemon HTTP 代理环境变量(推荐) +- 结论/价值:透明代理对 NAS 本机有效,但对 Docker Daemon 无效;Engineering Best Practice 是显式配置 Docker 守护进程代理,而非依赖 Host 透明代理 + +## Key Claims(用中文描述) +- V2RayA Docker 容器以 `--network=host` 模式运行,配合 `--restart=always` 确保开机自启 +- V2RayA 透明代理(分流模式"大陆白名单")可使 NAS 本机流量走代理,验证方法:`curl https://www.google.com`(不加 `-x` 参数)直接返回 HTTP 200 +- DSM 7.x 中,Docker Daemon (`dockerd`) 网络栈不完全遵循 v2rayA 的 iptables 规则,`docker pull` 可能仍然失败 +- 显式配置 Docker Daemon 代理(systemd environment variables)是解决 `docker pull` 科学上网的推荐方案,符合 Engineering Best Practice + +## Key Quotes +> "在群晖 DSM 7.x 中,Docker Daemon (`dockerd`) 的网络栈有时候不会完全遵循 v2rayA 修改的 iptables 规则。如果上面的 `docker pull` 仍然慢或失败,**不要死磕透明代理**,直接配置 Docker 守护进程走 HTTP 代理是最稳妥的方案。" — 核心观点 +> "对于企业级或生产环境(即使是SOHO),我建议**不要**依赖 NAS Host 的透明代理来解决 `docker pull` 问题,因为这修改了系统级路由表,容易影响 NAS 其他服务。**显式配置 Docker Daemon 的 Proxy 环境变量(上面的最后一种方法)是更符合 Engineering Best Practice 的做法。**" — 最佳实践建议 + +## Key Concepts +- [[V2RayA]]:基于 V2Ray 的轻量透明代理 Web 管理界面,支持多种分流规则(大陆白名单/GFWList 等) +- [[透明代理]](Transparent Proxy):在网络层劫持并转发流量,无需客户端显式配置代理 +- [[Docker Daemon 代理]]:通过 systemd 环境变量为 Docker 守护进程配置 HTTP/HTTPS 代理,影响所有 `docker pull` 和容器出站流量 +- [[Traffic Splitting]](流量分流):V2RayA 的分流模式,根据路由规则决定流量直连或走代理 + +## Key Entities +- [[Synology-DSM]]:群晖 NAS 操作系统,DSM 7.x 中 Docker 服务名为 `pkg-ContainerManager-dockerd` +- [[Docker]]:容器化平台,本文档中作为 V2RayA 的运行环境和需要科学上网的主要场景 +- [[mzz2017/v2raya]]:V2RayA 官方 Docker 镜像,用于在 NAS 上部署代理服务 + +## Connections +- [[Ubuntu-Server科学上网]] ← similar_approach ← [[群晖NAS科学上网方法]](同为 Linux 环境下部署 V2RayA 的实践) +- [[Synology-NAS上安装CloudDrive2]] ← same_platform ← [[群晖NAS科学上网方法]](均针对 Synology NAS 环境) +- [[如何传输Docker-images-并且在另一个Docker安装]] ← referenced_by ← [[群晖NAS科学上网方法]](文档内引用了镜像传输方法) + +## Contradictions +- 无冲突。与 [[Ubuntu-Server科学上网]] 的方法论一致(均推荐显式配置代理而非依赖透明代理)。