























哪吒监控 (Nezha Monitoring) 是一款简洁美观的服务器监控面板,相比 Komari ,它的加载速度更快,默认主题也更好看。
与其他服务器监控应用类似,哪吒监控分为主控端 (Dashboard) 和被控端 (Agent)。部署的重点主要在于主控端,而 Agent 端的配置则相对简单。

官方文档里有这样的一段说明:
如果你想使用 CDN,请准备两个域名:
- 一个配置好 CDN,用作公开访问,CDN 需支持 WebSocket 协议;
- 另一个域名不使用 CDN,用作 Agent 与 Dashboard 的通信。 尽管 V1 版本不再区分访问端口和通信端口,但由于不同厂商的 CDN 配置可能导致通信异常,仅建议按上述方式准备域名(非强制要求)。
本文提供的方案只需使用一个域名,Agent 与 Dashboard 之间将直接通过 Tailnet 虚拟内网进行通信。关于组网的具体步骤,请参阅 Headscale + Tailscale 组建虚拟专用网 。
创建主控程序运行目录:
sudo mkdir -p /opt/nezha/dashboard/data
下载默认配置模板:
sudo wget -O /opt/nezha/dashboard/data/config.yaml https://raw.githubusercontent.com/nezhahq/scripts/main/extras/config.yaml
编辑配置文件:
sudo vim /opt/nezha/dashboard/data/config.yaml
修改必要的配置项:
debug: false
# 填写主控机器的 Tailnet IP
# 监听主机名
listen_host: 100.64.0.3
# 监听端口
listen_port: 8080
# 安装主机名(影响后台一键安装命令里面的 IP)
install_host: 100.64.0.3
# 默认显示语言,例如 zh_CN 或 en_US
language: zh_CN
# 站点名称
site_name: "My Server Status"
# Tailnet 通信无需 TLS/SSL
tls: false
# 启用 TSDB 支持,保存保存更长时间的监控历史
tsdb:
data_path: data/tsdb
min_free_disk_space_gb: 10
# 保留 30 天历史数据
retention_days: 30
mkdir -p /tmp/nezha_temp
# AMD64/Linux
wget -qO /tmp/nezha_temp/dashboard.zip https://github.com/nezhahq/nezha/releases/latest/download/dashboard-linux-amd64.zip
unzip -qq -o /tmp/nezha_temp/dashboard.zip -d /tmp/nezha_temp
sudo mv -f /tmp/nezha_temp/dashboard-linux-amd64 /opt/nezha/dashboard/app
sudo chmod +x /opt/nezha/dashboard/app
rm -rf /tmp/nezha_temp
为确保安全,创建独立用户并分配相应权限:
sudo useradd -r -s /usr/sbin/nologin nezha
sudo chown -R nezha:nezha /opt/nezha
sudo chmod -R 755 /opt/nezha
cat <<EOF | sudo tee /etc/systemd/system/nezha-dashboard.service
[Unit]
Description=Nezha Dashboard
After=syslog.target
After=network.target network-online.target tailscaled.service
Wants=network-online.target tailscaled.service
[Service]
LimitMEMLOCK=infinity
LimitNOFILE=65535
Type=simple
User=nezha
Group=nezha
WorkingDirectory=/opt/nezha/dashboard/
ExecStart=/opt/nezha/dashboard/app
Restart=always
#Environment=DEBUG=true
ProtectSystem=full
PrivateDevices=yes
PrivateTmp=yes
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
EOF
启动哪吒面板主控服务,并设置开机自启:
sudo systemctl daemon-reload \
&& sudo systemctl enable --now nezha-dashboard \
&& sudo systemctl status nezha-dashboard
将域名解析到服务器的 IPv4/IPv6 地址,并开启 CDN 代理。以下是 Nginx 反向代理的配置示例:
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream nezha_dashboard {
# 修改为 Tailnet 监听的 IP 和端口
server 100.64.0.3:8080;
keepalive 512;
}
server {
listen 80;
listen [::]:80;
server_name nezha.your.domain;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
server_name nezha.your.domain;
ssl_certificate /etc/nginx/cert/nezha.your.domain.pem;
ssl_certificate_key /etc/nginx/cert/nezha.your.domain.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ecdh_curve X25519:P-256:P-384;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:ECDHE+AES128:RSA+AES128:ECDHE+AES256:RSA+AES256';
ssl_prefer_server_ciphers off;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
access_log /var/log/nginx/nezha.your.domain.access.log;
error_log /var/log/nginx/nezha.your.domain.error.log;
client_max_body_size 100M;
underscores_in_headers on;
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://nezha_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 $connection_upgrade;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_pass http://nezha_dashboard;
}
location / {
proxy_set_header Host $host;
proxy_set_header nz-realip $http_cf_connecting_ip;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
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://nezha_dashboard;
}
}
重载 Nginx 配置使其生效:
sudo nginx -t && sudo nginx -s reload
下载 Agent 可执行二进制文件:
sudo mkdir -p /opt/nezha/agent
# AMD64/Linux
wget -qO /tmp/nezha-agent.zip https://github.com/nezhahq/agent/releases/latest/download/nezha-agent_linux_amd64.zip
sudo unzip -qo /tmp/nezha-agent.zip -d /opt/nezha/agent/
rm -f /tmp/nezha-agent.zip
哪吒的 Agent 注册密钥是固定的,在面板后台生成后可以长期使用。此外,Agent 程序内置了服务管理功能,携带环境变量执行 service install 命令时,它会自动识别当前系统的守护进程服务(Systemd 或 OpenRC),生成对应的守护进程文件,并将环境变量持久化到 /opt/nezha/agent/config.yml 中。
sudo env NZ_SERVER=100.64.0.3:8080 \
NZ_TLS=false \
NZ_CLIENT_SECRET=<替换 Agent 注册密钥> \
NZ_DISABLE_COMMAND_EXECUTE=true \
NZ_DISABLE_AUTO_UPDATE=true \
NZ_DISABLE_FORCE_UPDATE=true \
/opt/nezha/agent/nezha-agent service -c /opt/nezha/agent/config.yml install
常用管理命令:
# Debian/Fedora 等使用 Systemd 的发行版
# 停止/启动/重启服务
sudo systemctl stop nezha-agent
sudo systemctl start nezha-agent
sudo systemctl restart nezha-agent
# Alpine 等使用 OpenRC 的发行版
# 停止/启动/重启服务
sudo rc-service nezha-agent stop
sudo rc-service nezha-agent start
sudo rc-service nezha-agent restart
完成,享受赏针: https://vps.gift
# 停止哪吒主控服务
sudo systemctl stop nezha-dashboard
# 下载最新版并替换
mkdir -p /tmp/nezha_temp
wget -qO /tmp/nezha_temp/dashboard.zip https://github.com/nezhahq/nezha/releases/latest/download/dashboard-linux-amd64.zip
unzip -qq -o /tmp/nezha_temp/dashboard.zip -d /tmp/nezha_temp
sudo mv -f /tmp/nezha_temp/dashboard-linux-amd64 /opt/nezha/dashboard/app
sudo chown nezha:nezha /opt/nezha/dashboard/app
sudo chmod +x /opt/nezha/dashboard/app
rm -rf /tmp/nezha_temp
# 启动服务
sudo systemctl start nezha-dashboard
sudo systemctl status nezha-dashboard
# 停止哪吒 Agent 服务
sudo systemctl stop nezha-agent
# 下载最新版并替换
wget -qO /tmp/nezha-agent.zip https://github.com/nezhahq/agent/releases/latest/download/nezha-agent_linux_amd64.zip
sudo unzip -qo /tmp/nezha-agent.zip -d /opt/nezha/agent/
rm -f /tmp/nezha-agent.zip
sudo chmod +x /opt/nezha/agent/nezha-agent
# 启动服务
sudo systemctl start nezha-agent
sudo systemctl status nezha-agent
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。