部署nezha(哪吒)监控面板
nezha(哪吒)是一款开源的轻量化服务器监控和运维工具,提供实时性能监控与告警通知。对于企业用户来说,nezha可以帮助实时监控服务器健康状况、网络响应、SSL证书状态,同时支持各种丰富的告警和自动化功能,彻底双手!告辞烦人的命令行操作、避免低效的监控方式,大幅提升运维效率。对于个人开发者来说,可以很方便的管理自己的机器和设备,提高生产力水平。
这个工具安装要分为两部分介绍,一是Dashboard,这部分安装在服务器上,负责提供前台和后台管理;二是Agent,这部分安装在需要接入Dashboard的机器上,接入之后可以通过Dashboard进行统一管理。
在开始之前,请确保主机上安装了docker。
1. 在服务器上安装Dashboard
1.1 启动服务
创建 docker-compose.yml 文件如下:
services:
dashboard:
image: ghcr.io/nezhahq/nezha
restart: always
ports:
- "127.0.0.1:8008:8008"
volumes:
- /data/nezha/data:/dashboard/data
注意,这里在映射端口号时监听本地,这是为了防止端口被扫描,我也是第一次见这种本地监听+反向代理的写法。
由于网络问题,可能无法直接从 ghcr.io 拉取镜像,可以替换为南京大学镜像源:
services:
dashboard:
image: ghcr.nju.edu.cn/nezhahq/nezha
restart: always
ports:
- "127.0.0.1:8008:8008"
volumes:
- /data/nezha/data:/dashboard/data
然后使用 docker-compose up -d 可以直接启动。
1.2 配置反向代理
接下来是反向代理操作,这里我看网上一些大佬用了caddy (Docker部署哪吒监控)做反向代理,感觉比nginx要简单很多,所以这里简单介绍一下。
-
安装必要依赖
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https -
导入 Caddy 官方 GPG 密钥:
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg -
添加 Caddy 软件源:
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list -
更新包列表并安装 Caddy:
sudo apt update sudo apt install caddy当然,这里可能会由于网络问题在第4步卡住,也可以直接根据系统去github上下安装包:Releases · caddyserver/caddy
我的这台服务器是 Ubuntu 22.04,所以下这个包:
# 1.下载 wget https://github.com/caddyserver/caddy/releases/download/v2.10.2/caddy_2.10.2_linux_amd64.deb # 2.安装 dpkg -i caddy_2.10.2_linux_amd64.deb -
验证,安装完成后,可以通过以下命令验证 Caddy 是否成功安装:
caddy version如果安装成功,会显示当前 Caddy 的版本信息
-
启动caddy服务:
systemctl start caddy -
配置反向代理
caddy的配置文件为
/etc/caddy/Caddyfile,如下配置:example.com { reverse_proxy /proto.NezhaService/* h2c://127.0.0.1:8008 reverse_proxy /* 127.0.0.1:8008 }这个
example.com是你的域名,如果没有域名,也可用下面这种方式做反向代理::18008 { reverse_proxy /proto.NezhaService/* h2c://127.0.0.1:8008 reverse_proxy /* 127.0.0.1:8008 }可以通过访问
http://<your-ip>:18008来访问Dashboard。
实际上,ip地址也可用自签的证书,这一点内容我之后再补充。
1.3 安装结果
进入dashboard界面后,输入默认用户名和密码即可进入,这里强烈建议进去以后先把密码修改成强密码,不然可能会被暴力破解。

这里我已经加入了两台服务器,接下来讲如何在机器上安装nezha-agent,通过dashboard管理。
2. 在要管理的机器上安装Agent
安装Agent的方法有很多,比较方便的是官网上提供的这种方法,可以看到安装命令这个地方,可以根据机器类型复制安装命令,目前提供Windows、macOS、Linux三种操作系统的Agent安装脚本。
2.1 配置Agent对接地址
在复制安装命令之前,需要在dashboard系统配置中配置Agent对接地址:

这个地址实际上就是访问dashboard的地址,比如说我的地址就是http://<ip>:18008。
2.2 复制安装脚本安装
这里以Linux安装命令为例:
curl -L https://raw.githubusercontent.com/nezhahq/scripts/main/agent/install.sh -o agent.sh && chmod +x agent.sh && env NZ_SERVER=<ip>:18008 NZ_TLS=false NZ_CLIENT_SECRET=<secret> ./agent.sh
同样地,由于网络问题,这个install.sh脚本可能无法正常拉取,可以先复制脚本内容(不多,200行左右),然后在服务器上新建脚本文件。
但是我在安装过程中,还是遇到了网络问题,我查看了脚本内容,发现isCN这个参数默认为 false,需要将其设置为 true 才会从gitee下载可执行文件,因此需要对安装命令做些修改:
curl -L https://raw.githubusercontent.com/nezhahq/scripts/main/agent/install.sh -o agent.sh && chmod +x agent.sh && env NZ_SERVER=<ip>:18008 NZ_TLS=false isCN=true NZ_CLIENT_SECRET=<secret> ./agent.sh
安装成功会有提示,并且可以在面板中看到新加入的机器。
简单讲讲
关于这个工具的使用,后续还需要继续摸索摸索,因为我在管理面板中看到了应用防火墙、内网穿透这些有意思的东西,感兴趣的朋友们也可以深入研究一下。
这个工具在定位上来说,属于zabbix的平替,但是毕竟是个轻量化的运维服务,比起zabbix庞大的架构和复杂的功能来说,还是有点不够看,后面也会补一期zabbix安装和部署教程。