哪吒面板搭建过程详解,教你搭建一款便携服务器监控探针

Snipaste_2021-02-01_12-25-23

今天给大家安利一个最近比较火的服务器状态监控面板,哪吒面板。作者并没有提供详细的安装流程,所以我呢就在这里记录下整个安装的过程,也可以给大家做个参考。

项目简介

被动接收,系统状态监控报警、API(SSL证书变更、即将到期、到期)/TCP端口存活/PING 监控、计划任务(可以定时在Agent上执行命令,备份、重启、What ever you want)、极省资源,64M 服务器也能装 agent。目前默认提供三套主题,尤其最新的@JackieSung DayNight十分漂亮,自动切换白天黑夜模式,赞。

项目地址

 

 

演示地址

https://tz.love2wind.com

一、安装前的准备工作

  • 宝塔面板(可选,装宝塔主要是为了防呆)
  • Nginx 1.19(作者说最低需要1.19,实际测试1.18安装也完全没有问题)
  • 两个域名(一个也可以,但是推荐用两个)

1、域名解析

将两个域名都解析到要按照哪吒面板的服务器IP上

  • 一个用来访问安装好的哪吒面板,这里称访问域名,比如我的tz.love2wind.com,建议套CDN
  • 一个用来连接客户端Agent和服务端,这里称IP域名,比如ip.love2wind.com,千万不能套CDN

这里要重点说一下,第二个域名可以没有,直接填服务器IP也是可以的,但是不推荐大家这样做,如果迁移面板的时候会非常麻烦,你要在每个Agent上修改配置,我当时就吃了这个亏了,这都是血的教训啊。

2、宝塔设置防呆

这一步可以不用做,用宝塔面板主要是为了防呆,便于域名直接访问。

这里就是普通的宝塔操作,只要新建网站,填入你前面解析的访问哪吒面板的域名就好,当然,最好还是申请ssl为佳,这里重点说下设置防呆。

这里贴一下Nginx的防呆配置文件代码

  1. #PROXY-START/
  2. location /
  3. {
  4. proxy_pass http://127.0.0.1:8008;
  5. proxy_set_header Host $host;
  6. }
  7. location /ws
  8. {
  9. proxy_pass http://你的服务器IP:8008;
  10. proxy_http_version 1.1;
  11. proxy_set_header Upgrade $http_upgrade;
  12. proxy_set_header Connection "Upgrade";
  13. proxy_set_header Host $host;
  14. }

3、配置Github

获取Github账号ID

  1. 登录你的github账号
  2. 在浏览器中打开https://api.github.com/users/你的GitHub用户名
  3. 在返回的Json中的查看id对应的纯数字值就是你的ID

配置GitHub Oauth2应用

1、打开https://github.com/settings/developers

2、点击New OAuth App按钮创建应用,第一次创建需要激活下(点那个绿色Register a new application按钮即可)

3、填写相关信息并创建应用。

主页名:随便填 

主页地址:http(s)://你的服务器IP:8008/,如果你反代了就填http(s)://访问面板域名/

访问回调地址:这里填http(s)://你的服务器IP:8008/oauth2/callback,如果你反代了就填http(s)://访问面板域名/

4、在返回的页面中复制保存Client IDClient secrets,注意这里的Client secrets只显示一次,一定妥善保存,如果忘记的就要重新创建。

二、部署哪吒面板

1、安装面板

安装非常简单,打开SSH终端,输入作者提供的一键安装脚本,选1安装,随后填入前面准备工作中保存的数据后回车,等待面板更新后重启,就可以在浏览器中打开访问面板域名访问了。

  • 海外:
  1. curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh
  2. ./nezha.sh
  • 国内加速:(有缓存可能不是最新的,非作者维护)
  1. curl -L https://raw.staticdn.net/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh
  2. ./nezha.sh

这里需要注意一定要在宝塔面板和服务器管理处放行8008和5555端口。

2、登录及设置面板

登录是调用github账号,国内主机可能会出现如下错误。

  1. 错误信息:Post "https://github.com/login/oauth/access_token": dial tcp: lookup github.com on 127.0.0.11:53: read udp 127.0.0.1:40397->127.0.0.11:53: i/o timeout

这是服务器请求GitHub有问题,尝试修改一下DNS服务器 /etc/resolv.conf 或者多登录几次,面板最好还是放到海外服务器,因为如果你后边要添加TG通知的话,国内主机也是不行的。

之后安装监控Agent。

3、添加服务器及Agent

登录面板 - 后台管理 - Agent - 添加服务器 - 输入名称 - 添加

分组、排序、备注根据自己需要填写就行,不填也不影响使用。

添加完服务器后,在服务器列表中可以看到每个服务器都会有一个ID密钥,这两个我们后面在配置Agent的时候会用到。

然后就在SSH终端中运行命令./nezha.sh,选择8安装Agent,填入相关数据,服务器就安装完成了,到这里,安装Agent的过程就完了,因为和客户端的安装配置一样,所以大家可以看下吗客户端安装配置的图例操作。

4、客户端的安装及配置

在客户端SSH中执行一键安装脚本,按照上面图例说明执行,很简单就安装成功了。

多个客户端只要重复上面的步骤即可。下面罗列下客户端的安装步骤:

  • 面板后台添加服务器,获取服务器ID和密钥;
  • 客户端执行一键脚本;
  • 安装Agent;
  • 完成。

到这里,哪吒面板的搭建安装就基本完成了。打开面板地址,看看成果吧。

三、主题演示

默认主题 DayNight hotaru
首页截图1 img img

四、常见问题

Q:如何进行数据迁移、备份恢复?
数据储存在 /opt/nezha 文件夹中,迁移数据时打包这个文件夹,到新环境解压。然后执行一键脚本安装即可

Q:如何使 OpenWrt/LEDE 自启动?
首先在 release 下载对应的二进制解压后放置到 /root/nezha-agent,然后 chmod +x /root/nezha-agent 赋予执行权限,然后创建 /etc/init.d/nezha-agent

  1. #!/bin/sh /etc/rc.common
  2. START=99
  3. USE_PROCD=1
  4. start_service() {
  5. procd_open_instance
  6. procd_set_param command /root/nezha-agent -i xxx -p 111 -d
  7. procd_set_param respawn
  8. procd_close_instance
  9. }
  10. stop_service() {
  11. killall nezha-agent
  12. }
  13. restart() {
  14. stop
  15. sleep 2
  16. start
  17. }

赋予执行权限 chmod +x /etc/init.d/nezha-agnt 然后启动服务 /etc/init.d/nezha-agent enable && /etc/init.d/nezha-agent start

Q:首页服务器随机闪烁掉线?
执行 ntpdate 0.pool.ntp.org 同步一下面板部署所在的服务器的时间

Q:提示实时通道断开?
启用 HTTPS
使用宝塔反代或者上CDN,建议 Agent配置 跟 访问管理面板 使用不同的域名,这样管理面板使用的域名可以直接套CDN,Agent配置的域名是解析管理面板IP使用的,也方便后面管理面板迁移(如果你使用IP,后面IP更换了,需要修改每个agent,就麻烦了)

实时通道断开(WebSocket反代)
使用反向代理时需要针对 /ws 路径的 WebSocket 进行特别配置以支持实时更新服务器状态。

Nginx(宝塔):在你的 nginx 配置文件中加入以下代码

  1. server{
  2. #server_name blablabla...
  3. location /ws {
  4. proxy_pass http://ip:站点访问端口;
  5. proxy_http_version 1.1;
  6. proxy_set_header Upgrade $http_upgrade;
  7. proxy_set_header Connection "Upgrade";
  8. proxy_set_header Host $host;
  9. }
  10. #其他的 location blablabla...
  11. }

CaddyServer v1(v2无需特别配置)

  1. proxy /ws http://ip:8008 {
  2. websocket
  3. }

Q:国内服务器出现curl: (7) Failed to connect to raw.githubusercontent.com

  1. echo 199.232.68.133 raw.githubusercontent.com >> /etc/hosts

Q:修改服务器备注后变成"离线"久不恢复

在安装客户端(被监控)的服务器上执行systemctl restart nezha-agent重启程序

启动nezha-agent还是一直显示离线

检查配置有没有写对cat /etc/systemd/system/nezha-agent.service | grep ExecStart

五、其他

上面只是做了最简单的安装和配置,哪吒面板还有更多特色功能,大家可以自行研究,作者也在孜孜不倦的更新着,我相信哪吒面板还有更多的可能。

阅读剩余
THE END