rcourtman/Pulse
GitHub: rcourtman/Pulse
Pulse 是一款多平台基础设施监控工具,通过主动巡检和 AI 辅助在 Proxmox、Docker、Kubernetes、TrueNAS、vSphere 等环境中捕获静默故障并智能告警。
Stars: 6289 | Forks: 251
# Pulse
Issue 优先的贡献策略:在投入时间进行代码更改之前,请先提出 issue 或发起讨论。对于此代码库,外部的 pull request 不属于常规贡献流程。请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 🚀 概述
仪表盘只能向您展示您去查看时正在发生的情况。而大多数基础设施问题都是在您没有留意时开始的:连续三次静默失败的备份任务、容量悄然逼近满载的 ZFS 池、陷入重启循环的 VM。Pulse 正是为填补这一空白而生的。
Pulse 在同一个工作区中监控您的 Proxmox、Docker、Kubernetes、TrueNAS 和 vSphere 资产,并在出现故障的瞬间向您发出警报。除了警报之外,**Pulse Patrol** 会按照计划执行工程师的巡检任务,发现那些没人配置规则的问题,并解释它们的含义。在 Pro 版本中,Patrol 还会调查问题,并在命令安全策略的约束下,通过验证和审计追踪应用安全修复。
专为家庭实验室、系统管理员、内部 IT 团队以及那些希望在不运行企业级监控套件的情况下获得严肃监控能力的提供商而设计。MSP 访问是一条独立的、需要协助申请的提供商路径,不属于常规的自托管设置。

## ✨ 功能
### 持续监控,而非仅作展示
- **Pulse Patrol**:计划的后台健康检查(每 10 分钟到每 7 天一次),用于捕获静默故障:失败的备份任务、容量即将耗尽的池、陷入重启循环的 VM、时钟漂移、失败的健康检查。在所有层级上运行;社区版安装使用您自己的 AI 提供商或本地模型。
- **调查与安全修复(Pro / 托管 Cloud 版)**:由警报触发的根因调查,以及根据命令安全策略进行的可选修复,并带有验证和审计追踪。
- **聊天助手 (BYOK)**:用自然语言询问有关您基础设施的问题。
- **自带 Agent (MCP)**:更喜欢 Claude Code、OpenCode 或其他 MCP 客户端?Pulse 内置了 MCP server,公开了助手所使用的相同受控工具(库存、指标、警报、存储、行动建议)。设置位于 Settings → Pulse Intelligence → Assistant → External agents。
- **成本跟踪**:跟踪每个提供商/模型的使用量和成本。
### 核心监控
- **统一监控**:集中查看 PVE、PBS、PMG、Docker、Kubernetes 和 TrueNAS 的健康状况和指标。
- **智能警报**:基于迟滞的自适应阈值,减少频繁误报,通过 Discord、Slack、Telegram、电子邮件等发送通知。
- **自动发现**:自动查找网络上的 Proxmox 节点。
- **指标历史记录**:带有可配置保留期限的持久化存储。
- **恢复视图**:每个平台的备份、快照和复制历史记录(PBS、ZFS/TrueNAS、vSphere)。
### 多平台
- **Proxmox VE/PBS/PMG**:完整的监控和管理。
- **TrueNAS**:池、数据集、磁盘、ZFS 快照、复制任务和警报。
- **Kubernetes**:通过 agent 实现完整的 K8s 集群监控。
- **Docker/Podman**:容器和 Swarm 服务监控。
- **OCI 容器**:Proxmox 9.1+ 原生容器支持。
### 安全与运营
- **设计安全**:静态加密凭据,严格的 API 作用域,默认禁用 agent 命令。
- **一键更新**:轻松升级受支持的部署。
- **OIDC/SSO/SAML**:支持多提供商的单点登录。
- **移动端远程访问**:为受支持的 Pulse 移动客户端(Relay 及以上版本)提供端到端加密的 Relay 协议。
- **注重隐私**:默认启用出站使用情况遥测并[完全记录在案](docs/PRIVACY.md) — payload 使用轮换的化名安装 ID,不包含主机名、凭据、姓名、电子邮件地址、IP 地址或基础设施标识符。可在 Settings 中或通过 `PULSE_TELEMETRY=false` 随时禁用。
## 🧭 每个平台专属的页面
Patrol 和警报之所以能够跨越您的整个资产进行推理,是因为 Pulse 在同一个资源模型中包含了所有信息。UI 保留了运维人员已经熟悉的平台视图:
- **Proxmox**(PVE、PBS 和 PMG)、**Docker**、**Kubernetes**、**TrueNAS**、**vSphere** 和**独立机器**都有各自的页面。
- 存储和恢复(备份、快照、复制)显示在它们所属的平台页面上。
- **Alerts** 和 **Patrol** 是跨越所有平台的顶级视图。
高级用户快捷键:
- `g p` → Proxmox,`g d` → Docker,`g k` → Kubernetes,`g n` → TrueNAS,`g v` → vSphere,`g s` → 独立机器
- `g a` → Alerts,`g r` → Patrol,`g t` → Settings
- `/` → 搜索,`Cmd/Ctrl+K` → 命令面板,`?` → 快捷键帮助
## ⚡ 快速开始
### 选项 1:Proxmox LXC(推荐)
将 `vX.Y.Z` 替换为您想要的确切发布标签,验证已签名的安装程序,然后在您的 Proxmox 主机上运行它:
```
export PULSE_VERSION=vX.Y.Z
curl -fsSLO "https://github.com/rcourtman/Pulse/releases/download/${PULSE_VERSION}/install.sh"
curl -fsSLO "https://github.com/rcourtman/Pulse/releases/download/${PULSE_VERSION}/install.sh.sshsig"
ssh-keygen -Y verify \
-f <(printf '%s\n' 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMZd/DaH+BldzOkq1A8KVTcFk73nAyrE8aJOyf7i00jm pulse-installer') \
-I pulse-installer \
-n pulse-install \
-s install.sh.sshsig < install.sh
bash install.sh --version "${PULSE_VERSION}"
rm -f install.sh install.sh.sshsig
```
注意:这将安装 Pulse **server**。Agent 安装以及从 v5 到 v6 的 agent 升级,请使用在 **Settings → Infrastructure → Install on a host** 中生成的命令(由您的 Pulse 服务器上的 `/install.sh` 提供)。
### 选项 2:Docker
```
docker run -d \
--name pulse \
-p 7655:7655 \
-v pulse_data:/data \
--restart unless-stopped \
rcourtman/pulse:vX.Y.Z
```
通过 `http://:7655` 打开 Pulse。
## 本地开发
从仓库根目录使用托管开发运行时:
```
npm run dev
```
在浏览器中打开 `http://127.0.0.1:5173`。`5173` 是前端开发外壳,它将 `/api` 和 `/ws` 代理到 `7655` 上的后端。`7655` 是用于 API 和 websocket 流量的后端依赖,而不是本地前端开发的主要浏览器 URL。
除非您使用 `HOT_DEV_AUTH_USER` 和 `HOT_DEV_AUTH_PASS` 进行覆盖,否则托管的开发运行时在启动时会将其本地登录重置为 `admin` / `adminadminadmin`。
标准的本地开发命令:
- `npm run dev` — 启动托管运行时,如果较旧的非托管会话仍在使用规范的开发端口,则将其回收。
- `npm run dev:lab` — 以 lab-agent 模式启动托管运行时,将前端/后端暴露在 LAN 上,并为已安装的 lab agent 启用 Proxmox LXC Docker 清单。
- `npm run dev:status` — 显示前端外壳健康状况、代理 API 健康状况、直接后端健康状况和监听器所有权。
- `npm run dev:status:lab` — 使用与 `dev:lab` 相同的 LAN 绑定 lab-agent 默认设置显示状态。
- `npm run dev:verify` — 针对实时开发运行时运行托管的浏览器验证包,包括运行时恢复、Patrol 阻塞运行时页面契约,以及桌面 Recovery 布局防护,同时在验证包运行期间,启动器会抑制无关的后端重建波动。
- `npm run dev:verify:lab` — 应用 lab-agent 运行时默认设置后运行托管验证包。
- `npm run dev:logs` — 滚动查看托管运行时日志。
- `npm run dev:backend-restart` — 仅通过启动器契约重启托管后端。
- `npm run dev:stop` — 停止托管运行时。
- `npm run dev:foreground` — 如果您需要附加 shell,请有意运行前台热重载启动器。
- `npm run dev:foreground:lab` — 使用 lab-agent 默认设置运行前台热重载启动器以进行故障排除。
如果 `npm run dev:verify` 通过,则意味着托管的开发外壳、代理路径、后端健康检查端点、浏览器恢复路径、Patrol 阻塞运行时页面行为和 Recovery 桌面历史记录表布局都已对齐。
## 📚 文档
- **[安装指南](docs/INSTALL.md)**:针对 Docker、Kubernetes 和裸机的详细说明。
- **[升级到 v6](docs/UPGRADE_v6.md)**:从 v5 升级到 v6 的迁移指南。
- **[配置](docs/CONFIGURATION.md)**:设置身份验证、通知和高级设置。
- **[安全](SECURITY.md)**:了解 Pulse 的安全模型和最佳实践。
- **[API 参考](docs/API.md)**:将 Pulse 与您自己的工具集成。
- **[架构](ARCHITECTURE.md)**:高层系统设计和数据流。
- **[AI 功能](docs/AI.md)**:Pulse Assistant (Chat)、Pulse Patrol 和 Pulse MCP 外部 agent 适配器。
- **[多租户](docs/MULTI_TENANT.md)**:企业/内部多组织设置和配置。
- **[故障排除](docs/TROUBLESHOOTING.md)**:常见问题的解决方案。
- **[Agent 安全](docs/AGENT_SECURITY.md)**:Agent 权限模型、仅使用 Proxmox API 的选择以及校验和/签名验证。
- **[代码签名策略](docs/CODE_SIGNING_POLICY.md)**:构建来源、签名范围、批准和 Windows 发布者信任。
- **[Docker 监控](docs/DOCKER.md)**:Docker agent 的设置和管理。
## 🌐 社区集成
社区维护的集成和附加组件:
- **[Home Assistant Addons](https://github.com/Kosztyk/homeassistant-addons)** - 将 Pulse Agent 和 Pulse Server 作为 Home Assistant 插件运行。
## 💳 套餐(Community / Relay / Pro / Cloud)
Pulse 在每个自托管层级中都具有功能完备的核心监控。自托管的定价不再通过增加监控量来衡量价值;付费价值体现在便利性、历史记录、AI 运维和高级管理功能上。Cloud 仍然是 Pulse 的托管路径。MSP 是协助申请的提供商托管,每个客户端拥有一个独立的 Pulse 运行时。
自托管层级:
| 套餐 | 价格 | 核心监控 | 指标历史 | 主要价值 |
|---|---:|---|---:|---|
| Community | 免费 | 包含 | 7 天 | 完整的自托管监控 |
| Relay | $39/年 或 $4.99/月 | 包含 | 14 天 | 远程 Web 访问、移动应用配对和推送通知 |
| Pro | $79/年 或 $8.99/月 | 包含 | 90 天 | 实践导向的 Patrol 模式、问题调查、经过验证的修复和操作工具 |
无论通过何种方式收集,Pulse 仍然只对顶级受监控系统计算一次数量。该系统下的 VM、容器、pod、磁盘、备份和其他子资源都是包含在内的,而不是单独计数,但该计数不再是自托管付费的门槛。
Community 保留了 Patrol 功能,可使用您自己的提供商或本地模型。Relay 依然是便利层级,而 Pro 是付费的运维层级。
运行时对齐的功能摘要:
| 功能 | Community | Relay | Pro | Cloud |
|---|:---:|:---:|:---:|:---:|
| Pulse Patrol(后台健康检查) | ✅ | ✅ | ✅ | ✅ |
| 远程访问 / 移动端 / 推送 | — | ✅ | ✅ | ✅ |
| Patrol 调查问题并解释根本原因 | — | — | ✅ | ✅ |
| Patrol 应用安全修复并验证结果 | — | — | ✅ | ✅ |
| 集中式 Agent 配置 | — | — | ✅ | ✅ |
| 更新警报(容器/包更新) | ✅ | ✅ | ✅ | ✅ |
| SSO (OIDC/SAML/多提供商) | ✅ | ✅ | ✅ | ✅ |
| 基于角色的访问控制 (RBAC) | — | — | ✅ | ✅ |
| 企业审计日志 | — | — | ✅ |✅ |
| 高级基础设施报告 (PDF/CSV) | — | — | ✅ | ✅ |
| 扩展的指标历史记录 | 7 天 | 14 天 | 90 天 | 90 天 |
Pulse Patrol 会按照您的计划运行(每 10 分钟到每 7 天一次,默认为 6 小时),并找出:
- 容量即将耗尽的 ZFS 池
- 静默失败的备份任务
- 陷入重启循环的 VM
- 集群节点间的时钟漂移
- 容器健康检查失败
在自托管安装中,Pulse Patrol 使用您从 Pulse server 配置的提供商。它可以是商业 API 密钥或本地模型端点。Chat Assistant 遵循相同的自我管理提供商模型。
技术亮点:
- 跨系统上下文(节点、VM、备份、容器和指标历史)
- 使用您的提供商进行 LLM 分析,以及由警报触发的根因调查(Pro / 托管 Cloud 版)
- 带有命令安全策略和审计追踪的可选安全修复执行
- 用于保持集群设置一致性的集中式 agent 配置
**[尝试实时演示 →](https://demo.pulserelay.pro)** 或 **[在 pulserelay.pro 了解更多](https://pulserelay.pro)**
Pulse 套餐的技术细节:[docs/PULSE_PRO.md](docs/PULSE_PRO.md)
## ❤️ 支持 Pulse 开发
Pulse 由一人维护。赞助有助于支付演示服务器、开发工具和域名的费用。如果 Pulse 节省了您的时间,请考虑支持该项目!
[](https://github.com/sponsors/rcourtman)
[](https://ko-fi.com/rcourtman)
## 📄 许可证
MIT © [Richard Courtman](https://github.com/rcourtman)。使用 Pulse Pro 需遵守[服务条款](TERMS.md)。
Monitoring for Proxmox, Docker, Kubernetes, TrueNAS, and vSphere that watches your infrastructure so you don't have to.
[](https://github.com/rcourtman/Pulse) [](https://github.com/rcourtman/Pulse/releases/latest) [](https://hub.docker.com/r/rcourtman/pulse) [](LICENSE) [实时演示](https://demo.pulserelay.pro) • [Pulse Pro](https://pulserelay.pro) • [文档](docs/README.md) • [报告 Bug](https://github.com/rcourtman/Pulse/issues) 本地化入门指南:[Deutsch](docs/i18n/de/README.md) • [Español](docs/i18n/es/README.md)标签:AIOps, Docker, EVTX分析, MITM代理, Proxmox, 告警系统, 基础设施, 子域名突变, 安全防御评估, 请求拦截, 运维监控