自托管可用性监控

挂了别让用户
先发现。

定时探测 HTTP、端口、Ping、DNS,把心跳画成一条时间线。故障、证书到期、域名到期,走你配好的通知渠道。

站点与接口端口与主机DNS 解析设备自报心跳
探测类型
9
通知渠道
45
最短探测间隔
20 秒
心跳保留
180 天

值班墙界面示意,不是实时数据

官网

86ms

结算接口

DOWN

邮件网关

12ms

主站 DNS

9ms

源站 Ping

21ms

文档站

104ms

进了面板之后。

分组树、心跳条、批量导入、故障通知、证书到期,都在同一张台面上。格子里是界面示意,不是实时数据。

监控项长这样
左侧是分组树。名称旁边是协议,下一行是域名,下面是最近几次探测。

监控

生产1 异常

官网

结算接口

邮件网关

对象存储

测试正常

预发网关

日志上报

内部正常

管理后台

文档站

组内数量与异常数一眼可见

生产

6 / 7 正常

官网HTTPS

www.example.com

结算接口HTTPS

pay.internal:8443

邮件网关TCP

mail.example.com:25

对象存储HTTPS

cdn.example.com

日志上报PUSH

log-collector

文档站HTTPS

docs.example.com

主站 DNSDNS

example.com

刚刚翻转

结算接口

DOWN

恢复后

官网

86ms

状态从 UP 掉到 DOWN,才叫人。不是每一次探测都刷屏。

断了就叫人
渠道绑在监控项上。没绑定的,故障不会出声。
邮件企微钉钉WebhookSlack飞书短信

最近告警,以及值班的确认记录

  1. 09:14:02官网 · 探测 200 · 86ms
  2. 09:15:40对象存储 · 探测 200 · 134ms
  3. 09:16:11结算接口 · 连续失败,标记 DOWN
  4. 09:16:12通知 · 邮件 + 企微已发出
  5. 09:18:05日志上报 · 心跳延迟 4 分钟
  6. 09:19:22邮件网关 · 探测 200 · 12ms
  7. 09:20:10文档站 · 证书剩余 6 天,已提醒
  8. 09:21:40结算接口 · 恢复 UP · 91ms
  9. 09:24:03值班 · 已确认,标记为已处理
一次贴进去
域名或 URL 直接粘贴,先预览再导入。
bulk.txt4 条
https://www.example.com
https://pay.internal:8443
mail.example.com:25
https://cdn.example.com
识别后的表
显示名称、目标、类型都能改,确认后再写入。
显示名称目标类型
www.example.comhttps://www.example.comHTTP
pay.internalhttps://pay.internal:8443HTTP
mail.example.com:25mail.example.com:25端口
cdn.example.comhttps://cdn.example.comHTTP
识别到 4 条已选 4 条间隔 20 秒三列都能改

一条地址,按规则探

HTTP / 关键词 / JSON 盯页面;端口、Ping、DNS 盯基础设施;Push 留给不能主动访问的任务。

HTTP / HTTPS

状态码 · 关键词 · JSON

端口

TCP 能否连上

Ping

ICMP 往返

DNS

解析是否还在

Push

设备自己报活

每条监控单独设判定条件和间隔,互不影响。

证书和域名也会过期

条越往后越淡,是还没到那天。红的那一格,是该续了。

证书剩余

今天提前 7 / 14 / 21 天各提醒一次

域名剩余

今天提前 7 / 14 / 30 天各提醒一次
读取信息
签发方、到期时间
域名信息
注册商与到期时间
提醒方式
两类到期提醒可分别开关
检查频率
自动定时复查,无需手动
续期之后
下次复查自动更新,无需操作
分组和标签
生产做成组,子监控挂下面。标签用来过滤。

生产4 项

官网

结算接口

邮件网关

对象存储

测试2 项

预发网关

日志上报

内部2 项

管理后台

文档站

子项各自探测,组内汇总展示

生产测试标签带颜色,列表按标签过滤
代理出站
探测可以走指定代理,模拟特定出口。

本机

↓

proxy-hk-1

↓

pay.internal:8443

本机

↓

proxy-sg-2

↓

cdn.example.com

生效于
HTTP / 关键词 / JSON 查询
支持协议
常见代理协议均可
按监控项指定
同一批站可以走不同出口
不指定
直接连,探测照跑

一次故障的全过程

重试到上限才判定故障,避免一次抖动就叫人。

  1. 09:14:02探测 200 · 86ms
  2. 09:15:02超时,进入重试 1/3
  3. 09:15:32重试 2/3 · 连接被拒绝
  4. 09:16:02重试 3/3 失败,标记 DOWN
  5. 09:16:03通知已发出:邮件 + 企微
  6. 09:21:40恢复 UP · 91ms
连续失败几次算故障
每条单独设
多久重试一次
与探测频率分开
长时间没恢复
按间隔再提醒一次
计划内停机
可开启反转,停机不再误报
恢复判定
成功一次即恢复,立刻通知
故障记录
起止时间与耗时自动留存
点进去看到什么
详情页把结论和证据放在一起。

当前响应

86 ms

TLS 证书

剩余 67 天

域名到期

剩余 214 天

可用率

99.94%

最近一次探测

09:21:40 · 91ms

下方是每次探测的历史记录可暂停、立即检测、清空历史可用率按天汇总
谁能改,谁只能看
10 项权限位按人勾选,导航按权限渲染。

管理员独占用户管理

全部 10 项权限

可管理站长助理

除用户管理外的全部功能

日常运维不能删数据

添加、编辑、检测监控项与标签

只读看不到配置入口

仪表盘与监控详情

自定义按人微调

10 项逐条勾选,随时改

监控6 项设置4 项用户管理只给管理员
上线四步
从空机器到收到第一条告警。
01

接上数据库

用你现有的数据库,初始化一次就可以长期使用。

02

开通管理员

设置首位管理员的登录信息,密码由你决定。

03

启动服务

启动后立即开始探测,无需额外组件。

04

验证告警

每条渠道发一条测试消息,确认能收到再上生产。

05

按需开放

给同事开账号并勾权限,之后再逐步放开。

自托管
数据留在你自己的服务器,不经过第三方。
数据所有权归你
账号、配置与历史记录都在自己手上,可随时导出。
一次部署,长期可用
不按监控条数收费,也不绑定席位。
历史留存可调
默认保留 180 天,按需延长。
无需注册账号
成员由管理员在内部开通,不依赖外部服务。
内网也能监控
部署在内部网络,私有地址与端口一样能探。

探测能力

不同东西,用不同探法。

9 种监控类型分三组:盯站点、盯基础设施、等被监控端自报。判定标准和参数各不相同。

常规
5 种

HTTP(s)

请求一个 URL,按状态码判断是否可用

可反转

HTTP(s) - 关键词

在响应正文中查找关键词

可反转

HTTP(s) - JSON 查询

用 JSONata 表达式提取字段并与期望值比较

可反转

TCP 端口

建立一次 TCP 连接来判断端口是否开放

可反转

Ping

ICMP 探测主机连通性

可反转
特定服务
1 种

DNS

向指定 DNS 服务器查询记录

可反转
被动 / 组合
3 种

Push

由被监控端主动上报心跳,超时未上报即视为故障

可反转

监控项组

聚合子监控项,任一子项故障则组故障

手动

状态完全由人工设置,适合公告类条目

同一条地址,不同探法

探法决定「什么叫挂了」。状态码、关键词、JSON 字段、端口、解析结果,判定标准都不同。

HTTP 状态码

关键词命中

JSON 字段比对

探测间隔从 20 秒 到 1 小时 都能设,超时默认取间隔的 80%。

状态流转

从探测到通知,中间发生了什么。

一次状态变化要经过判定才出声。这张图里没有魔法,只有顺序。

1

探测

引擎按每条的间隔发起请求,HTTP、端口、Ping、DNS 或等被监控端自报。

2

判定

连续失败达到重试上限才翻成 DOWN,避免一次抖动就吵醒你。

3

通知

只有绑定了渠道的监控项会出声,消息里带上地址、状态码和失败原因。

4

留痕

每次探测都会记录,可用率和响应时间由这些记录算出。

一次真实的状态变化,在心跳里留下这些东西

UPDOWN · 触发通知恢复 UP格子的疏密就是探测频率

告警送达

45 个渠道,挑你已经有的用。

不用为了收告警再装一个 App。常用的 IM、短信、值班系统都在列表里,配好先发一条测试消息。

邮件
4 个渠道
  • Email (SMTP)
  • Resend
  • SendGrid
  • Mailgun
即时通讯
15 个渠道
  • Telegram
  • Discord
  • Slack
  • 钉钉机器人
  • 飞书 / Lark 机器人
  • Microsoft Teams

+9 个

微信生态
6 个渠道
  • 企业微信群机器人
  • 企业微信应用消息
  • Server 酱(微信)
  • PushPlus(微信)
  • WxPusher(微信)
  • 息知
移动推送
9 个渠道
  • PushDeer
  • Bark (iOS)
  • ntfy
  • Gotify
  • Pushover
  • PushMe

+3 个

短信
4 个渠道
  • 阿里云短信
  • 腾讯云短信
  • 短信宝
  • Twilio SMS
值班告警
3 个渠道
  • PagerDuty
  • Opsgenie
  • Grafana OnCall
自定义
4 个渠道
  • Home Assistant
  • Apprise
  • IFTTT Webhooks
  • 自定义 Webhook
故障消息里写什么
渠道只管送达,内容由事件类型决定。同一时刻只发一条,不刷屏。

状态变化

监控名称、目标地址、DOWN / UP、状态码与失败原因。

证书到期

颁发机构、到期日、剩余天数,按设定的提前天数提醒。

域名到期

注册商返回的到期时间,续费窗口提前通知。

能力清单

该有的都在,没用的不塞。

下面这些不是路线图,是现在就能点到的功能。

探测
  • 9 种监控类型,含关键词与 JSON 查询
  • 自定义请求方法、请求头、请求体
  • HTTP Basic / NTLM / mTLS / OAuth2 认证
  • 指定 IPv4 或 IPv6 出口
  • 失败重试次数与重试间隔可调
  • 反转模式:在线即视为故障
组织
  • 监控项组,任一子项故障则组故障
  • 标签着色,列表里按标签过滤
  • 仪表盘搜索与状态筛选(全部 / 故障 / 正常 / 暂停)
  • 暂停而不删除,保留历史心跳
  • 手动状态,用于公告类条目
出站与网络
  • 一个或多个代理,逐个绑定到监控项
  • DNS 指定解析服务器与记录类型
  • 证书链到期天数自动提取
  • 域名注册到期时间跟踪
协作与集成
  • AI 整理批量文本,自动补全协议
  • 批量导入前先预览表格再写入
  • Push 地址给不能主动访问的任务自报心跳
  • 心跳保留天数可调,超期自动清理

权限与协作

给人分配事,不给所有人钥匙。

角色只有两种,细粒度靠权限位。谁能在导航里看到什么,由权限决定。

10 项权限,按人勾
角色只有管理员和用户两种,细粒度靠权限位控制。管理员始终独占用户管理。

监控

查看仪表盘添加监控项编辑监控项删除监控项暂停 / 恢复 / 检测批量加站

设置

管理标签管理通知渠道管理代理系统设置

预设

  • 只读1 项

    只能查看仪表盘和监控详情,不能改任何配置。

  • 日常运维5 项

    添加、编辑和检测监控项,不能删除数据或改系统。

  • 可管理10 项

    除用户管理外的全部功能。用户管理始终仅限管理员。

谁在什么位置,看得到什么

按权限渲染导航。没有对应权限的入口不会出现,而不是点了才报错。

管理员

全部权限 + 用户管理

日常运维

增改监控、检测、标签、通知

只读

仅仪表盘与监控详情

自己改密码、换头像、改邮箱

个人资料修改密码头像上传验证码登录注册开关找回密码

自托管

数据在哪里,你说了算。

数据在自己的环境里,上线过程轻,后续备份和迁移都按你熟悉的方式做。

数据留在你的服务器
账号、监控配置与历史记录都存在自己的环境里,不经过任何第三方。
  • 随你现有的数据库一起管

    沿用团队已经在用的备份与权限流程。

  • 历史留存默认 180 天

    可按合规要求延长或缩短。

  • 时区可配置

    报表与告警时间按你的时区显示。

  • 单实例部署

    不需要额外的队列或缓存组件。

上线很轻

不用改架构,也不用先接一堆外部服务。

01准备好数据库连接,跑一次初始化即可
02设置首位管理员的登录信息
03启动服务,监控即刻开始运行
04先发一条测试通知,确认告警可达

需要先看界面也可以:关闭探测后启动,确认无误再开启。

常见疑问

部署前最常问的几件事。

如果这里没写到,去使用指南里按步骤走一遍更快。

必须公网才能用吗?

不用。它可以只在内网跑,探测内网地址、私网端口和内部域名,仪表盘也只在你的网络里可见。

探测频率能到多快?

最短 20 秒,最长 1 小时。超时默认取间隔的 80%,重试次数和重试间隔都能单独调。

一条挂了会被通知几次?

按状态变化通知。DOWN 发一次,恢复 UP 再发一次,中间不会每次探测都刷屏。

历史数据会一直留着吗?

默认保留 180 天,管理员可以改。重要的状态变化事件不受清理影响,长期可查。

多个站点能共用一套监控吗?

可以。一台实例管多个目标,用分组和标签区分环境,用权限位区分谁能改、谁只能看。

怎么确认通知真的能发出去?

每个渠道配好之后都能发一条测试消息,确认可达再保存。第一次真实故障前就验证过。

先让心跳跑起来。