首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【技术种草】如何批量检测自己服务器状态?云探针面板搭建教程

【技术种草】如何批量检测自己服务器状态?云探针面板搭建教程

原创
作者头像
Mintimate
修改2021-11-16 15:46:37
3K0
修改2021-11-16 15:46:37
举报
文章被收录于专栏:Mintimate's BlogMintimate's Blog

作者: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,增加安全性:

配置Https
配置Https

搭建面板

首先我们需要申请一个Oauth,之后才可以正式搭建面板,该服务器作为面板所在服务器并提供探针。

申请Oauth

申请Oauth,你可以使用GitHub,也可以使用Gitee的,二者取其一即可:

本文介绍Gitee方法,GitHub其实也差不多。

权限默认即可:

默认权限
默认权限

其中:

  • 应用名称:随意,只是代号。
  • 应用描述:同上面板对外域名,可以为IP,但是不安全。
  • 应用主页:同上面板对外域名加上回调地址,哪吒面板回调地址为:/oauth2/callback

创建应用后,得到:

  • Client ID:客户端ID,后文需要。
  • Client Secret:客户端密钥,后文需要。
    创建完成
    创建完成

远程连接

这里我们使用SSH远程连接我们的服务器:

远程连接成功
远程连接成功

这里我服务器使用了oh-my-zsh,如果你也想使用,文章:Linux/Mac如何配置ZSH并使用Oh-my-zsh?让你的终端更加实用、美观

运行脚本

根据官网项目提示,我们可以使用一键安装脚本进行安装:

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

选择1:安装面板
选择1:安装面板

选择后,输入Gitee(如果前文你使用GitHub,就直接回车):

选择Gitee
选择Gitee

最后,输入上文生成的客户端ID和密钥即可:

安装完成
安装完成

到此,面板就安装完成了。其实,就可以放行8008端口后,浏览器访问了。但是我们为了访问方便、安全,使用Nginx进行反向代理。

注意,管理员账号是这个:

账号和这个一样
账号和这个一样

Nginx反向代理

Nginx反向代理过于简单,但是考虑很多用户使用宝塔面板,所以提供两个步骤演示:

  • 常规方法:使用编译、软件包管理器或Docker安装的Nginx,自己设置Nginx.conf。
  • 宝塔方法:使用宝塔安装的Nginx。

如果你不知道如何安装Ngixn,参考:一篇文章、三种方法在Debian上轻松安装Nginx

这里解析的域名为上文提到的面板对外域名(可使用CDN),也就是上文假设的ops.mintimate.cn。如果是腾讯云的CDN,可以到CDN控制台设置.

常规方法

常规方法,新建一个conf,在conf内添加反向代理:

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;
}
Nginx设置
Nginx设置

其中:

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配置即可。

宝塔方法

宝塔方法也很简单,添加网站后,选择反向代理:

反向代理
反向代理

添加任意代理后,进行编辑:

编辑
编辑

粘贴内容:

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;
}
修改反向代理
修改反向代理

其中:

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密钥,用于绑定服务器的。

安插探针

之后,我们登录我们需要检测的服务器,运行上文的搭建面板-运行脚本内的一键脚本,也就是:

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):

安装监控(探针)
安装监控(探针)
i安装过程
i安装过程

其中:

  • 不可前套CDN的域名,就是上文提到的“「nezha.mintimate.cn:探针连接域名(不可使用CDN)」”

这个时候,我们就可以在面板主页,看到我们的服务器了:

我们的服务器
我们的服务器

注意事项

当然,你也可以添加更多的探针,但是需要注意:

  • 添加主机后,可能无法立刻显示密钥,这个时候是缓存的原因;如果你没有使用CDN,可以直接浏览器强制刷新,如果你使用CDN,可以到CDN控制台进行刷新预热。
  • 迁移面板很简单,数据储存在 /opt/nezha 文件夹中,迁移数据时打包这个文件夹,到新环境解压。然后执行一键脚本安装即可。

END

到此,我们的云探针面板就安装完成了嗷。很多人关心性能问题,其实不管是面板还是探针,对服务器的内存消耗都极低。

其中,面板功能,可在64M内存服务器上运行,探针的话,就更不用说了嗷。

真不错
真不错

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 云探针
  • 效果演示
    • 探针功能
      • 在线登录
      • 前置条件
        • CDN解析
        • 搭建面板
          • 申请Oauth
            • 远程连接
              • 运行脚本
              • Nginx反向代理
                • 常规方法
                  • 宝塔方法
                    • 浏览器访问
                    • 创建探针
                      • 初始化面板
                        • 添加密钥
                          • 安插探针
                        • 注意事项
                        • END
                        相关产品与服务
                        云服务器
                        云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档