哪吒面板安装过程
用到的项目:https://nezha.wiki/

写在前面
安装分两个部分(控制端dashboard,被控端agent)
其中控制端的软件安装在一台机器A上即可,被控制端的设备(B,C,D)向A定期发送数据
在控制端中安装Dashboard
在面板服务器中,运行以下安装脚本:
1
| curl -L https://raw.githubusercontent.com/nezhahq/scripts/refs/heads/main/install.sh -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh
|
如果你的服务器位于中国大陆,可以使用镜像:
1
| curl -L https://gitee.com/naibahq/scripts/raw/main/install.sh -o nezha.sh && chmod +x nezha.sh && sudo CN=true ./nezha.sh
|
以 Docker 安装为例,安装完成后按提示输入以下信息:
请输入站点标题:
- 自定义站点标题。
请输入暴露端口:
- 公开访问端口(默认 8008,可自定义)
请指定安装命令中预设的 nezha-agent 通信域名地址
(例如 example.com:443)
- 这里不要写8008了,使用
域名:444
即可,如dash.lthero.top:444
输入完成后,等待拉取 Docker 镜像
安装结束后,如果一切正常,你可以通过域名和端口号访问 Dashboard,例如:
http://dash.example.com:8008
如果需要再次运行安装脚本,可输入以下命令:
打开管理脚本
登录到 Dashboard 配置界面
后台管理界面的路径为 /dashboard
,你只需访问:
http://dash.example.com:8008/dashboard
首次登录的默认用户名和密码均为 admin
建议安装后立即进入管理页面:点击头像 → “个人信息” → “更新个人资料”修改密码。
HTTPS安装
脚本下载
1
| wget https://raw.githubusercontent.com/lthero-big/QcHTTPS/refs/heads/main/install_https.sh -O install_https.sh
|
脚本将保存在本地 ,install_https.sh ,您可以随时执行
脚本执行
随后输入
- 域名,如
dash.lthero.top
- 端口,
8008
- 邮箱,自己的
然后等证书下来后
修改这个配置文件vim /etc/nginx/sites-available/dash.lthero.top
Nginx 配置示例
如果你没有使用CloudFlare的服务,下面的代码默认为“你使用nginx作为最外层”,需要按下面的注释,删除(注释掉)一些代码
以下是使用 Nginx 配置反向代理的示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| server { listen 443 ssl http2; listen [::]:443 ssl http2;
server_name dashboard.example.com; ssl_certificate /data/letsencrypt/fullchain.pem; ssl_certificate_key /data/letsencrypt/key.pem; ssl_stapling on; ssl_session_timeout 1d; ssl_session_cache shared:SSL:10m; ssl_protocols TLSv1.2 TLSv1.3;
underscores_in_headers on; set_real_ip_from 0.0.0.0/0; real_ip_header CF-Connecting-IP;
location ^~ /proto.NezhaService/ { grpc_set_header Host $host; grpc_set_header nz-realip $http_CF_Connecting_IP; grpc_read_timeout 600s; grpc_send_timeout 600s; grpc_socket_keepalive on; client_max_body_size 10m; grpc_buffer_size 4m; grpc_pass grpc://dashboard; } location ~* ^/api/v1/ws/(server|terminal|file)(.*)$ { proxy_set_header Host $host; proxy_set_header nz-realip $http_cf_connecting_ip; proxy_set_header Origin https://$host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 3600s; proxy_send_timeout 3600s; proxy_pass http://127.0.0.1:8008; } location / { proxy_set_header Host $host; proxy_set_header nz-realip $http_cf_connecting_ip; proxy_read_timeout 3600s; proxy_send_timeout 3600s; proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k; proxy_max_temp_file_size 0; proxy_pass http://127.0.0.1:8008; } }
upstream dashboard { server 127.0.0.1:8008; keepalive 512; }
server { listen 80; server_name dash.lthero.top; return 301 https://$server_name$request_uri; }
|
下面是我的设置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name dash.lthero.top; ssl_certificate /etc/letsencrypt/live/dash.lthero.top/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/dash.lthero.top/privkey.pem; ssl_stapling on; ssl_session_timeout 1d; ssl_session_cache shared:SSL:10m; ssl_protocols TLSv1.2 TLSv1.3; underscores_in_headers on;
location ^~ /proto.NezhaService/ { grpc_set_header Host $host; grpc_set_header nz-realip $remote_addr; grpc_read_timeout 600s; grpc_send_timeout 600s; grpc_socket_keepalive on; client_max_body_size 10m; grpc_buffer_size 4m; grpc_pass grpc://dashboard; } location ~* ^/api/v1/ws/(server|terminal|file)(.*)$ { proxy_set_header Host $host; proxy_set_header nz-realip $remote_addr; proxy_set_header Origin https://$host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 3600s; proxy_send_timeout 3600s; proxy_pass http://127.0.0.1:8008; } location / { proxy_set_header Host $host; proxy_set_header nz-realip $remote_addr; proxy_read_timeout 3600s; proxy_send_timeout 3600s; proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k; proxy_max_temp_file_size 0; proxy_pass http://127.0.0.1:8008; } }
upstream dashboard { server 127.0.0.1:8008; keepalive 512; }
server { listen 80; server_name dash.lthero.top; return 301 https://$server_name$request_uri; }
|
最后,重启nginx即可
1 2 3 4
| sudo nginx -t sudo systemctl reload nginx
sudo systemctl restart nginx
|
在被控端安装agent
哪吒监控支持在 Windows、macOS 和 Linux 上一键安装 Agent
准备工作
在安装前,需要提前在管理面板中设置通信域名,该域名不建议接入 CDN。
本文档以示例通信域名 “dash.example.com:444” 为例
- 在后台管理面板点击头像,进入“系统设置”页。
- 在“Agent对接地址【域名/IP:端口】”项中填入通信域名和端口 “dash.example.com:444”
- 点击“确认”保存设置
一键安装步骤
- 在
服务器
页面中,点击 安装命令
并选择对应操作系统,安装命令将自动复制到你的剪贴板。
- 在被控端服务器中运行安装命令,等待安装完成后返回到
服务器
页面查看是否上线。
- 如果安装成功,页面中将自动弹出新的服务器,你可以点击编辑按钮为其设置名称。
查看 Agent 运行日志
在配置文件中启用 debug 模式,使用以下命令查看 Agent 的运行状态和日志:
1
| systemctl status nezha-agent-*
|
如果出现多个运行结果,说明你运行了多次agent
/opt/nezha/agent/
下面有多少个config*.json就对应了相应的配置个数
卸载 Agent
卸载 Agent 包括停止服务、卸载服务,以及删除相关文件。以下是 Ubuntu 系统的卸载步骤:
-
停止并卸载服务:
1
| /opt/nezha/agent/nezha-agent service uninstall
|
-
删除 Agent 文件夹:
1
| rm -rf /opt/nezha/agent/
|
如果安装了多个服务并想要全部卸载,可以使用 Agent 安装脚本的卸载功能:
数据迁移、备份恢复
新、旧服务器要使用相同的域名以及端口,保证无缝过渡
- 停止面板服务
在旧服务器中运行一键脚本,选择 停止面板
。
- 备份数据
打包旧服务器中的 /opt/nezha
文件夹,并将其复制到新服务器相同位置。
- 恢复数据
在新服务器中解压 /opt/nezha
文件夹至相同路径。
- 启动面板服务
在新服务器中运行一键脚本,选择 启动面板
。
注意事项
- 确保
/opt/nezha
文件夹及其内容的权限和所有权在新服务器上正确设置。
- 数据迁移完成后,可以通过访问 Dashboard 界面验证迁移是否成功。