从探针到监控全家桶:我的服务器都跑了些啥

服务器上跑着十几套 Docker 服务,最怕的不是出问题,而是出问题了没人知道。这篇文章聊聊我的三层监控方案:探针看状态、监控做告警、脚本自动保活。

一、为什么需要监控

我的主力服务器上跑着:WAF、代理面板、转发网关、监控、博客、游戏库、文件浏览……服务一多,"悄悄挂了"就成了常态。等某个服务挂了半天才发现,再抢救已经晚了。

所以监控的核心目标就一条:服务挂了,第一时间知道;能自动拉起,就自动拉起。

二、探针和监控不是一回事

类型 代表 干什么
探针 ServerStatus 类 实时展示在线状态、CPU/内存/流量曲线,是"仪表盘"
监控 Uptime Kuma / Komari 周期探测 + 失败告警(Telegram/Bark/邮件),是"报警器"

探针负责"好看",监控负责"好用"。两者互补,但多数人只搭了探针,忘了监控。

三、轻量监控方案:Komari

我选的是 Komari:开源、Docker 一键部署、SQLite 存储(零外部依赖)、自带 Web 面板、支持 Telegram/Bark 等告警通道。部署就三行:

services:
  komari:
    image: ghcr.linkos.org/komari-monitor/komari:latest
    restart: always
    ports:
      - "25774:25774"
    volumes:
      - ./data:/app/data

它的面板被我反代到一个子域名,手机上也能随时看:每个服务亮绿/红,失败会推告警到手机。

四、比监控更进一步:自动保活

光有监控还不够——服务挂了之后,我更希望它自己爬起来。于是写了个 keepalive.sh:定期遍历检查各容器健康状态,发现没在跑的容器就拉起来,再把结果汇报给监控。配一条 cron 每 5 分钟执行一次:

*/5 * * * * /www/docker_data/marzban/keepalive.sh >> /var/log/keepalive.log 2>&1

这样形成了三层保障:探针看得见、监控喊得响、脚本拉得回。真遇到拉不回来的硬故障,至少告警早就到手机上了。

五、小结

监控不是折腾,是对自己服务器的一种责任感。从探针到 Komari 到 keepalive,十几行配置换来的,是"睡觉时服务挂了也会被叫醒"的踏实。

上一篇
下一篇