前言
没有监控的服务器是什么体验?凌晨三点网站打不开,不知道是数据库崩了、带宽跑满还是被挖矿,只能一台一台 SSH 进去敲命令排查。管着三台 VPS、两台树莓派、一台 NAS,每次查状态挨个登录,敲 htop、df -h、netstat,一套下来半小时没了。更憋屈的是,明明没动过配置,服务悄悄宕了,等用户反馈过来才知道。
这种状态,说白了就是服务器在"裸奔"。没有仪表盘的飞机,飞得再高看不见油还剩多少、引擎是否过热。
哪吒监控面板就是来解决这个的。一套 Dashboard + Agent 架构,主控面板跑在公网 VPS 上,每台被监控机器装一个轻量级客户端,CPU、内存、磁盘、流量、在线率这些指标集中展示,钉钉机器人告警配置好,出了问题第一时间通知到你。出门在外手机打开监控面板,所有服务器状态一目了然,不用再逐台登录。
1.什么是哪吒面板?
哪吒面板(Nezha Monitoring) 是一款 开源、跨平台、自托管的服务器监控与管理面板,专为个人开发者、运维人员和小型团队设计,用于集中监控多台服务器(包括VPS、云主机、树莓派、NAS等)的实时状态。
主要特性
| 功能 | 说明 |
|---|---|
| 😊多节点管理 | 一个Dashboard管理数十台甚至上百台主机 |
| 💕简洁 UI | 响应式Web界面,支持暗色主题,手机/PC 体验一致 |
| 📊 实时监控 | CPU、内存、磁盘、带宽、在线率、进程数、负载等指标 |
| 🌐 跨平台 Agent | 支持 Linux、Windows、macOS、ARM(树莓派)、OpenWrt 等 |
| 🔀 双栈支持 | 完美兼容IPv4 / IPv6网络环境 |
| 🔔 智能告警 | 支持Telegram、Server、钉钉、企业微信、Bark等通知方式 |
| 🔒 自托管 | 所有数据存储在你自己的服务器上,无隐私泄露风险 |
架构组成
哪吒面板采用 “Dashboard + Agent” 分离架构:
Dashboard(控制面板)
- 运行在你的主服务器上(通常是一台公网VPS)
- 提供Web界面(默认端口8008)
- 存储监控数据(使用SQLite或MySQL)
Agent(客户端)
- 部署在每一台被监控的机器上(可内网)
- 轻量级(Go编写,资源占用极低)
- 主动上报数据到Dashboard
通信基于WebSocket + TLS,安全高效。
与其他监控工具对比
| 工具 | 优势 | 不足 |
|---|---|---|
| 哪吒面板 | 开源、轻量、中文友好、部署简单、支持Windows/ARM | 生态插件较少,不适合超大规模集群 |
| Prometheus + Grafana | 功能强大、生态丰富 | 配置复杂,学习成本高 |
| Uptime Kuma | 专注HTTP/端口可用性监控 | 不提供系统级指标(如CPU、内存) |
| 宝塔面板 | 集成建站+监控 | 监控功能弱,非专注型工具 |
适用场景
- 个人用户:监控家庭NAS、树莓派、博客VPS
- 开发者:跟踪测试机、数据库、API服务状态
- 小团队:统一查看所有业务服务器健康状况
- IPv6用户:完美支持纯IPv6环境监控(国内少有工具做到)
2.安装哪吒面板服务端
2.1 环境准备
首先你应当准备好一台配置不低于1核512MB内存的公网服务器,这个配置可以满足大部分的使用场景。并且请提前安装好依赖unzip,并提前在防火墙或者是安全策略放行8008端口,否则无法访问网站以及接收相关数据!
安装unzip:
CentOS系统:
sudoyuminstallunzip# CentOS 7 及以下版本sudodnfinstallunzip# CentOS 8 及以上版本Ubuntu或Debian系统:
sudoaptupdatesudoaptinstallunzip2.2 开始安装
在安装服务端的服务器上,运行下面的安装脚本:
curl-Lhttps://raw.githubusercontent.com/nezhahq/scripts/refs/heads/main/install.sh-onezha.sh&&chmod+x nezha.sh&&sudo./nezha.sh运行脚本后,会依次提示下方信息,如图所示继续操作(我选择手动安装):
等待服务端重启完成,不要关闭终端!
部署完成后,在浏览器中输入http://IP:8008就能看到哪吒面板的界面:
3.哪吒面板服务端配置
3.1 基础配置
点击右上方的登录,第一次登录的默认用户名和密码均为admin:
修改密码:
3.2 客户端详细配置
看完4章教程后来配置
点击编辑按钮:
公开备注输入下文,这是默认主题:
{"billingDataMod":{"startDate":"2024-12-08T12:58:17.636Z","endDate":"2024-12-08T12:58:17.636Z","autoRenewal":"1","cycle":"Year","amount":"200EUR"},"planDataMod":{"bandwidth":"30Mbps","trafficVol":"1TB/Month","trafficType":"2","IPv4":"1","IPv6":"1","networkRoute":"4837","extra":"Einstein"}}更新完后,也可以自定义字段:
返回前台查看变化:
4.客户端使用教程
4.1 准备工作
客户端一般安装在被检测的服务器上,支持在Windows 、macOS和Linux上一键安装。安装服务端的服务器也可以安装客户端,2者并不冲突!
客户端没啥配置要求,只要能联上服务端的服务器就行。
4.2 开始安装客户端
打开服务器一栏,点击右侧的“安装命令”,并选择被检测服务器所对应的系统,安装命令会自动复制到你的剪贴板上。
linux举例:
windows举例:
添加完成后,刷新网页,被检测服务器已经自动添加成功啦!
你可以点击编辑按钮为其设置名称:
返回前台可以查看到更直观的监控:
随意点击一个,查看它的详细信息:
也可以一键跳转终端:
4.3 客户端安装时出现的问题
这是linux给的自动安装脚本:
很奇怪,为什么我按照步骤安装,且没有报错,哪吒面板却没出现我的服务器?
修改Agent启动参数:关闭TLS
将你的安装/启动命令中的:
NZ_TLS="true"改为:
NZ_TLS="false"- 哪吒Agent的NZ_TLS=true仅在服务端配置了有效TLS证书(如Let’s Encrypt或自签名证书并正确加载)时才使用。
- 默认的Docker部署或二进制部署通常不包含HTTPS,所以应设为false。
- 即使你用 Nginx反向代理做了HTTPS,Agent也应该连接内部HTTP地址(如 127.0.0.1:8008),而不是走公网HTTPS。
把NZ_TLS改成false,问题就能解决!
5.实现钉钉机器人告警
5.1 获取Webhook URL
创建机器人:
在钉钉群的设置中添加机器人,选择自定义关键词方式。
步骤一:进入钉钉群 → 添加机器人
- 打开钉钉 App,进入你想要添加机器人的群聊。
- 点击右上角的「…」→ 选择「群设置」。
- 在群设置页面中找到「智能群助手」或「群机器人」选项。
- 点击「添加机器人」。
步骤二:选择“自定义”机器人
- 在添加机器人页面,选择「自定义」类型(也叫“Webhook”方式)。
- 填写机器人名称,例如:“哪吒”。
- 选择「关键词触发」或「全部消息」,根据需求设置。
- 点击「完成」。
获取Webhook URL:
创建完成后获得。创建完成后直接复制Webhook URL。
5.2 钉钉群机器人配置示例
点击展开/收起获取 URL 参数
- 创建机器人:在钉钉群的设置中添加机器人,选择自定义关键词方式。
- 获取 Webhook URL:创建完成后获得。
通知配置:
- 名称:哪吒探针小跟班
- URL:
添加通知分组,如图操作:
5.3 配置告警规则
我这里测试的是cpu大于20%就告警:
[{"type":"cpu","max":10,"duration":5,"cover":0,"ignore":{"1":true,"2":false}}]重点是一定要选择通知组!
这样钉钉群机器人就会在cpu>20%的时候告警啦!
5.4 监控规则分享
离线报警 规则:[{"Type":"offline","Duration":10}]解释:每10s坚持一次,如果离线会发通知。
CPU过高警告 规则:[{"type":"cpu","max":90,"duration":300}]解释:CPU超过90%发通知警告。
内存过高警告 规则:[{"type":"memory","max":90,"duration":300}]解释:内存占用超过90%发通知警告,300s一周期。
硬盘即将爆满 规则:[{"type":"disk","max":80,"duration":43200}]解释:硬盘占用超过80%发通知警告,12小时一周期。
6.安装cpolar实现随时随地开发
你是否遇到过这样的问题?
我在本地或内网部署了强大的 哪吒监控面板(Nezha Monitor),能实时查看服务器状态、网络流量、CPU负载……
但一旦离开公司/家庭网络,就再也无法访问?
想远程排查故障,却只能干着急?
传统方案如公网IP、DDNS、FRP、Nginx反向代理等,要么成本高,要么配置复杂,还涉及端口暴露、安全策略、动态IP等麻烦。
是时候认识 cpolar了!
cpolar—— 新一代内网穿透工具,专为开发者与运维打造。
6.1 什么是cpolar?
cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。
6.2 部署cpolar
cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。
❤️以下是安装cpolar步骤:
使用一键脚本安装命令:
sudocurlhttps://get.cpolar.sh|sh安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)
sudosystemctl status cpolarCpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:
打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。
7.配置公网地址
登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:
- 隧道名称:可自定义,本例使用了:nezha,注意不要与已有的隧道名称重复
- 协议:http
- 本地地址:8008
- 域名类型:随机域名
- 地区:选择China Top
创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。
访问成功。
8.保留固定公网地址
使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。
点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是nezha,大家可以自定义。填写备注信息,点击保留。
登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑。
修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名
- 地区: China Top
点击更新
更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。
最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。
总结
跑通这套之后,每台服务器的实时状态才算真正可视化。哪个节点 CPU 突然飙高、哪块磁盘快写满了、流量有没有异常,告警规则配置好,出了问题在影响业务之前就先收到通知。哪吒面板本身开源免费、配告警通知组、IPv4/IPv6 双栈支持,Go 写的客户端资源占用极低。NAS、树莓派这类小设备也能监控进来,和专业级监控工具比起来,零学习成本部署,实用角度完全够用。