手握多台小鸡怎么统一盯?哪吒探针自建监控面板,全网机器一屏看完


导读:本站讲过的监控方案分两路:Uptime Kuma盯的是“网站还活着吗”,Prometheus + Grafana看的是“单机指标细不细”。但有个场景一直空着——你手里有五台、十台、二十台VPS,分散在不同商家、不同地区,怎么用一个页面把它们的实时负载、流量、在线状态全部收进一屏?总不能开二十个SSH窗口吧。这篇讲哪吒探针(Nezha):面板部署在一台机器上,其余机器装个几十兆的Agent,CPU、内存、磁盘、网络流量、TCP连接数实时上报,掉线秒级告警推到Telegram或微信。全程Docker部署,半小时搭完。


一、多机管理的真实痛点:你缺的不是监控,是聚合


先对号入座。本站之前的Uptime Kuma教程解决“外部可用性”:域名能不能打开、HTTP状态码对不对。Prometheus方案解决“单机深度”:某台机器的内存曲线、磁盘IO细节。这两套方案在多机场景下都会变别扭:Uptime Kuma要手动添加几十个监控项,还看不到机器内部;Prometheus要在每台机器装exporter,Grafana面板配置繁琐,机器一多仪表盘爆炸。


真正的需求其实长这样:一个页面,每台机器一张卡片,卡片上跳动着实时CPU和内存,网络流量有上下行数字,谁掉线了卡片变红并给我手机推一条消息。每月月底看一眼,每台机器跑了多少流量一目了然。


这就是“探针”类工具的定位。哪吒探针是国人开发的开源项目,专为多VPS聚合监控而生,界面中文、资源占用极低、部署简单,在VPS玩家圈几乎是标配。同类还有ServerStatus(更老牌、更简陋)和Komodo(偏Docker管理),这篇以功能均衡的哪吒为主角。


二、架构先搞懂:面板端和Agent端是两回事


哪吒探针分两部分,理解了这个,部署和排障都不会迷路。


面板端(Dashboard):只部署一台,跑在你常驻的主力机器上。它提供Web界面、存储历史数据、发送告警。对配置要求极低:1核512M的机器就能跑,因为面板本身用的SQLite存数据,占用常年在100M内存以内。


Agent端(探针):每台被监控的机器装一个。它是个静态编译的Go程序,体积十几兆,负责采集本机指标并通过gRPC上报给面板。Agent不上报任何敏感数据,只读系统指标。


数据流:Agent每隔一秒采集,向面板端的长连接推送。面板端收到后写库、刷新前端页面。掉线检测靠这条长连接:连接断开,面板立刻标记机器离线并触发告警。


一个关键设计:Agent到面板走的是出站长连接,也就是说Agent所在的机器不需要开任何入站端口,只要它能访问面板端的端口就行。这意味着哪怕你的小鸡在层层NAT后面、防火墙只出不进,照样能被监控。这一点比很多老式方案(要求每台机器开采集端口)友好太多。


三、面板端部署:一条Docker命令的事


准备一台常驻机器(本站之前讲过的自托管应用都可以跟它合租)。建目录写docker-compose.yml:


services:

nezha-dashboard:

image: ghcr.io/naiba/nezha-dashboard:latest

container_name: nezha-dashboard

restart: unless-stopped

volumes:

- ./data:/dashboard/data

ports:

- '127.0.0.1:8008:8008'


跟本站Compose教程的套路完全一致:数据落盘到data目录、只绑回环地址、崩溃自动拉起。8008是面板默认端口,按需修改。


启动:


docker compose up -d


浏览器访问(建议先配好反代,套上HTTPS,参照本站反代教程),首次进入会让你设置管理员账号密码,登录后台。


进后台第一件事:管理面板里找到“服务器”菜单,添加一台服务器,拿到一个Agent密钥(secret)。这个密钥是Agent接入面板的凭证,后面每台机器都要用它。


四、Agent安装:一行命令铺到所有机器


在面板后台复制安装命令,形如:


curl -L https://raw.githubusercontent.com/nezhahq/scripts/main/agent/install.sh -o agent.sh && chmod +x agent.sh && env NZ_SERVER=面板IP:8008 NZ_TLS=false NZ_CLIENT_SECRET=你的密钥 ./agent.sh


把这条命令SSH到每台小鸡上跑一遍,Agent就装好并连上面板了。机器多的话,配合本站讲过的SSH别名技巧,一个for循环批量铺完:


for h in vps1 vps2 vps3; do ssh $h '安装命令'; done


装完刷新面板,每台机器的卡片就出现在首页:CPU占用、内存占用、实时网速、流量累计、在线时长、系统版本、虚拟化架构,全部实时跳动。


值得单独说的一点:Agent支持gRPC的反代。如果你的面板域名套了Cloudflare,注意CF的免费版对gRPC长连接支持有限(需开启gRPC支持且稳定性一般),生产建议面板端直连IP加端口,或者自配Nginx的gRPC反代。这是部署哪吒最高频的翻车点,先把这一条记牢。


五、把监控变成告警:通知规则配置


只看不做告警等于没监控。进面板的“通知”设置,先配通知方式,再配触发规则。


通知渠道支持Telegram Bot、企业微信、钉钉、飞书、邮件、Webhook。以Telegram为例:找BotFather建机器人拿token,拿自己的chat_id,填进面板,点测试,手机收到消息即通。


告警规则用哪吒的表达式语法,几个实用例子:


CPU持续告警:cpu_avg > 90 持续 300 秒——CPU均值超90%五分钟,推消息。


内存告警:mem_used_percent > 90


磁盘告警:disk_used_percent > 85——防患于未然,别等本站急救指南出场。


流量告警:(transfer_out + transfer_in) > 1099511627776——月流量破1T提醒,配合站内vnstat教程双保险。


离线告警:面板默认在机器掉线时通知,这是最核心的一条,商家半夜重启机器你也能第一时间知道。


规则语法支持持续时长参数,避免瞬时毛刺误报。建议起步只开“离线+磁盘+流量”三条,跑稳了再加细的。


六、安全加固:面板暴露在公网的必修课


面板是个Web服务,公网可达就要按公网服务的标准对待。


第一,套HTTPS。用本站反代教程的certbot流程给面板域名上证书,登录凭证不明文传输。


第二,改默认端口+绑回环。compose里已经只绑127.0.0.1,外部只能经你的Nginx进入,这层隔离挡掉了绝大多数扫描。


第三,面板后台开两步验证。哪吒支持TOTP验证,后台安全设置里扫码绑定,手机装个验证器即可。


第四,Agent密钥妥善保管。泄露了别人可以伪造你的机器数据,虽然危害有限,但会污染监控。


第五,更新要跟。哪吒迭代较快,历史版本出过XSS类漏洞,参照本站Compose教程的更新三连(pull、up -d、prune)每月更新一次面板,Agent可以设置自动更新。


七、进阶玩法:让面板更好用


几个实用功能,用起来幸福感明显提升。


流量结算日自定义:设置里把月流量重置日改成你商家的账单日,面板显示的月流量才和商家计费口径一致。


自定义前端主题:哪吒支持替换前端主题,社区有大量现成主题,管理后台一键切换,颜值党福音。


计划任务:面板可以直接给所有机器下发定时任务(比如批量重启某服务),省去逐台SSH。用得不多但关键时刻省事。


DDNS与API对接:进阶用户可以对接Cloudflare API实现面板域名故障转移,多机场景还能玩面板多活。新手先跳过。


数据保留策略:默认SQLite会一直积累历史数据,磁盘紧张的机器可以在设置里限制保留天数,或者定期清理数据库文件。


结语


机器一多,“挨个SSH看top”的工作流就该淘汰了。哪吒探针把十几台分散的小鸡收进一个页面:状态一眼扫完、异常主动推送、流量按月结算。配合本站已有的Uptime Kuma(外部可用性)和Prometheus(深度指标),三层监控各司其职,你的整个VPS舰队就再没有盲区了。半小时的部署成本,换全年安心,这笔账怎么算都值。


手机扫码阅读

微信或手机浏览器扫一扫,随时随地随心阅读与分享

网站访客数据自己收:Umami自建统计面板,不靠第三方也能看清流量

Docker Compose 实战:一条命令拉起个人应用栈,WordPress+数据库+反向代理全搞定

评 论
更换验证码