1 前言
以前我都是用哪吒探针的.不过哪吒探针虽然很好用,也带有监控网站和ssl监控等丰富的功能,不过对于我来说还是太笨重了.而且agent端权限太高,直接获取root权限对于我来说也是个缺点.
今天我们介绍的探针是beszel,一个轻量级的服务器监控插件.可以监控服务器的CPU/内存/磁盘io/docker容器占用/流量,并且还有历史记录,还有简单的告警功能.
项目地址:https://github.com/henrygd/beszel
项目没有中文文档,目前和国内其余探针比起来缺点也有一些,更不用说和哪吒相比了.不过哪吒新版本难用而且安装麻烦并且传出了有漏洞的说法.不过优点也是有的,占用小而且好看!
下面贴几个beszel的界面图片:
1.1 优点
- 轻量级:比领先的解决方案更小且资源密集程度更低。
- 中文:新版本已经支持中文!
- Docker 统计:跟踪每个容器的 CPU、内存和网络使用历史记录。
- 警报:可配置 CPU、内存、磁盘、带宽、温度和系统状态的警报。
- 多用户:每个用户管理自己的系统。管理员可以跨用户共享系统。
- OAuth / OIDC:支持多个 OAuth2 提供商。可以禁用密码验证。
- 自动备份:从磁盘或 S3 兼容存储保存和恢复数据
- Docker安装:目前主控可以docker安装,被控原本是docker安装,现在是docker和二进制都可以选择
- 支持arm
- 国外人做的,其实我一直觉得一个开源项目是国外做的话,那这个项目会有更长的更新周期和更少的B事.
安全!
主控和代理通过 SSH 进行通信,因此它们不需要暴露在互联网上。即使您在集线器前面放置外部身份验证网关(例如 Authelia),它也不会中断或破坏集线器和代理之间的连接。当集线器首次启动时,它会生成一个ED25519密钥对。代理的 SSH 服务器配置为仅接受使用此密钥的连接。它不提供伪终端或接受输入,因此即使您的私钥被泄露,也无法在代理上执行命令。
当然,ssh通信也是有点小缺点的.需要在被控服务器上开通通信端口,这点和哪吒等不需要开通端口的不同.如果你使用了防火墙,那么会导致无法通信,需要在防火墙放行端口.
1.2 缺点
- 被控无法修改,当你在主控界面天街被控以后,无法修改.可能是由于ssh密钥通信的原因.但是连被控的名字都无法修改就有点过分了.
- IPV6支持不好,目前github里面有不少人提了这个问题.作者说会在下个版本修复这个问题.
- 多磁盘支持不好,目前作者介绍的比较少,可以通过手动办法解决:https://github.com/henrygd/beszel?tab=readme-ov-file#monitoring-additional-disks-partitions-or-remote-mounts
- 自定义功能少,目前来说在设置页里面无法修改皮肤/站点名字/图标等,有需要的可以进程序自己修改,不过后续升级就会改回来的.
- 不支持游客访问,可以设置一个只读的账号.
- 少了个流量总共使用了多少监控功能
当然,由于这些缺点也导致了beszel有着超高的易用性,反正就是安装和使用都很简单的意思.
2安装
2.1 主控安装
主控还是建议docker安装,不管是管理还是删除都方便,被控就不建议用docker了,很多小机再额外安装一个docker很麻烦.
部署Beszel Hub(也就是主控/后端)
2.1.1 SSH界面手动安装
通过Docker Compose部署,docker-compose.yaml
内容如下:
services:
beszel:
image: 'henrygd/beszel'
container_name: 'beszel'
restart: unless-stopped
ports:
- '8090:8090'
volumes:
- ./beszel_data:/beszel_data
然后使用docker-compose up -d
启动,启动成功后通过http://IP:8090
访问WEB页面,并设置一个管理员邮箱和密码,以便后续使用。
2.1.2 docker界面安装
这里用带有docker面板的宝塔面板演示,群晖等面板也是一样的流程.如果是宝塔用户,那么就在宝塔侧边栏的Docker里面,找到线上镜像,然后搜索beszel,将第一个henrygd/beszel的镜像下载到本地.
然后找到容器,然后选择创建容器,容器名称随便写,镜像选择刚下载好的镜像,端口将容器的8090暴露出来,本地端口随便写,不起冲突就可以,但是你要记得你输入的这个端口.
2.1.3 docker-compose面板安装
在宝塔侧边栏的Docker里面,找到容器,然后选择创建容器-容器编排-创建,名字随便起一个,然后讲上述docker-compose.yaml
内容填写到里面.演示看下图:
然后会自动回到容器编排界面,模板选择刚刚创建的模板,用户名随便起一个,建议叫做beszel方便区分,然后创建容器即可.记得放行8090端口
2.2 使用
接下来使用你服务器的IP后面加英文冒号:然后加上你刚刚设置的端口,如果和我设置的一样那就是IP:8090
设置一个用户名/邮箱/密码.然后进入面板
如果不是中文,那么点击右上角的齿轮图标设置,在Language那里找到中文设置就好.
2.3 添加被控
在主界面的右上角找到添加客户端,这里我建议使用二进制安装,而不是docker.如果让你的小鸡再额外安装一个docker管理器就有点麻烦了,对于有docker环境的小机可以使用docker安装
然后填写被控的名称和IP,端口可以自己设置,建议使用默认的端口.然后记得去你的小鸡防火墙那里放开端口,最后点击复制linux命令按钮,去你的小鸡ssh上面安装即可,记得小鸡安装的时候需要你输入一下y确认安装.
然后就可以在你的主控里面看到你的被控了.使用就是这么简单.
其他功能
在主界面选择服务器右边的铃铛可以选择告警,在线/cpu/内存/磁盘/流量/温度等都可以设置触发器,目前通知方式支持Webhook和邮件(需要自己设置发邮件服务器)
点击主界面右上角的那个小人可以选择其余的功能,比如日志和备份等功能,那样子会跳转到另一个面板界面,和主界面是一样的邮箱账号和密码,可以自己进行设置.备份/存储到S3和OAuth2 登录