您的 Healthchecks 服务器上安装什么?
- Healthchecks 5.0,来自官方镜像
- SQLite 数据库,所以不需要单独的数据库服务器
- 告警和报告进程(sendalerts、sendreports)在容器内运行
- 一个管理员账户,登录邮箱和密码在您的面板中
- 注册已关闭,别人无法注册
- 通过 Caddy 提供 HTTPS,使用基于您 IP 的 sslip.io 地址
- 防火墙只开放 22、80 和 443 端口
Healthchecks 需要多大的配置?
Healthchecks 文档没有给出 RAM 数值。经验上,1 GB 是不错的起点,因为应用主要是响应 ping 请求并在后台发送告警。如果需要节省内存,文档指向 GUNICORN_WORKERS 设置。随着检查数量和 ping 历史增加,可以考虑 2 GB。默认情况下,每个检查保留最近 100 次 ping,一个账户最多可以有 10,000 个检查。
| 用途 | 配置 | 价格 | 选择 |
|---|---|---|---|
| 几个人 | 1 GB RAM · 1 vCore · 25 GB NVMe | $2.58/月 | |
| 小团队 | 2 GB RAM · 1 vCore · 40 GB NVMe | $4.01/月 | |
| 公司 | 4 GB RAM · 2 vCore · 60 GB NVMe | $6.89/月 |
适合谁?
- 想确认昨晚的备份确实运行过的管理员
- 有 cron 任务和计划任务需要盯着的开发者
- 监控多个项目中任务的代理机构
- 不想把任务监控数据放在外部服务上的人
下单之后会发生什么?
- 设定配置并完成付款。
- 服务器启动后,Healthchecks 会自行安装。当面板中的“应用”一行显示 Healthchecks 已就绪时,就完成了。
- 在“概览”标签页点击“打开应用”,用“邮箱”和“密码”两行中的信息登录。
- 若要邮件告警,请把 EMAIL_HOST 等设置添加到 compose.yaml,或者改用 webhook。
- 创建一个检查,并设置它的周期和宽限时间。
- 在任务结束时,添加一次对该 ping 地址的 curl 调用。
每台服务器都包含
- 价格含每日备份
- 不限流量
- 完整 root 权限
- 之后可升级或降配 RAM 和 CPU,并扩大磁盘
- 位置:Istanbul · IST-1。
须知
- 本安装不会设置发信。Healthchecks 通过邮件发送告警、报告和登录链接,所以在您把 EMAIL_HOST 等设置添加到 /opt/seturack/healthchecks/compose.yaml 之前,这些都发不出去。
- Telegram、Discord、Pushover 和 Matrix 需要在服务器上添加额外的密钥。Webhook 则不需要。
- 如果 Healthchecks 停止运行,告警也会停止。对重要的任务,请让这台服务器与被监控的服务器分开。
- 请把 ping 地址当作机密。任何拿到它的人都可以把该任务标记为成功。
- 界面只有英文。
- 本安装使用 SQLite。项目把 PostgreSQL 或 MySQL 列为自托管的基础组件,所以如果您运行大量检查且 ping 很频繁,请规划数据库迁移。
Healthchecks 常见问题
Healthchecks 需要多少 RAM?
Healthchecks 文档没有给出 RAM 数值。经验上,1 GB 是不错的起点,检查数量增多、ping 历史变长时适合 2 GB。如果不够,可以在面板中升级配置。
Healthchecks 是怎么工作的?
每个检查都有自己的 ping 地址、预期周期和宽限时间。您的任务在结束时调用该地址。如果调用迟到,且宽限时间用完,检查就会变为 down 并发出告警。
如何给 cron 任务添加 Healthchecks?
复制检查的 ping 地址,并添加到您的 crontab 行中,像这样:/root/backup.sh && curl -fsS -m 10 --retry 5 -o /dev/null PING_ADDRESS。如果备份失败,ping 就不会发出,时间到了您就会收到告警。
任务可以报告自己失败了吗?
可以。在 ping 地址后加上 /fail 可以立即报告失败,加上 /start 可以标记一次运行的开始,也可以带上退出码。这样任务出错时就不必等到时间限制。
Healthchecks 支持哪些告警渠道?
Webhook、Slack、Microsoft Teams 和 PagerDuty 默认开启,不需要在服务器上添加密钥。邮件需要 SMTP 设置。Telegram、Discord 和 Pushover 需要把这些服务的密钥添加到 compose.yaml。
这和网站监控有什么不同?
Uptime Kuma 之类的工具会从外部向您的网站发送请求。Healthchecks 则相反:任务完成时主动来报到,没有动静就触发告警。这意味着它可以监控没有公网地址的备份和 cron 任务。
可以给 Healthchecks 使用自己的域名吗?
可以,但 ping 地址是由网站地址生成的,所以请在创建检查之前连接好域名。您需要一条 A 记录、Caddy 设置,以及 .env 文件中的 SITE_URL、SITE_HOST 和 SITE_ADI。如果以后再改,请更新任务中的地址。