手里那几台便宜 VPS,出问题的时候从来不打招呼。有一回博客打不开,我以为是程序崩了,折腾半小时登上去才发现是机器早被停了三天。

哪吒监控就是为这种事存在的。自己搭一个面板,每台机器装一个几兆的 agent,状态汇总到同一个页面:几台在线、几台离线、总流量跑了多少,一眼看完。

哪吒监控的用户前台:服务器总数、在线与离线数量、总流量四个卡片,下面按分组列出各节点状态

它轻得有点不像监控系统。服务端一个二进制文件或一个 Docker 容器,agent 也是单文件,一条命令装完就开始上报。我那台 512M 内存的小鸡,agent 常年占十几兆,几乎感觉不到它在跑。

监控项分三类。系统层面看 CPU、内存、硬盘、流量、负载、进程数;服务层面看 HTTP、TCP、Ping,能判断站点是挂了还是只是慢;证书层面盯着 SSL 到期时间,证书换了、快过期了、已经过期了,分别报不同的告警。

第三类最省心。以前域名证书过期是等访问者来提醒的,现在提前一周就有消息,赶在周末之前续上,不至于在工作日早上手忙脚乱。

告警能推到 Telegram、钉钉、企业微信、邮件,也可以走 webhook 自己接。规则按机器、按监控项单独设,别让一台不重要的小鸡半夜把你叫醒。

面板里还塞了两样别的东西:定时任务和网页终端。前者用来跑备份、清日志,后者在浏览器里直接开一个 shell,临时改个配置不用再翻 SSH 客户端。功能不深,但应急够用。

装起来比想象中简单:服务端一条 Docker 命令,面板起来后生成一串安装命令,粘贴到每台机器上执行,三十秒后节点就出现在列表里。agent 会自动上报系统信息,不用手工填配置。

监控数据只存在自己的服务器上,不上传第三方。这一点对不少人比功能多少更重要。

展示这一面也做了功夫。前台是公开状态页,有十几套社区主题,我现在用的这套暗色叫 nezha-dash,把所有节点排成两列,绿点红点一目了然;不想要别人看见,就在后台关掉访客访问。

它的定位其实很朴素:不做 APM,不做日志分析,只回答“现在活着吗、资源还够吗、证书还有几天”这三个问题。想深挖性能,还得配 Prometheus,那是另一套东西。

缺点也得说。面板要自己维护,agent 升级偶尔会掉线,得上去看一眼;公开状态页放出去之前,记得把 IP、机房、备注这些信息遮掉,不然等于把家底摊在互联网上。

装完之后最直观的变化是:不再靠“感觉”判断机器状态。哪台在偷偷跑满 CPU,哪条线路的延迟在慢慢变差,翻一下历史曲线就清楚了。