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

love2wind

 2021-02-01  /   📝技巧教程  /   2356 人浏览  /   2 条评论  /   全文共1714字

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的防呆配置文件代码

#PROXY-START/
location /
{
    proxy_pass http://127.0.0.1:8008;
    proxy_set_header Host $host;
}
location /ws
{
    proxy_pass http://你的服务器IP:8008;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Host $host;
}

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安装,随后填入前面准备工作中保存的数据后回车,等待面板更新后重启,就可以在浏览器中打开访问面板域名访问了。

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

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

2、登录及设置面板

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

错误信息: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;
  • 完成。

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

三、主题演示

默认主题DayNighthotaru
首页截图1imgimg

四、常见问题

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

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

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

START=99
USE_PROCD=1

start_service() {
    procd_open_instance
    procd_set_param command /root/nezha-agent -i xxx -p 111 -d
    procd_set_param respawn
    procd_close_instance
}

stop_service() {
    killall nezha-agent
}

restart() {
    stop
    sleep 2
    start
}

赋予执行权限 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 配置文件中加入以下代码

server{

    #server_name blablabla...
    
    location /ws {
        proxy_pass http://ip:站点访问端口;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
    }
    
    #其他的 location blablabla...
}

CaddyServer v1(v2无需特别配置)

proxy /ws http://ip:8008 {
    websocket
}

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

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

五、其他

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

自定义代码:去版权、改LOGO、改色调、加统计代码等。
计划任务:备份脚本、服务重启,等定期运维任务。
报警通知:CPU、内存、硬盘、带宽、流量实时监控。
服务监控:HTTP、SSL证书、ping、TCP 端口等。

 赞  赏

如果觉得我的文章对你有用,请随意打赏

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开   或者 扫一扫,即可进行扫码赞赏哦

原创文章,版权属于:涅槃博客 - love2wind
本文最后更新于2021年09月13日11时39分36秒,已超过15天没有更新,若内容或图片失效,请留言反馈
本文链接:https://love2wind.cn/archives/2182.html(转载时请注明本文出处及文章链接)
作品采用:《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权

发表评论

已有 2 条评论

  1. ResidualBlood Lv.1     Linux /    Chrome 说道:

    **Nginx的防呆配置文件代码**
    这里内容把你服务器IP暴露了=-=

    1. 【站长】 love2wind Lv.6     Win 10 /    Chrome 说道:

      :汗:大意了,感谢提醒

涅槃博客

涅槃博客

Love2wind's blog