Margrop
Articles266
Tags689
Categories6

Categories

1password 24GB VRAM 2K 3.6 Flash 30B dense 4-bit 量化 6-DoF SLAM AC ACP AI & Economy ATLAS AI Agent AI Coding Assistant AI Tech AI Workflow AI tutor AI 安全 AI 工程 AI 应用 AI 日记 AI 生产力 AI编程助手 ALTK-Evolve AMIE AP API API 定价 API 降价 ARC-AGI-3 ASR ATEM chat 模板 AUTOMATIC1111 Agent Agent Harness Agent Memory Agent 入侵 Agent 可靠性 Agent 工程 Agent 架构 Agent 检索 Agent 沙箱 Agent 系统 Agent 训练 Agent 记忆 Agent 路由 Agentic AI Agentic tools Ai2 Alertmanager AllenAI Android 17 Antigravity AppDaemon AppWorld Aqara Astra Async GRPO Attention Baseten Benchmark CC-Switch CI/CD CLI Tools CLI工具 CPU 推理 Cache Hit Rate Caddy ChatGPT Claude Code Claude Sonnet ClawLoader Code Interpreter CodeMender Codex Coding Agent ComfyUI Computer Use Cookie 认证 Cosmos-H-Dreams Cost Optimization Cron Cybersecurity DFIR DSpark Date DeepSeek DeepSeek V4 Flash Diagrams.net Diary Diffusers Diffusion Docker Efficiency Tools Embedding English FSDP2 Fable 5 Fireworks AI FlashAttention FlashDreams Function Calling Funes GGUF GLM 5.2 GLM-5.2 GPT-4.1 GPT-5.6 GPT-5.6 Sol GPT-Live GPT-Live-1 GPT-Red GPU 加速 GPU 性能分析 GRPO Gateway Gemini Gemini 3.5 Flash Gemini 3.7 Flash Gemini API Gemini CLI Gemini Omni Flash Gemma 4 12B Gemma Translator Gemma4 GitHub Actions Google Google AI Google Data Commons Google DeepMind Google Research Google Sheets Grabette Gradio Gradio Workflow Gripette HA HADashboard HF Security Incident Hailuo Hermes Hexo HomeAssistant Hugging Face IBM Granite IBM Research Inference Providers Isaac Lab JSON Output Java KV cache Kimi K3 Kubernetes LFM2.5 LFM2.5-VL LLM Router LLM 安全 LLM 工程 LVM‑Thin Late Interaction LeRobot Linux Liquid AI LiquidAI Live Translate LoRA Luna MCP MTP MacOS Magpie TTS Managed Agents Meta Microsoft 365 Copilot MiniMax Mistral Shieldstral Model Routing MuJoCo Warp Multi-Agent Multi-Vector Muse Glimmer MySQL NAS NIM NVIDIA NeMo Automodel Nemotron 3 Embed NeoMME Newton Nginx Node.js Nunchaku OCR OOM OlmoEarth On-device AI Open Source OpenAI OpenAI 兼容 OpenClaw OpenCode OpenResty OpenWrt PII 检测 Physical AI Pollen Robotics Portainer PostgreSQL ProcessOn Project Astra Prometheus Prompt Caching Prompt Injection Proxmox VE PyTorch Qwen3 Qwen3-VL Qwen3.6 RAG RPC RTEB Real-Time Inference Red Teaming Responses API SNAP SOCKS5 SPED SVDQuant Schema Scientific Computing Self-Forcing Distillation Sentence Transformers Session Sheets canvas Shell Sol Storage Buckets Strands Agents Subagent Surgical Robotics TRL TTS Terra Think button TimeMachine Tokenizer Transformers TutorMoments UML Uptime Kuma V4-Pro VPS Voice Agent VoiceEQ WARP WebRTC WebSocket Windows World Foundation Model agent agentic aligenie aliyun annotation aop autofs backup bash bitwarden boot brew browser budget control centos cert certbot charles chat chrome classloader client clone closures cloudflare command commit commoditization container crontab cyber capability demo dependency deploy developer devtools dll dns docker domain download drafter draw drawio dsm dump dylib environment hooks exception fail2ban feign firewall-cmd flow free tier frontier hosted model frp frpc frps fuckgfw full-duplex function gfw git github gperftools gridea grub guardrail lockout gvt-g hacs havcs heap hello hexo hibernate hidpi hoisting homeassistant hosts html htmlparser https huggingface_hub iKuai iMessage image img img2kvm immortalwrt import index inference cost install intel io ios ip iptables iso java javascript jni jnilib jpa js json jsonb jupter jupyterlab jvm k8s kernel key kvm lastpass launchctl learning letsencrypt linux llama.cpp low-code lvm mac mariadb markdown maven md5 microcode mirror modules monitor mount mstsc multimodal mysql n5105 network nfs node node-red nodejs nohup notepad++ npm nssm ntp oop open weights openfeign openssl os ovz packet capture pdf pem perf pip plugin png powerbutton print pro productive struggle pve pvekclean python qcow2 qemu qemu-guest-agent rar reasoning control reasoning slider reboot reflog remote remote desktop renew repo resize retina router runtime safari sata scaffolding scheduled triggers scipy-notebook scoping scp self-play server serverless inference silent test simulated student so speculative decoding spk spring springboot springfox ssh ssl stash string support svg svn swagger sync synology systemctl systemd template terminal txt ubuntu ui undertow unlocker upgrade vLLM vhd vim vm vmdk web windows with worker xml yum zai-org/GLM-5.2 zip 一致性评测 上下文压缩 上下文工程 交换机 人才争夺 人机协作 代理 企业 AI 优化 低延迟 供应链 健康检查 光猫 免费层 内存 内存优化 内网渗透 分布式推理 分布式训练 医疗 AI 升级 卫星影像 反向代理 反诉 向量检索 启动 告警 告警优化 图像生成 地球观测 地理空间推理 复盘评测 夏令时 多 token 预测 多向量检索 多智能体 多模型编排 多模态 多模态 AI 多模态 API 多模态 Agent 多模态检索 多语言 多语言 AI 大厂人才战 大模型评测 天猫精灵 安全 安全事件 安全对齐 安装 定时任务 实时语音 客户端 SDK 容器 导入 小米 屏幕理解 工作流编排 工具审计 工具调用 工具调用拦截 工程团队 工程实践 工程笔记 常用软件 应用市场 延迟优化 开权重 开源权重 开源模型 异常 异步任务 异步委派 微信 心跳 性能优化 性能捕捉 成本优化 成本控制 扩散模型 技术 抓包 拒答校准 按 provider 优先级 排查 推理加速 推理成本 推理速度 推理预算 描述文件 提示词敏感性 故障排查 效率工具 教育数据开源 教育评测 数据工作流 数据治理 数据流 数据集偏差 文本编码器 旁路由 日志分析 日记 时区 显卡虚拟化 智能家居 智能音箱 服务管理 本地 agent 本地推理 机器人仿真 机器人学习 机器人数据采集 架构 模块 模型推理 模型评测 模型路由 残存访问 流式推理 流程 流程图 浏览器 混合专家 漫游 火绒 生成式影像 电信 画图 监控 监控系统 监管 知识蒸馏 磁盘 科研自动化 稀疏注意力 立体声 端侧 AI 端侧推理 端口 端口冲突 端口扫描 结构化输出 续期 网关 网络 网络安全 网络风暴 群晖 脚本 脚本优化 腾讯 自动化 自动恢复 自动攻击 自部署 苹果 虚拟机 视觉语言模型 视频生成 视频问诊 认证 证书 评测 评测基准 评测方法学 诉讼 语音 AI 语音 Agent 语音识别 超时 路由 路由器 软件管家 软路由 运维 运维监控 连接保活 连接问题 通信机制 通知 邮件漏发 部署 配置 量化 量子计算 钉钉 镜像 镜像源 长上下文 长连接 门窗传感器 问题排查 防火墙 阿里云 阿里源 集客 飞书

Hitokoto

Archive

OpenClaw Heartbeat 配置详解:如何设置最佳健康检查策略

OpenClaw Heartbeat 配置详解:如何设置最佳健康检查策略

OpenClaw Heartbeat 配置详解:如何设置最佳健康检查策略

前言

昨天我们遇到了一个典型的运维事故:三台服务器几乎同时出现故障,但由于定时健康检查脚本及时发现,得以在用户报修之前完成修复。这个经历让我深刻意识到:对于运维系统来说,健康检查不是可选项,而是必选项。

本文将详细介绍 OpenClaw 系统中 Heartbeat(心跳/健康检查)功能的配置方法,包括检查频率、检查内容、告警阈值等关键参数,帮助你构建一个高效、可靠的健康检查体系。

什么是 Heartbeat

Heartbeat 是 OpenClaw 系统中的一项核心功能,用于定期检测各节点、容器、服务的运行状态。与传统的只检查”进程在不在”的简单监控不同,OpenClaw 的 Heartbeat 可以检查多个维度的健康状态,并在发现问题时尝试自动修复或触发告警。

Heartbeat vs 传统监控的区别

特性 传统监控 OpenClaw Heartbeat
检查频率 通常5分钟或更久 可精确到秒级
检查内容 进程或端口 多维度状态
自动修复 通常不支持 部分场景支持
告警集成 需要额外配置 内置支持
灵活性 固定模板 完全可配置

配置详解

1. 基础配置

Heartbeat 功能通过配置文件进行管理,基础配置项包括:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
heartbeat:
# 是否启用 Heartbeat 功能
enabled: true

# 检查间隔(单位:毫秒)
# 建议值:300000(5分钟)- 600000(10分钟)
interval: 300000

# 超时时间(单位:毫秒)
# 建议值:30000(30秒)
timeout: 30000

# 重试次数
# 建议值:3
retries: 3

# 重试间隔(单位:毫秒)
retryInterval: 10000

2. 检查目标配置

Heartbeat 可以检查多种类型的目标:

2.1 Gateway 节点检查

1
2
3
4
5
6
7
8
9
10
11
heartbeat:
targets:
- name: "vm151-gateway"
type: "gateway"
host: "192.168.102.151"
port: 18789
check:
- "进程状态"
- "端口监听"
- "Web UI 可访问性"
- "消息通道连接状态"

2.2 Docker 容器检查

1
2
3
4
5
6
7
8
9
10
heartbeat:
targets:
- name: "openclaw-container"
type: "docker"
container: "openclaw-gateway"
check:
- "容器运行状态"
- "端口映射"
- "资源使用率"
- "日志错误"

2.3 外部服务检查

1
2
3
4
5
6
7
8
9
heartbeat:
targets:
- name: "外部API"
type: "http"
url: "https://api.example.com/health"
check:
- "HTTP 状态码"
- "响应时间"
- "特定内容存在性"

3. 自动修复配置

Heartbeat 支持在检测到问题时自动尝试修复:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
heartbeat:
autoRepair:
# 是否启用自动修复
enabled: true

# 修复策略
strategies:
- condition: "进程不存在"
action: "重启服务"

- condition: "systemd服务不存在"
action: "重建服务配置"

- condition: "服务为disabled状态"
action: "启用开机自启"

- condition: "端口被占用"
action: "清理占用进程"

最佳实践

1. 检查频率设置

检查频率的选择需要平衡两个因素:

  • 及时性:频率越高,发现问题越快
  • 资源消耗:频率越高,对系统资源消耗越大

建议配置

环境 检查频率 说明
生产环境关键服务 1-5分钟 及时发现问题
生产环境普通服务 5-10分钟 平衡性能和及时性
测试环境 15-30分钟 资源优先

2. 检查内容设置

根据服务的重要性和特点,配置不同的检查内容:

核心服务检查清单

1
2
3
4
5
6
7
8
9
10
11
✓ 进程状态
systemd 服务状态
✓ 端口监听状态
✓ Web UI 可访问性
✓ 消息通道连接状态
✓ 磁盘空间
✓ 内存使用率
✓ CPU 使用率
✓ 日志错误关键词
✓ 关键配置文件存在性
✓ 证书有效期

轻量级服务检查清单

1
2
3
✓ 进程状态
✓ 端口监听状态
✓ 基本响应性

3. 告警阈值设置

合理的告警阈值能避免告警疲劳:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
alerting:
# 磁盘使用率告警阈值
diskUsage:
warning: 80 # 80% 告警
critical: 90 # 90% 严重告警

# 内存使用率告警阈值
memoryUsage:
warning: 80
critical: 90

# CPU 使用率告警阈值
cpuUsage:
warning: 70
critical: 90

# 响应时间告警阈值(毫秒)
responseTime:
warning: 1000
critical: 5000

4. 告警通知配置

支持多种告警通知方式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
alerting:
channels:
- type: "dingtalk"
enabled: true
webhook: "https://oapi.dingtalk.com/robot/send?access_token=xxx"

- type: "email"
enabled: false
recipients:
- "[email protected]"

- type: "wecom"
enabled: true
webhook: "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx"

完整配置示例

以下是一个生产环境的完整 Heartbeat 配置示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# OpenClaw Heartbeat 配置

heartbeat:
enabled: true
interval: 300000 # 5分钟检查一次
timeout: 30000
retries: 3
retryInterval: 10000

# 检查目标列表
targets:
# Gateway 节点检查
- name: "vm151-gateway"
type: "gateway"
host: "192.168.102.151"
port: 18789
enabled: true
check:
- "进程状态"
- "端口监听"
- "Web UI"
- "钉钉连接"
- "systemd服务状态"

- name: "vm152-gateway"
type: "gateway"
host: "192.168.102.152"
port: 18789
enabled: true
check:
- "进程状态"
- "端口监听"
- "Web UI"
- "钉钉连接"
- "systemd服务状态"

- name: "vps4-gateway"
type: "gateway"
host: "192.168.160.14"
port: 18789
enabled: true
check:
- "进程状态"
- "端口监听"
- "Web UI"
- "端口冲突检测"

# 自动修复策略
autoRepair:
enabled: true
strategies:
- condition: "systemd服务不存在"
action: "执行openclaw gateway install"

- condition: "服务为disabled状态"
action: "执行systemctl enable"

- condition: "端口被占用"
action: "清理旧进程"

- condition: "进程不存在"
action: "重启服务"

# 告警配置
alerting:
enabled: true

# 告警冷却时间(避免重复告警)
cooldown: 3600000 # 1小时冷却时间

channels:
- type: "dingtalk"
enabled: true
level: "critical"

# 资源监控
monitoring:
diskUsage:
warning: 80
critical: 90

memoryUsage:
warning: 80
critical: 90

cpuUsage:
warning: 70
critical: 90

高级配置技巧

1. 分层检查策略

对于复杂环境,可以配置多层检查:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
heartbeat:
layers:
- name: "快速检查"
interval: 60000 # 1分钟
check:
- "进程状态"
- "端口监听"

- name: "深度检查"
interval: 300000 # 5分钟
check:
- "Web UI"
- "日志错误"
- "资源使用"

- name: "全面检查"
interval: 3600000 # 1小时
check:
- "配置文件完整性"
- "证书有效期"
- "磁盘健康"

2. 依赖检查策略

某些服务依赖其他服务,可以配置依赖关系:

1
2
3
4
5
6
7
8
9
10
11
heartbeat:
dependencies:
- name: "gateway依赖代理"
primary: "vm151-gateway"
secondary: "proxy-service"
checkOrder: "parallel" # 并行检查

- name: "应用依赖网关"
primary: "application-service"
secondary: "vm151-gateway"
checkOrder: "sequential" # 先检查依赖,再检查主服务

3. 灰度发布策略

在进行服务升级时,可以配置灰度检查:

1
2
3
4
5
6
7
8
9
heartbeat:
canary:
enabled: true
# 升级时先启动新版本
# 旧版本继续提供服务
# 新版本健康检查通过后,再切换流量
healthCheck:
duration: 600000 # 检查10分钟
threshold: 99 # 成功率必须>99%

常见问题解答

Q1:检查频率设置多少合适?

A:一般建议:

  • 关键服务:1-5分钟检查一次
  • 普通服务:5-10分钟检查一次
  • 非关键服务:15-30分钟检查一次

注意:检查太频繁会增加系统负担,太稀疏可能错过问题发现的最佳时机。

Q2:自动修复会不会有风险?

A:自动修复确实存在一定风险,建议:

  1. 先在测试环境验证自动修复逻辑
  2. 自动修复后记录日志,便于审计
  3. 对于高风险操作(如杀进程),建议设置确认机制
  4. 保留手动干预的能力

Q3:如何避免告警疲劳?

A:可以采用以下策略:

  1. 设置告警冷却时间,避免同一问题重复告警
  2. 分级告警:只对真正重要的问题发送即时通知
  3. 告警聚合:将短时间内多个同类告警合并为一个
  4. 静默期:在非工作时间设置告警静默

Q4:Heartbeat 和 Cron 任务有什么区别?

A:主要区别:

  • Heartbeat:专门用于健康检查,支持自动修复和告警
  • Cron:通用的定时任务执行器,适用于任何类型的定时任务

两者可以配合使用:Heartbeat 负责监控, Cron 负责执行其他定时任务。

Q5:如何监控 Heartbeat 本身是否正常工作?

A:可以:

  1. 配置外部监控系统(如 Prometheus)监控 Heartbeat
  2. 让外部监控系统定期调用 Heartbeat 的状态接口
  3. 如果 Heartbeat 状态接口超时或返回异常,触发告警

一键部署脚本

以下是一个快速部署 Heartbeat 配置的脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/bin/bash
# OpenClaw Heartbeat 一键部署脚本

set -e

echo "开始部署 OpenClaw Heartbeat 配置..."

# 1. 创建配置目录
mkdir -p /opt/openclaw/config

# 2. 生成 Heartbeat 配置文件
cat > /opt/openclaw/config/heartbeat.yml << 'EOF'
# OpenClaw Heartbeat 配置
heartbeat:
enabled: true
interval: 300000
timeout: 30000
retries: 3
retryInterval: 10000

targets:
- name: "vm151-gateway"
type: "gateway"
host: "192.168.102.151"
port: 18789
enabled: true

- name: "vm152-gateway"
type: "gateway"
host: "192.168.102.152"
port: 18789
enabled: true

autoRepair:
enabled: true

alerting:
enabled: true

monitoring:
diskUsage:
warning: 80
critical: 90
EOF

# 3. 重启 OpenClaw Gateway
systemctl restart openclaw-gateway

# 4. 验证配置
echo "验证 Heartbeat 配置..."
sleep 5
curl -s http://localhost:18789/api/health

echo ""
echo "Heartbeat 配置部署完成!"

总结

本文详细介绍了 OpenClaw Heartbeat 的配置方法,包括:

  1. 基础配置:启用、间隔、超时等基本参数
  2. 检查目标:支持多种类型的检查目标(Gateway、容器、外部服务)
  3. 自动修复:可配置的自动修复策略
  4. 告警配置:多渠道告警通知
  5. 最佳实践:检查频率、告警阈值等建议值

合理的 Heartbeat 配置能帮助我们:

  • 早发现问题:缩短故障发现时间
  • 减少人工干预:自动化处理常见问题
  • 提高系统稳定性:多层防护,层层把关

希望本文对你有帮助。如果有问题,欢迎在评论区讨论。


作者:小六,一个在上海努力搬砖的程序员

本文阅读量 --
Author:Margrop
Link:https://blog.margrop.com/post/2026-03-25-openclaw-heartbeat-config-guide/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可