让你直观监管服务器状态-哪吒面板

最近在使用云服务器的时候发现服务器太多了有点不太好管理,不好直观的看见服务器资源占用情况。于是找到了一款面板用来监管和控制每台服务器。接下来介绍(ne-zha)哪吒面板的搭建和使用。

安装Docker🐳

效果预览

在这里插入图片描述

项目地址&效果传送门

项目地址:https://github.com/naiba/nezha

效果预览:https://status.poiblog.com

服务面板端搭建方法

获取 Github/Jihulab 的 Client ID 和密钥

哪吒监控接入 Github、Gitlab、Jihulab、Gitee 作为后台管理员账号

  • 首先我们需要新建一个验证应用,以 Github 为例,登录 Github 后,打开 https://github.com/settings/developers ,依次选择“OAuth Apps” - “New OAuth App”
    Application name - 随意填写
    Homepage URL - 填写面板的访问域名,如:“http://cdn.example.com
    Authorization callback URL - 填写回调地址,如:“http://cdn.example.com/oauth2/callback
  • 点击 “Register application”
  • 保存页面中的 Client ID,然后点击 “Generate a new client secret“,创建一个新的 Client Secret,新建的密钥仅会显示一次,请妥善保存
  • JihuLab 的应用创建入口为:https://jihulab.com/-/profile/applications
  • Redirect URL 中应填入回调地址
  • 在下方 范围中勾选 read_userread_api
  • 创建完成后,保存好应用程序 ID 和密码

在服务器中安装 Dashboard

  • 在面板服务器中,运行安装脚本:

bash

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

如果你的面板服务器位于中国大陆,可以使用镜像:

bash

curl -L https://gitee.com/naibahq/nezha/raw/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo CN=true ./nezha.sh
  • 等待Docker安装完毕后,分别输入以下值:
    OAuth提供商 - Github,Gitlab,Jihulab,Gitee 中选择一个
    Client ID - 之前保存的 Client ID
    Client Secret - 之前保存的密钥
    用户名 - OAuth 提供商中的用户名
    站点标题 - 自定义站点标题
    访问端口 - 公开访问端口,可自定义,默认 8008
    Agent的通信端口 - Agent与Dashboard的通信端口,默认 5555
  • 输入完成后,等待拉取镜像
    安装结束后,如果一切正常,此时你可以访问域名+端口号,如 “http://cdn.example.com:8008” 来查看面板
  • 将来如果需要再次运行脚本,可以运行:

bash

./nezha.sh

来打开管理脚本

配置反向代理

  • 在宝塔面板中新建一个站点,域名填写公开访问域名,如 “http://cdn.example.com“ ,然后点击“设置”进入站点设置选项,选择“反向代理” - “新建反向代理”
  • 自定义一个代理名称,在下方“目标 URL”中填入 http://127.0.0.1 然后点击“保存”
  • 打开刚刚新建的反向代理右边的“配置文件”,将配置文件替换为以下内容:

nginx

#PROXY-START/
location / {
    proxy_pass http://127.0.0.1:8008;
    proxy_set_header Host $http_host;
    proxy_set_header      Upgrade $http_upgrade;
}
location ~ ^/(ws|terminal/.+)$  {
    proxy_pass http://127.0.0.1:8008;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Host $http_host;
}
#PROXY-END/
  • 点击“保存”
    现在,你应该可以直接使用域名,如:“http://cdn.example.com“ 来访问面板了
扩展内容:
  • CaddyServer v1(v2 无需特别配置)
    proxy /ws http://ip:8008 {
        websocket
        header_upstream -Origin
    }
    proxy /terminal/* http://ip:8008 {
        websocket
        header_upstream -Origin
    }
    

FAQ

启用HTTPS后/terminal或/ws不能正常连接怎么办?

常常是由于证书不完整造成的,请在agent运行参数中添加-d,若log中有x509:certificate signed by unknown authority,更换完整证书则可100%解决该问题。

我对面板提供的数据修改/增加功能不满意,我想要自己修改/增加数据怎么办?

常见于批量插入 Agent 等需求中,可以直接修改数据库。
请注意,数据库中并非什么都可以修改,错误的修改会导致数据混乱无法启动 Dashboard,请勿随意修改数据库!

DANGER

再重复一遍,请勿随意修改数据库!

如需要在数据库中修改数据,请先停止面板容器再修改。
数据库类型是 sqlite3,位于 /opt/nezha/dashboard/data/sqlite.db,修改前请备份

数据库中各表/列是什么意思?

文档不提供数据库解释,有能力修改数据库的稍加分析应该就足以看懂。

Dashboard 会自动更新吗?

Agent通常情况下会自动更新,但Dashboard并不会,需要手动更新。

如何更新 Dashboard?

运行脚本 ./nezha.sh ,选择重启面板并更新

监控端使用方法

一键安装 Agent

目前哪吒监控已支持在 Windows 和 Linux上一键安装 Agent,遵循本文档的步骤,你可以很轻松的在服务器上部署它

准备工作

你需要提前在管理面板中设置好通信域名,此域名不可以接入CDN,这里以前面提到过的示例通信域名 “data.example.com” 来做演示
进入后台管理面板,转到“设置”页,在“未接入 CDN 的面板服务器域名/IP”项中填入通信域名,然后点击"保存"

在 Linux 中一键安装 (Ubuntu、Debian、CentOS)

  • 首先在管理面板中添加一台服务器
  • 点击新添加的服务器旁,绿色的 Linux 图标按钮,复制一键安装命令
  • 在被控端服务器中运行复制的一键安装命令,等待安装完成后返回到 Dashboard 主页查看服务器是否上线

在 Windows 中一键安装

  • 首先在管理面板中添加一台服务器
  • 点击新添加的服务器旁,绿色的 Windows 图标按钮,复制一键安装命令
  • 进入 Windows 服务器,运行 PowerShell,在 PowerShell 中运行复制的安装命令
  • 如遇到确认「执行策略变更」请选择 Y
  • 等待安装完成后返回 Dashboard 主页查看服务器是否上线

其他方式安装 Agent

在 Linux 中安装 Agent (Ubuntu、Debian、CentOS)

  • 首先在管理面板中添加一台服务器
  • 在被控服务器中,运行脚本(位于中国大陆的服务器请使用镜像):

bash

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

如果你的被控服务器位于中国大陆,可以使用镜像:

bash

curl -L https://gitee.com/naibahq/nezha/raw/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo CN=true ./nezha.sh
  • 选择“安装监控 Agent”
  • 输入通信域名,如:”data.example.com“
  • 输入面板通信端口(RPC端口),默认为 5555
  • 输入 Agent 密钥,Agent 密钥在管理面板中添加服务器时生成,可以在管理面板中的“主机”页中找到
  • 等待安装完成后返回 Dashboard 主页查看服务器是否上线

在Windows 客户端安装 Agent

  1. 设置环境变量
    下载软件后,解压到任意位置,然后按 win+R 打开运行窗口,输入 sysdm.cpl 打开系统属性–高级–环境变量–系统变量–Path–在最后把刚才的 nssm 目录加到最后,注意: 和前面变量之间用半角; 分开

  2. 设置 NSSM
    管理员启动 CMD,输入

    nssm install <servername>
    如:nssm install nezha
    

    弹出 UI,设置如下:
    在这里插入图片描述

    启动参数格式为:

    -s {Serverip}:{Port} -p {AgentKey} -d
    

自己对应修改,填写完毕后, 点击 install servce

参数项来源:
在这里插入图片描述

按照图中配置,参数项为

-s 127.0.0.1:5555 -p 52a1c9abbe -d

此处更正:去掉{},确实可能会带给一些网友错误信息。
其中 127.0.0.1是你面板的IP或者域名(无CDN) 5555是面板的端口。

3.** 启动服务**
此时退回到 CMD 界面,nssm start nezha, 然后按 win+R 打开运行窗口,输入 services.msc,查看是否有叫 nezha 的服务,然后查看启动情况,如果失败了,请查看一下配置是否出错
4. 以下列出一些 nssm 命令:

1. 安装服务命令
nssm install <servicename>
nssm install <servicename> <program>
nssm install <servicename> <program> [<arguments>]
2. 删除服务
nssm remove
nssm remove <servicename>
nssm remove <servicename> confirm
3. 启动、停止服务
nssm start <servicename>
nssm stop <servicename>
nssm restart <servicename>
4. 查询服务状态
nssm status <servicename>
5. 服务控制命令
nssm pause <servicename>
nssm continue <servicename>
nssm rotate <servicename>

**由于 GO 不再支持低版本 Windows 系统,哪吒探针在低版本 Windows 上是不能启动的。**如下图:

NSSM下载地址

https://nssm.cc/ci/nssm-2.24-101-g897c7ad.zip

在 群晖DSM 中安装 Agent

  • 先到项目地址下载资源:传送门
  • 下载符合自己群晖 CPU 架构的 Agent 客户端,例如intel 的cpu,选择下载nezha-agent_linux_amd64.zip
  • 解压后,把里面的二进制文件随便放到一个地方
  • 打开群晖远程管理功能,SSH 到群晖,使用 sudo -i 切换到 root 账号
  • 找到刚才放进去的文件,共享文件夹一般在 /volume1 下面。刚才我是放在了 AppData 这个共享文件夹里,那二进制文件就在 /volume1/AppData 下

准备启动

首先要手动执行下二进制文件,确认使用正常。

  1. 在 Dashboard 里创建一个新设备,获取链接密码
  2. 进到 agent 所在文件夹后,通过执行 ./nezha-agent 可以查看使用帮助
  • 基本上指定一下服务器地址和密码即可,命令为
./nezha-agent -s <Dashboard服务器地址>:<端口> -p <连接密码>

执行后,没报错,并且在 Web 上能看到信息就可以

记下自己的执行命令,并把 ./ 替换成绝对路径,比如我的文件放在 /volume1/AppData 下,那我的执行命令就是

/volume1/AppData/nezha-agent -s <Dashboard服务器地址>:<端口> -p <连接密码>

配置服务

直接执行命令虽然能用,但是一关窗口就停止运行了。丢到 screen 里也不行,因为 Agent 会自动更新,更新时会停止进程。DSM 7 内置 systemctl 命令,可以很方便设置为系统服务,保活进程。

  • /usr/lib/systemd/system 下创建一个 nezha-agent.service 文本文件
vim /usr/lib/systemd/system/nezha-agent.service

内容如下

[Unit]
Description=Nezha Agent
After=syslog.target[Service]
Type=simple
User=root
Group=root
ExecStart=<刚才记下的执行命令>
Restart=always[Install]
WantedBy=multi-user.target
  • 加载配置文件
systemctl daemon-reload
  • 启动服务
systemctl enable nezha-agent
systemctl start nezha-agent
  • 查看状态
systemctl status nezha-agent

出现 Active:active(running)即可

在 MacOS 中安装 Agent

  • 首先在管理面板中添加一台服务器
  • 前往 Release 页下载 Agent 二进制文件,根据 CPU 架构选择下载 darwin amd64 还是 arm64 的 Agent
    如 Intel CPU 下载 amd64,Apple Silicon 下载 arm64 版本。下载完成后解压 Agent 二进制文件,如解压到下载文件夹
  • 新建一个名为 nezha_agent.plist 的文件并保存,修改文件内容如下:

xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
 <key>KeepAlive</key>
 <true/>
 <key>Label</key>
 <string>nezha_agent</string>
 <key>Program</key>
 <string>在这里修改 Agent 二进制文件的的路径,如:/Users/123/Downloads/nezha-agent</string>
 <key>ProgramArguments</key>
 <array>
  <string>在这里修改 Agent 二进制文件的的路径,同上</string>
  <string>--password</string>
  <string>通信密钥,如:529664783eeb23cc25</string>
  <string>--server</string>
  <string>通信网址和RPC端口,如:data.example.com:5555</string>
 </array>
 <key>RunAtLoad</key>
 <true/>
</dict>
</plist>
  • 在 Terminal 中使用下面的命令加载 plist 文件到 launchd 里,注意替换文件路径

shell

launchctl load /Users/123/Desktop/nezha_agent.plist
  • 启动进程

shell

launchctl start nezha_agent
  • 检查进程是否运行

shell

launchctl list | grep nezha_agent
  • 停止进程并移除

shell

launchctl stop nezha_agent

shell

launchctl remove nezha_agent

在 OpenWRT 中安装 Agent

  • 首先在 release 下载对应的二进制解压 zip 包后放置到 /root
  • 运行 chmod +x /root/nezha-agent 赋予执行权限,然后创建 /etc/init.d/nezha-service

shell

#!/bin/sh /etc/rc.common

START=99
USE_PROCD=1

start_service() {
 procd_open_instance
 procd_set_param command /root/nezha-agent -s 面板通信地址:端口 -p 秘钥 -d
 procd_set_param respawn
 procd_close_instance
}

stop_service() {
    killall nezha-agent
}

restart() {
 stop
 sleep 2
 start
}
  • 运行 chmod +x /etc/init.d/nezha-service 赋予执行权限
  • 启动服务: /etc/init.d/nezha-service enable && /etc/init.d/nezha-service start

反向代理

参考教程:安装及使用

⚠️Nginx Proxy Manager(以下简称NPM)会用到80、443端口,所以本机不能占用(比如原来就有Nginx)

互联网使用请确保完成了域名解析

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值