作者:Mintimate
博客:https://www.mintimate.cn Mintimate's Blog,只为与你分享
云探针
云探针是什么呢?云探针,其实就是用TCP,对服务器进行一次握手连接后,得到服务器的运行状态。
本次的云探针,使用哪吒面板,可以实现对自己(多台)服务器:
- 支持系统状态
- HTTP、TCP、Ping 监控报警
- 计划任务
- 在线终端
推荐多服务器用户搭建,为了提升安全性,最好再准备
- 域名:用于解析域名到哪吒面板(探针面板)API接口,同时可以编译面板迁移。
- CDN:用户解析到面板监控地址,对面板IP进行防护,同时也方便迁移。
本次教程,使用的方案:域名 CDN 服务器。
双十一买了那么多台服务器,终于可以批量监控了嗷~
效果演示
其实腾讯云的控制台,信息很全,在控制台也可以看到当前的CPU和带宽等,一次看一台:
但是总是不直观,比如,我这样的个人开发者,有个几台服务器,就需要一个一个点开查看:
探针功能
这个时候,我们的探针搭建好,就可以直观地查看了:
这个时候是不是看到我两台服务器CPU爆满呢?
主要是,我在编译编译Android源码,所以CPU跑慢,这样探针,也方便我查看是否编译完成。
在线登录
在线登录功能,其实就是远程SSH。我知道有很多SSH的软件,比如:腾讯云的在线一键登录、Windows的Powershell和Linux/macOS的Terminal等等。
但是哪吒面板也提供了一键SSH登录,效果和腾讯云的在线一键登录类似:
登录效果:
当然,这样的登录,是免密的,使用前提:
- 用户登录哪吒面板
- 有Nginx反代环境支持
话不多说,下面我们就开始教程吧。
前置条件
首先是前置条件,基础要求简单:
- 至少一台服务器
- Github或Gitee账号
提升体验:
- 两个域名(不用顶级域名,两个二级或三级域名即可)
- CDN(推荐使用腾讯云CDN内容分发)
最近双十一,强烈推荐新用户服务器购买:https://curl.mintimate.cn/1jccDM8rK1S
这里假设我准备了域名:
ops.mintimate.cn
:面板对外域名(可使用CDN)nezha.mintimate.cn
:探针连接域名(不可使用CDN)
为什么要这样呢?画了一个简单的图解:
也就是:
- 面板对外域名(CDN)是用来公网访问的;
- 探针连接域名(不可使用CDN),是用来接受探针数据,方便日后迁移面板。
CDN解析
考虑到用CDN的小伙伴,没有服务器人那么多,这里介绍如何使用腾讯云的CDN解析。首先是登录腾讯云的CDN后台:https://console.cloud.tencent.com/cdn
之后,在这里添加域名:
记得配置Https,增加安全性:
搭建面板
首先我们需要申请一个Oauth,之后才可以正式搭建面板,该服务器作为面板所在服务器并提供探针。
申请Oauth
申请Oauth,你可以使用GitHub,也可以使用Gitee的,二者取其一即可:
- GitHub:https://github.com/settings/developers
- Gitee: https://gitee.com/oauth/applications
本文介绍Gitee方法,GitHub其实也差不多。
权限默认即可:
其中:
- 应用名称:随意,只是代号。
- 应用描述:同上面板对外域名,可以为IP,但是不安全。
- 应用主页:同上面板对外域名加上回调地址,哪吒面板回调地址为:
/oauth2/callback
创建应用后,得到:
- Client ID:客户端ID,后文需要。
- Client Secret:客户端密钥,后文需要。 创建完成
远程连接
这里我们使用SSH远程连接我们的服务器:
这里我服务器使用了oh-my-zsh,如果你也想使用,文章:Linux/Mac如何配置ZSH并使用Oh-my-zsh?让你的终端更加实用、美观
运行脚本
根据官网项目提示,我们可以使用一键安装脚本进行安装:
代码语言:txt复制curl -L https://cdn.jsdelivr.net/gh/naiba/nezha@master/script/install.sh -o nezha.sh && chmod x nezha.sh
CN=true sudo ./nezha.sh
这里注意,我们最好在一个空文件夹内运行脚本,方便后续调出脚本控制界面,比如:
之后,会询问是否安装,我们选择1
:
选择后,输入Gitee(如果前文你使用GitHub,就直接回车):
最后,输入上文生成的客户端ID和密钥即可:
到此,面板就安装完成了。其实,就可以放行8008端口后,浏览器访问了。但是我们为了访问方便、安全,使用Nginx进行反向代理。
注意,管理员账号是这个:
Nginx反向代理
Nginx反向代理过于简单,但是考虑很多用户使用宝塔面板,所以提供两个步骤演示:
- 常规方法:使用编译、软件包管理器或Docker安装的Nginx,自己设置Nginx.conf。
- 宝塔方法:使用宝塔安装的Nginx。
如果你不知道如何安装Ngixn,参考:一篇文章、三种方法在Debian上轻松安装Nginx
这里解析的域名为上文提到的面板对外域名(可使用CDN),也就是上文假设的ops.mintimate.cn
。如果是腾讯云的CDN,可以到CDN控制台设置.
常规方法
常规方法,新建一个conf,在conf内添加反向代理:
代码语言:txt复制location /
{
proxy_pass http://127.0.0.1:8008;
proxy_set_header Host $host;
}
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 $host;
}
其中:
代码语言:txt复制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 $host;
}
为远程terminal功能,需要Nginx安装正则规则,如果不需要远程登录功能,可以不写。
最后,保存重载Nginx配置即可。
宝塔方法
宝塔方法也很简单,添加网站后,选择反向代理:
添加任意代理后,进行编辑:
粘贴内容:
代码语言:txt复制location /
{
proxy_pass http://127.0.0.1:8008;
proxy_set_header Host $host;
}
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 $host;
}
其中:
代码语言:txt复制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 $host;
}
为远程terminal功能,需要Nginx安装正则规则,如果不需要远程登录功能,可以不写。
浏览器访问
这个时候,就可以浏览器访问了,如果开启CDN,可能会有缓存机制,记得清缓存。
创建探针
现在,我们就可以创建探针了,首先是面板的初始化,然后是创建探针,最后是安放探针。
初始化面板
初始化面板,很简单。浏览器访问面板后,点击登录:
之后,会使用Gitee/GitHub进行验证:
验证后,我们的初始化就完成了。
添加密钥
之后,我们添加一个密钥,点击右上角的添加主机:
这个密钥很重要,也就是下文的Agent密钥,用于绑定服务器的。
安插探针
之后,我们登录我们需要检测的服务器,运行上文的搭建面板-运行脚本内的一键脚本,也就是:
代码语言:txt复制curl -L https://cdn.jsdelivr.net/gh/naiba/nezha@master/script/install.sh -o nezha.sh && chmod x nezha.sh
CN=true sudo ./nezha.sh
当然,如果之前已经运行过此脚本,可以直接运行脚本:
这个时候,我们就不是选择安装面板端
了,而是选择8
(安装监控Agent):
其中:
- 不可前套CDN的域名,就是上文提到的“「
nezha.mintimate.cn
:探针连接域名(不可使用CDN)」”
这个时候,我们就可以在面板主页,看到我们的服务器了:
注意事项
当然,你也可以添加更多的探针,但是需要注意:
- 添加主机后,可能无法立刻显示密钥,这个时候是缓存的原因;如果你没有使用CDN,可以直接浏览器强制刷新,如果你使用CDN,可以到CDN控制台进行刷新预热。
- 迁移面板很简单,数据储存在
/opt/nezha
文件夹中,迁移数据时打包这个文件夹,到新环境解压。然后执行一键脚本安装即可。
END
到此,我们的云探针面板就安装完成了嗷。很多人关心性能问题,其实不管是面板还是探针,对服务器的内存消耗都极低。
其中,面板功能,可在64M内存服务器上运行,探针的话,就更不用说了嗷。