服务器状态监控——“哪吒探针面板”搭建教程

简介

最近接触到了这款探针,搭建起来也很方便,之前用的 ServerStatus-Hotaru ,添加机器调整顺序不是很方便, 故此换了哪吒探针,发现哪吒添加机器添加机器很方便。现在在这里分享一下教程。

演示站:http://status.llxx.cc/

github项目地址:https://github.com/naiba/nezha

准备

  1. GitHub账户
  2. 宝塔面板
  3. 一个域名

开始之前,请先确定你搭建探针的域名

比如说tz.llxx.cc作为面板的域名,还有一个tzz.llxx.cc是用来记录面板服务器的IP

安装监控

新建OAuth App

首先打开:https://github.com/settings/developers,然后点击New OAuth App按钮。
记录下OAuth Apps的Client ID和Client secrets

执行脚本

打开github项目地址,现在有一键代码,我还是比较推荐使用国外的机器搭建哪吒探针的。https://github.com/naiba/nezha

curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh  -o nezha.sh && chmod +x nezha.sh
sudo ./nezha.sh  #国外机
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安装,输入相关信息

放行端口,解析域名

在你的服务器上开放8088和5555端口。并且解析两个域名到服务器!

新建网站

宝塔新建一个网站

设置ssl

设置反向代理

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;
}

登入后台

这时候就可以输入tz.llxx.cc访问后台了,登入后台,设置未接入CDN的面板服务器域名/IP

 

添加服务器

复制一键命令

复制一键命令到其他要被监控的机器,一键添加,非常方便

自定义代码

可以去版权、改LOGO、加统计代码等等。

默认主题更改进度条颜色示例

<style>
.ui.fine.progress> .bar {
    background-color: pink !important;
}
</style>

默认主题修改LOGO、移除版权示例(来自 @iLay1678,欢迎PR)

<style>
.right.menu>a{
visibility: hidden;
}
.footer .is-size-7{
visibility: hidden;
}
.item img{
visibility: hidden;
}
</style>
<script>
window.onload = function(){
var avatar=document.querySelector(".item img")
var footer=document.querySelector("div.is-size-7")
footer.innerHTML="Powered by 你的名字"
footer.style.visibility="visible"
avatar.src="你的方形logo地址"
avatar.style.visibility="visible"
}
</script>

hotaru 主题更改背景图片示例

<style>
.hotaru-cover {
    background: url(https://s3.ax1x.com/2020/12/08/DzHv6A.jpg) center;
}
</style>

报警通知

灵活通知方式

#NEZHA# 是面板消息占位符,面板触发通知时会自动替换占位符到实际消息

Body 内容是JSON 格式的:当请求类型为FORM时,值为 key:value 的形式,value 里面可放置占位符,通知时会自动替换。当请求类型为JSON时 只会简进行字符串替换后直接提交到URL

URL 里面也可放置占位符,请求时会进行简单的字符串替换。

参考下方的示例,非常灵活。

  1. 添加通知方式
  2. 添加一个离线报警
    • 备注:离线通知
    • 规则:
      [{"Type":"offline","Min":0,"Max":0,"Duration":10}]
    • 启用:√
  3. 添加一个监控 CPU 持续 10s 超过 50%  内存持续 20s 占用低于 20% 的报警
    • 备注:CPU+内存
    • 规则:
      [{"Type":"cpu","Min":0,"Max":50,"Duration":10},{"Type":"memory","Min":20,"Max":0,"Duration":20}]
    • 启用:√

报警规则说明

  • Type
    • cpu、memory、swap、disk:Min/Max 数值为占用百分比
    • net_in_speed(入站网速)、net_out_speed(出站网速)、net_all_speed(双向网速)、transfer_in(入站流量)、transfer_out(出站流量)、transfer_all(双向流量):Min/Max 数值为字节(1kb=1024,1mb = 1024*1024)
    • offline:不支持 Min/Max 参数
  • Duration:持续秒数,监控比较简陋,取持续时间内的 70 采样结果

常见问题

数据备份恢复

数据储存在 /opt/nezha 文件夹中,迁移数据时打包这个文件夹,到新环境解压。然后执行一键脚本安装即可

启用 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 }

 


原文地址:

https://www.nbmao.com/archives/5045

https://www.nbmao.com/archives/5080

点赞
  1. 大西瓜和芒果和苹果和雪梨 大西瓜和芒果和苹果和雪梨说道:
    Google Chrome Windows 10
    学到了,之前也想装个探针来着,后来想想,自己也就4、5个小鸡,没啥必要,最终还是没装。 索性就用servercat看看状态就得了·······
    1. 博主说道:
      Google Chrome Windows 10
      鸡不多的话无所谓了,有些人白嫖了几十个,所以有必要看看。

发表评论