开始之前

哪吒监控是一个开源、轻量的服务器和网站监控、运维工具
支持

  • 对CPU、内存、存储、网络带宽、网络流量等一系列服务器指标的监控
  • 对第三方IP、Web服务进行ICMP、TCP、SSL证书状态进行持续监控
  • 支持WebSSH、定时任务、批量命令下发等运维功能
  • ···

GitHub地址:https://github.com/naiba/nezha

哪吒监控

安装哪吒面板

要安装哪吒监控,你必须拥有:

  • 一台能够访问GitHub与Docker的服务器
  • 一个接入Cloudflare的域名与SSL证书
  • 一个Github账号,用于哪吒监控面板的用户鉴权

注意:

  1. 本教程适用于Ubuntu/Debian,但哪吒也支持其他发行版,
    不过您需要自行安装curlnano
  2. 本教程假设您已经在服务器上安装有Nginx服务
    如果还没有安装,可以先尝试自行安装宝塔或Nginx Proxy Manager
    本教程提供上述两种Nginx服务的配置过程,但无安装过程

准备工作

在Cloudflare中添加DNS记录

在本例中,我们将使用probe.akkia.dev作为哪吒监控的域名。
源站服务器IP为1.1.1.1

登录Cloudflare控制面板并进入DNS设置页面

Cloudflare Dashboard

进入DNS设置页面后,点击Add record按钮,填写以下信息:

  • Type: A(对应IPV4地址),AAAA(对应IPV6地址),在本例中为A
  • Name: 子域,在本例中为probe,也可完整填写为probe.akkia.dev
  • Proxy status: 启用状态(显示橙色云朵图标)

填写完成后,点击Save按钮,保存记录。

DNS Setting

在左侧找到Network标签页并进入。
找到gRPCWebSockets并设置为启用(显示为✅)。

Network Setting

至此,您已完成Cloudflare的全部设置。
记录您添加好的域名,在本例中为probe.akkia.dev
接下来我们将创建GitHub OAuth App。

创建GitHub OAuth App

登录GitHub后,访问Developer settings
点击New OAuth App

GitHub OAuth App

如下图所示,填写以下信息:

  • Application name: 任意填写,在本例中为NeZha Monitor
  • Homepage URL: 你的域名,在本例中为https://probe.akkia.dev
  • Authorization callback URL: 你的域名+/oauth/callback,在本例中为https://probe.akkia.dev/oauth/callback

Add OAuth App

填写完成后点击Register application按钮,完成注册。

完成注册后将自动跳转到你的OAuth App信息页面,在该页面中获取并记录Client IDClient Secret
如下图所示,Client ID将直接展示在页面中,而Client Secret需要手动生成。

点击Generate a new client secret按钮,生成Client Secret

Generate a new client secret

注意:Client secret只会展现一次,因此您应该立即记录下来。

至此,我们我们获得了以下信息:

  • Client ID: 5c9a89686ed87ce6c5ce
  • Client Secret: aea8b62cd1b3a9fc8018d958538488d41c4b2ef8

哪吒监控面板端安装

安装哪吒监控面板

登录您的服务器,本章内容均在您的服务器终端完成。

安装脚本依赖的curl与后续编辑配置文件使用的nano

sudo apt update
sudo apt install -y curl nano

运行一键安装脚本

curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh  -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh

输入1并按回车键,开始安装。

NeZha Install

在经过一段时间的依赖安装后,您将需要输入以下信息:

  • OAuth提供商: GitHub
  • Client ID: 5c9a89686ed87ce6c5ce
  • Client Secret: aea8b62cd1b3a9fc8018d958538488d41c4b2ef8
  • GitHub用户名: AkkiaS7
  • 站点标题: NeZha Monitor
  • 站点访问端口: 20001
  • RPC 端口: 20002

按下回车键,等待面板启动。

NeZha Install Info

配置Nginx服务器

在本例中,我们将假设您已经拥有已经安装完成的Nginx服务器并已配置好SSL证书。
如果没有,请自行安装宝塔面板或Nginx Proxy Manager。
下述配置任选其一完成,不可同时安装。

宝塔面板反向代理配置

在宝塔面板中为域名添加反向代理,任意填写代理名称与目标并保存。
然后点击配置文件按钮,删除所有内容并粘贴下述配置。
注意将端口修改为您在安装哪吒面板时配置的相应端口。
在本例中,20001对应面板访问端口,20002对应RPC端口。

#PROXY-START/
underscores_in_headers on;
location / {
    proxy_pass http://127.0.0.1:20001;
    proxy_set_header Host $http_host;
    proxy_set_header      Upgrade $http_upgrade;
    grpc_read_timeout 300s;
    grpc_send_timeout 300s;
    grpc_pass grpc://localhost:20002;
}
location ~ ^/(ws|terminal/.+)$  {
    proxy_pass http://127.0.0.1:20001;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Host $http_host;
}
#PROXY-END/

Nginx Conf

Nginx Proxy Manager配置

添加反向代理,填写相应主机与端口信息。

Nginx Proxy Manager

注意SSL标签页中需要开启HTTP2支持

Nginx Proxy Manager

Advanced页面中,填入以下配置:
注意将端口与主机名修改为您在安装哪吒面板时配置的相应端口。

#PROXY-START/
underscores_in_headers on;
location / {
    proxy_pass http://127.0.0.1:20001;
    proxy_set_header Host $http_host;
    proxy_set_header      Upgrade $http_upgrade;
    grpc_read_timeout 300s;
    grpc_send_timeout 300s;
    grpc_pass grpc://localhost:20002;
}
location ~ ^/(ws|terminal/.+)$  {
    proxy_pass http://127.0.0.1:20001;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Host $http_host;
}
#PROXY-END/

Nginx Proxy Manager

至此 哪吒监控面板安装完成。
尝试访问您的域名,应该可以看见面板正常工作。

配置哪吒面板

在浏览器中打开您的哪吒面板,并使用GitHub账号登录。
登入后进入设置页面,找到未接入CDN的面板服务器域名/IP设置项
填入您的域名,按下保存按钮。

NeZha Setting

接下来回到服务器终端,运行以下命令打开文本编辑器对配置文件进行编辑

nano /opt/nezha/dashboard/data/config.yaml

修改下述配置:

proxygrpcport: 443
tls: true

修改完成后,运行nezha.sh并选择5,重启面板。

至此,哪吒面板已完成安装并配置。

安装监控端

在面板端添加服务器

登录哪吒面板网页-管理后台-主机
点击添加服务器按钮,填写相应信息后点击添加

NeZha Add Server

添加完成后,在页面中复制一键安装命令并在您想要监控的服务器终端中执行

one-key install

执行完成后,您将能在哪吒面板中看到该服务器的相关指标信息。

NeZha Monitor

完成之后

恭喜🎉,您已成功完成所有配置。
更多内容可以关注哪吒监控的官方文档