前言

哪吒监控(Nezha)是一款开源、轻量级的服务器监控面板,支持多服务器监控、告警通知、流量统计等功能。最近哪吒更新到 v1 版本,全新的 UI 设计让整个监控界面更加现代化和美观,忍不住想折腾一番。

经过一番摸索和大佬们的指点,成功部署了完整的监控系统。这篇文章记录了从域名配置到探针接入的完整流程,希望能帮助到想要自建监控系统的朋友。

哪吒探针能做什么?

  • 📊 实时监控:CPU、内存、硬盘、网络等核心指标
  • 🌍 多服务器管理:统一面板管理所有服务器节点
  • 🔔 告警通知:支持多种通知方式(Telegram、邮件等)
  • 📈 流量统计:监控服务器进出流量
  • 🎨 美观界面:v1 版本全新主题,数据展示更直观

架构说明

本教程采用的部署架构:

用户浏览器 → Cloudflare CDN → Caddy 反向代理 → 哪吒面板
                                                    ↓
                                            各服务器 Agent
  • Cloudflare:提供 CDN 加速和 SSL 证书管理
  • Caddy:作为反向代理,处理 HTTPS 和 gRPC 通信
  • 哪吒面板:核心监控服务,本地运行在 8008 端口
  • Agent:部署在各个被监控服务器上的探针程序

准备工作

开始之前,请确保你已经准备好:

必需条件

  1. 一台 VPS 服务器

    • 具有独立的 IPv4 或 IPv6 地址
    • 建议配置:1 核 1G 内存以上
    • 系统:Debian/Ubuntu(本文基于 Debian 12)
  2. Cloudflare 账号和域名

    • 域名需要托管在 Cloudflare(本文示例使用 example.com
    • 域名已完成 NS 解析到 Cloudflare
  3. 基础知识

    • 熟悉 Linux 基本命令
    • 了解 SSH 远程连接

第一步:配置 Cloudflare

1.1 添加 DNS 解析

登录 Cloudflare 控制台,进入你的域名管理页面。

  1. 点击左侧菜单 DNS记录
  2. 点击 添加记录 按钮
  3. 配置如下:

    • 类型:A(IPv4)或 AAAA(IPv6)
    • 名称nezha(完整域名将是 nezha.example.com
    • IPv4/IPv6 地址:你的 VPS 服务器 IP
    • 代理状态:🟠 已代理(开启小云朵)
    • TTL:自动

DNS 解析配置

1.2 开启 WebSockets 和 gRPC

哪吒探针使用 gRPC 协议进行通信,需要在 Cloudflare 中开启相应支持。

  1. 进入 网络 选项卡
  2. 找到 WebSockets,将其设置为 开启
  3. 找到 gRPC,将其设置为 开启

开启 WebSockets
开启 gRPC

1.3 创建源服务器证书

为了实现 Cloudflare 到源服务器的加密连接,需要创建源证书。

  1. 进入 SSL/TLS源服务器
  2. 点击 创建证书 按钮
  3. 配置选项:

    • 私钥类型:RSA(2048)
    • 主机名nezha.example.com*.example.com
    • 证书有效期:15 年(推荐)
  4. 点击 创建

创建源服务器证书

重要:创建完成后会显示两个内容:

  • 源证书(Origin Certificate):复制保存,稍后会用到
  • 私钥(Private Key):复制保存,离开页面后无法再次查看

第二步:安装 Caddy 反向代理

Caddy 是一个现代化的 Web 服务器,配置简单且自动管理 HTTPS。我们用它来做反向代理。

2.1 安装 Caddy

SSH 连接到你的 VPS,依次执行以下命令:

# 安装必要的依赖
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl

# 添加 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

安装完成后,Caddy 会自动启动。可以通过以下命令检查状态:

sudo systemctl status caddy

2.2 保存 SSL 证书

将之前从 Cloudflare 复制的证书和私钥保存到服务器。

保存源证书(公钥):

sudo nano /etc/caddy/example.pem

粘贴 Cloudflare 的 源证书 内容,按 Ctrl+X,输入 Y,回车保存。

保存私钥

sudo nano /etc/caddy/example.key

粘贴 Cloudflare 的 私钥 内容,按 Ctrl+X,输入 Y,回车保存。

2.3 配置 Caddyfile

编辑 Caddy 的配置文件:

sudo nano /etc/caddy/Caddyfile

清空原有内容,粘贴以下配置(记得替换域名):

nezha.example.com {
    # gRPC 反向代理(Agent 连接使用)
    reverse_proxy /proto.NezhaService/* h2c://127.0.0.1:8008
    
    # 使用 Cloudflare 源证书
    tls /etc/caddy/example.pem /etc/caddy/example.key
    
    # Web 界面反向代理
    reverse_proxy /* 127.0.0.1:8008
}

配置说明

  • reverse_proxy /proto.NezhaService/*:将 gRPC 流量转发到哪吒面板
  • h2c:HTTP/2 Cleartext,用于本地 gRPC 通信
  • 127.0.0.1:8008:哪吒面板默认监听端口
  • tls ...:指定 SSL 证书路径

保存后重启 Caddy:

sudo systemctl restart caddy

检查 Caddy 是否正常运行:

sudo systemctl status caddy

第三步:安装哪吒监控面板

3.1 下载并运行安装脚本

执行官方安装脚本:

curl -L https://raw.githubusercontent.com/nezhahq/scripts/refs/heads/main/install.sh -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh

3.2 安装配置

脚本运行后会出现交互式菜单:

  1. 选择安装类型:选择 1 - 安装监控面板
  2. 输入面板端口:保持默认 8008不要修改
  3. 是否使用 SSL:选择 y
  4. 其他配置:根据提示完成其他配置项

安装完成后,面板会自动启动。

3.3 首次登录和安全设置

  1. 在浏览器中访问:https://nezha.example.com/dashboard
  2. 默认账号密码

    • 用户名:admin
    • 密码:admin
  3. ⚠️ 立即修改密码(非常重要):

    • 登录后点击右上角头像
    • 选择 个人信息
    • 点击 更新个人资料
    • 修改密码并保存

修改默认密码

3.4 配置面板域名

  1. 点击右上角头像,选择 系统设置
  2. 仪表板服务器域名 中填写:nezha.example.com
  3. 保存设置

这一步很重要,Agent 需要通过这个域名连接到面板。

第四步:安装 Agent 探针

现在面板已经部署完成,接下来要在需要监控的服务器上安装 Agent。

4.1 生成安装命令

  1. 在哪吒面板中,点击 服务器添加服务器
  2. 填写服务器信息:

    • 名称:给服务器起个名字(如 Oracle-Tokyo
    • 分组:可选,用于分类管理
    • 排序:可选
  3. 点击 添加
  4. 添加后会生成安装命令,类似:
curl -L https://raw.githubusercontent.com/nezhahq/scripts/refs/heads/main/install.sh -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh

生成安装命令

4.2 在被监控服务器上执行

  1. SSH 连接到要监控的服务器
  2. 粘贴修改后的安装命令并执行
  3. 等待安装完成

4.4 验证连接

回到哪吒面板的 服务器 页面,如果看到服务器状态变为 在线,并且有数据更新,说明 Agent 已成功连接。

Agent 连接成功

你可以修改服务器的显示名称,让监控界面更清晰易懂。

故障排除

问题 1:无法访问面板

检查步骤

# 检查 Caddy 状态
sudo systemctl status caddy

# 检查哪吒面板状态
sudo systemctl status nezha-dashboard

# 查看 Caddy 日志
sudo journalctl -u caddy -f

# 查看防火墙设置
sudo ufw status

解决方案

  • 确保服务器防火墙开放了 80 和 443 端口
  • 检查 Cloudflare 是否已开启代理(小云朵)
  • 验证 DNS 解析是否生效

问题 2:Agent 无法连接

检查步骤

# 在 Agent 服务器上查看日志
sudo journalctl -u nezha-agent -f

常见原因

  • NZ_SERVER 地址错误或端口错误
  • NZ_CLIENT_SECRET 密钥不匹配
  • gRPC 未在 Cloudflare 中启用
  • Agent 服务器防火墙阻止出站 443 端口

问题 3:SSL 证书错误

解决方案

  • 确认 Cloudflare 源证书和私钥正确保存
  • 检查证书文件权限:sudo chmod 644 /etc/caddy/example.pem
  • 检查私钥文件权限:sudo chmod 600 /etc/caddy/example.key

进阶配置

配置告警通知

  1. 在面板中进入 通知添加通知方式
  2. 支持 Telegram、企业微信、钉钉、邮件等多种方式
  3. 告警规则 中设置触发条件

使用自定义主题

哪吒 v1 支持多种主题,可以在 系统设置外观 中选择你喜欢的主题风格。

配置服务监控

除了服务器监控,还可以添加服务监控(如网站可用性、端口监听等):

  1. 进入 服务添加监控
  2. 配置监控类型和检查间隔
  3. 设置对应的告警规则

总结

至此,你已经完成了哪吒监控面板的完整部署:

✅ Cloudflare CDN 加速和 SSL 配置
✅ Caddy 反向代理设置
✅ 哪吒监控面板安装
✅ Agent 探针接入

现在你可以在一个美观的界面中查看所有服务器的运行状态了。哪吒探针不仅颜值高,功能也很实用,是管理多台服务器的好帮手。

如果你在部署过程中遇到问题,欢迎留言讨论。

参考资源

最后修改:2025 年 12 月 12 日
如果觉得我的文章对你有用,请随意赞赏