Nezha 监控迁移v0迁移v1
背景
Nezha监控是我监控vps的工具,比传统的Prometheus+grafana
简单很多。由于v0已不再维护,并且v0和v1不兼容,这里记录下我的迁移修改过程。
我这里记录主要由于我的Dashboard 和 gRPC 端口共用443,并且使用相同的cf cdn域名。给需要这种配置的人做参考。如果没有这个需求,可以直接参考官方的简单配置。
部署架构
Nezha监控分为dashboard和gRPC data两部分。Dashboard负责信息展示、data是后台的数据引擎。从 V1 版本开始,不再区分 Dashboard 和 gRPC 端口,我计划Dashboard 和 gRPC 端口共用443方便管理,并且都接入cf的cdn保障安全。
迁移步骤
迁移历史监控
如果v0版本有重要监控需要提前迁移,避免监控丢失
搭建Dashboard
我未使用一键脚本搭建,为了方便管理,我直接使用docker compose
搭建。
Dashboard数据存储在./data
下
我未使用8008默认端口而使用了9080端口
services:dashboard:image: ghcr.io/nezhahq/nezharestart: alwayscontainer_name: nezhavolumes:- ./data:/dashboard/dataports:- 9080:8008
修改nginx
ng需要转发 Dashboard的根目录、websocket、数据的GRpc。set_real_ip_from
和real_ip_header
一定要,否者GRpc通信会报错,具体未深入了解。
本配置和我实际使用有差异,依据实际情况改造,仅供参考。
server {access_log /var/log/nginx/eu.org.access.log main;listen 443 ssl proxy_protocol;listen [::]:443 ssl proxy_protocol;http2 on;port_in_redirect off;ssl_certificate /etc/data/certificate/xxx.eu.org.pem;ssl_certificate_key /etc/data/certificate/xxx.eu.org.key;# 下面三个配置不可缺 否者GRpc服务报错underscores_in_headers on;set_real_ip_from 0.0.0.0/0;real_ip_header CF-Connecting-IP;location / {proxy_pass http://127.0.0.1:9080;proxy_set_header Host $http_host;proxy_set_header Upgrade $http_upgrade;}location ~* ^/api/v1/ws/(server|terminal|file)(.*)$ {proxy_pass http://127.0.0.1:9080;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";proxy_set_header Host $http_host;}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://grpcservers;}}upstream grpcservers {server 127.0.0.1:9080;keepalive 512;
}
调试Dashboard
上述如果没问题,就可以正常访问Dashboard。按照教程即可。
v1版本取消了oauth2
,配置根本简单,但建议用户名和密码都修改为高强度,避免爆破。
调试Agent接入
由于我使用了Grpc是使用了cf的cdn接入。这里需要特别说明一下。
-
Agent的接入地址必须带上端口
-
勾选使用TLS
如果需要debug,可以把通过修改/opt/nezha/agent/config.yml
开启debug模式,并通过 journalctl -xe
就行排错。
迁移效果
嘎嘎的香,每天上班第一件事就是看Nezha面板,哈哈哈哈