简介
最近接触到了这款探针,算是我目前用过最完善和简洁的探针了,搭建起来也很方便,下面就给大家简单介绍一下。因为作者不做教程,新版的教程我在这里发一下。
包括部署面板、添加服务器、配置SSL、套CDN
github项目地址:https://github.com/naiba/nezha
另一个项目地址: https://github.com/5536086/nezha
讲述一下搭建过程中的重点
- 需要两个域名,其中一个可以套cdn
- 需要github账号
- 反向代理设置和一般的网站不一样
- 套cdn的话需要支持ws加速的cdn,可以使用cloudflare
一、域名解析需要的操作
开始之前,请先确定你搭建探针的域名
强烈建议用两个(子)域名做解析
第一个需要两个域名,其中一个可以套cdn比较方便
第二个仅仅解析到面板服务器的域名,用于客户端连接服务端试用(这个可以没有,但是不建议,如果直接用IP的话,迁移面板后会非常麻烦!)
比如我的tz.hh.com
作为面板的域名,还有一个tzzzz.hh.com
是用来记录面板服务器的IP(其实不是这个域名,因为我写出来就暴露了我的IP了,所以就当它是吧)
暂且将两个域名都解析到部署面板服务器的IP,我之前改本地hosts部署没有成功
二、GitHub上需要的操作
2.1 得到GitHub账号ID
如果没有Github账号,先注册
浏览器中打开https://api.github.com/users/你的GitHub用户名
返回的是Json的信息,第二行id对应的值就是你的ID,纯数字的。如图
或者输入自己的ID,打开github网页,点击自己的头像,右键点击头像复制图片地址。比如我的头像地址是:https://avatars.githubusercontent.com/u/54090186?s=60&v=4
这个54090186就是我的github ID
2.2 创建一个OAuth Apps
先打开:https://github.com/settings/developers,然后点击New OAuth App按钮
在这里其实有一个分岔口,也就是你是否要反代(和WEB服务器共用80口)、配置SSL,那么填写的内容、后面操作的先后顺序也不同。我就只说其中一个方法,免得把各位看官绕晕了,还请先往下看吧!
参考图片填写,记得端口也填写,不填域名填IP也行,如果你只是用IP访问的话
http://你的域名:8008 http://你的域名:8008/oauth2/callback
在页面中填写信息,应用名称随便写,主页网址写你探针主页的地址,授权回调地址是在你探针主页网址的后面加上/oauth2/callback。因为我们需要反代开ssl,所以这里我建议我们填写服务器的IP:8008。演示填写如下
2.3 OAuth Apps的Client ID和Client secrets
创建好OAuth Apps后看图操作
在申请成功弹出新网页后。复制你需要复制的东西,需要复制两个参数,参数的获取方式如下图
2.4 给你的网站起个名字!
三、面板服务器上需要的操作
3.1 防火墙放行端口
需要放行8008
、5555
两个端口,这是默认的,如果你程序中改为其他的,防火墙放行相应的端口
3.2 部署面板服务
哪吒面板开发者提供了一键脚本
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.sevencdn.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh CN=true ./nezha.sh
输入1
回车
接着就要输入前面记录下来的GitHub账号ID
、OAuth Apps的Client ID
、OAuth Apps的Client secrets
了
按照提示输入
到这里面板服务算是完成了大部分了
可以访问http://域名:8008
查看,用你的GitHub账号验证登录
3.3 反代、SSL、CDN
反代配置
我网站使用的是宝塔面板,我也默认大家安装了宝塔啦。建站软件我用的是nginx。这个也是默认大家安装了的。
- 这里就用到我们准备的第一个域名,在dns解析商那里将这个域名解析到我们的服务器,然后在主控端的宝塔里面新建一个网站。在网站的设置里面选择反向代理。
名字随便取。目标url是http://127.0.0.1:8008,发送域名是$host,别的不需要修改。 - 因为默认的反向代理不支持ws,反向代理后无法使用,我们需要点击该反向代理的配置文件。修改配置文件如下
location / { proxy_pass http://127.0.0.1:8008; proxy_set_header Host $host; } location /ws { 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 $host; } location /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 $host; }
图片为宝塔的设置方法
配置SSL就不用说了,常规建站怎么配置,这个就怎么配置
如果没有问题,就可以通过https://域名/
来访问了
套ssl因为宝塔不支持反代的网站申请ssl,所以我们可以去阿里云买个免费的ssl或者去别的网站申请一个,具体的百度 申请免费ssl 就行啦,然后在宝塔该网站的ssl选项里面粘贴你的秘钥和证书!
确保可以访问了,回到GitHub的OAuth Apps设置
打开:https://github.com/settings/developers
看图操作
改好之后就可以对8008
端口取消放行了
关于套CDN,就和常规建站一样,比如我的,就将tz.haoduck.com
解析到CDN服务商,回源地址填部署面板的服务器IP,但要注意的是CDN需要支持WebSocket协议
四、关于客户端(被监控机器)需要的操作
通过https://tz.haoduck.com/登录后台,如果没配置反代、SSL,那它将是http://tz.haoduck.com:8008
用你的GitHub账号验证登录后跳转到https://tz.haoduck.com/server
按图操作
到需要被监控的机器执行脚本
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.sevencdn.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh CN=true ./nezha.sh
输入8
回车
2. 填写事先准备好解析到服务器面板所在IP的第二个域名,这个域名不能套cdn,也可以直接填IP(不建议)。
3. 输入被控端端口,这里就是默认放行的5555了。
4. 接着就要输入前面记录下来的ID
、密钥
了
5. 回到ssh界面,脚本的下一项是输入秘钥,这里我们输入秘钥点击回车。
总体的运行截图如下
好啦,一个被控端已经安装完成了!回到你的主控端网站界面,刷新一下看看有没有被控端监控出现!
按照提示输入
如果没出错,到此就是完成了
有多台被监控机器时,按照此步骤在控制面板添加服务器,在被监控机执行脚本填写ID和密钥。
本文为自己部署的过程,如果有误请指出
总体的运行截图如下:
常见问题
1. 国内服务器出现curl: (7) Failed to connect to raw.githubusercontent.com
echo 199.232.68.133 raw.githubusercontent.com >> /etc/hosts
2. 修改服务器备注后变成”离线”久不恢复
在安装客户端(被监控)的服务器上执行systemctl restart nezha-agent
重启程序
启动nezha-agent还是一直显示离线
检查配置有没有写对cat /etc/systemd/system/nezha-agent.service | grep ExecStart
相关
项目地址:https://github.com/naiba/nezha
关于哪吒探针修改页面页脚、头像Logo等的方法教程,新版本可以在后台用CSS自定义了。