一个开源轻量级的服务器资源监控平台,支持告警推送

server/2024/11/26 11:46:20/

大家好,今天给大家分享一款开源的轻量级服务器资源监控工具Beszel,提供历史数据记录、Docker容器统计信息监控以及多种警报功能,用于监控服务器资源。

项目介绍

Beszel由hub(中心服务器端应用,基于PocketBase构建,提供管理仪表板)和agent(运行在被监控系统上,通过创建最小化SSH服务器与hub通信并传递系统指标)两部分组成。

Beszel提供了丰富的监控功能和警报机制,支持多用户和Docker环境,并易于设置和部署。无论是对于小型团队还是大型企业来说,Beszel都是一个值得推荐的服务器监控解决方案。

核心特点

轻量级:Beszel的体积相对较小,对系统资源的要求也较低,这使得它能够在各种环境中轻松部署和运行。

Docker支持:Beszel能够监控Docker容器的状态,包括CPU和内存使用历史记录等,这对于使用Docker进行容器化部署的用户来说非常有用。

警报功能:Beszel允许用户配置CPU、内存、磁盘使用情况以及系统状态的警报,当这些指标达到预设的阈值时,Beszel会发送警报通知,帮助用户及时发现问题并采取措施。

多用户支持:Beszel支持多用户系统,每个用户都有自己的系统视图,管理员可以在用户之间共享系统,提高了系统的灵活性和可扩展性。

易于设置:Beszel的设置过程相对简单,用户不需要具备复杂的技术背景就能快速上手。

OAuth/OIDC支持:Beszel支持许多OAuth2提供商,可以禁用密码身份验证,提高了系统的安全性。

自动备份:Beszel能够将数据保存到磁盘或S3兼容存储中,并支持从备份中恢复数据,确保了数据的可靠性和完整性。

REST API:Beszel提供了一个完整的内置API工具,用户可以在自己的脚本和应用程序中使用这些API来获取和使用监控数据。

技术架构

Beszel分为HubAgent两部分:

Hub:Hub是Beszel的服务器端组件,负责数据的汇聚、展示和管理。用户可以通过Web浏览器访问Hub的仪表板来查看和管理连接的系统。

Agent:Agent是Beszel的客户端组件,负责数据的采集和传输。Agent需要安装在被监控的系统上,通过创建一个最小的SSH服务器将系统指标传达给Hub。

安装使用

安装

1.脚本安装

Hub安装

下载安装:

curl -sL "https://github.com/henrygd/beszel/releases/latest/download/beszel_$(uname -s)_$(uname -m | sed 's/x86_64/amd64/' | sed 's/armv7l/arm/' | sed 's/aarch64/arm64/').tar.gz" | tar -xz -O beszel | tee ./beszel >/dev/null && chmod +x beszel && ls beszel

运行程序:

./beszel serve http "0.0.0.0:8090"

程序运行后会在当前目录生成beszel_data/id_ed25519.pub ssh公钥,该公钥用于启动Agent服务。

Agent安装

下载安装:

curl -sL "https://github.com/henrygd/beszel/releases/latest/download/beszel-agent_$(uname -s)_$(uname -m | sed 's/x86_64/amd64/' | sed 's/armv7l/arm/' | sed 's/aarch64/arm64/').tar.gz" | tar -xz -O beszel-agent | tee ./beszel-agent >/dev/null && chmod +x beszel-agent && ls beszel-agent

运行程序:

PORT=45876 KEY="{SSH公钥}" ./beszel-agent
2.Docker安装

Hub安装

通过Docker Compose部署Beszel Hub,详细的docker-compose.yaml内容如下:

services:beszel:image: 'henrygd/beszel'container_name: 'beszel'restart: unless-stoppedports:- '8090:8090'volumes:- ./beszel_data:/beszel_data

使用docker-compose up -d启动。

Agent安装

需要在Beszel后台 - 点击右上角添加系统,然后复制 docker compose内容。

会自动生成docker-compose.yaml内容,如下格式:

services:beszel-agent:image: "henrygd/beszel-agent"container_name: "beszel-agent"restart: unless-stoppednetwork_mode: hostvolumes:- /var/run/docker.sock:/var/run/docker.sock:ro# monitor other disks / partitions by mounting a folder in /extra-filesystems# - /mnt/disk1/.beszel:/extra-filesystems/disk1:roenvironment:PORT: 45876KEY: "ssh-ed25519 xxx"

注意:KEY请改成自己的。

将上面的内容保存为docker-compose.yaml,并输入命令docker-compose up -d即可启动Beszel Agent。

使用

Hub启动成功后通过http://IP:8090访问WEB页面,需设置一个管理员邮箱和密码。

添加安装好的Agent系统

查看系统状态

系统告警设置

项目地址

https://github.com/henrygd/beszel

一个开源轻量级的服务器资源监控平台,支持告警推送 - BTool博客 - 在线工具软件,为开发者提供方便 


http://www.ppmy.cn/server/145043.html

相关文章

SAP开发语言ABAP开发入门

1. 了解ABAP开发环境和基础知识 - ABAP简介 - ABAP(Advanced Business Application Programming)是SAP系统中的编程语言,主要用于开发企业级的业务应用程序,如财务、物流、人力资源等模块的定制开发。 - 开发环境搭建 - 首先需…

Dubbo接入Sentinel实现限流熔断

在复杂的生产环境下可能部署着成千上万的 Dubbo 服务实例,流量持续不断地进入,服务之间进行相互调用。但是分布式系统中可能会因流量激增、系统负载过高、网络延迟等一系列问题,导致某些服务不可用,如果不进行相应的控制可能导致级…

使用Java爬虫时,有哪些性能优化技巧?

在互联网时代,数据的重要性日益凸显,而Java爬虫作为获取数据的重要工具,其性能直接影响数据收集的效率。本文将探讨使用Java爬虫时的性能优化技巧,并提供技术解析和代码示例。 1. 优化网络请求 使用高效的网络库 选择性能优秀的…

【C++】简单理解头文件、命名空间、操作符、函数返回值

前言 这是C入门学习中的第一段代码。 #include <iostream> using namespace std; int main() {cout << "Hello world!" << endl;return 0; }这段代码的作用是在屏幕上输出“Hello world!”&#xff0c;详细点说&#xff0c;这里引用iostream头文…

STM32 外设简介

STM32 外设简介 STM32 是由意法半导体 (STMicroelectronics) 开发的一系列基于 ARM Cortex 内核的微控制器&#xff0c;广泛应用于嵌入式系统中。STM32 系列的一个重要特点是其丰富而强大的外设模块&#xff0c;支持多种接口和功能&#xff0c;能满足工业控制、物联网、消费电…

SD NAND 的 SDIO在STM32上的应用详解

四.SDIO功能框图(重点) SDIO包含2个部分&#xff1a; ● SDIO适配器模块&#xff1a;实现所有MMC/SD/SD I/O卡的相关功能&#xff0c;如时钟的产生、命令和数据的传送。 ● AHB总线接口&#xff1a;操作SDIO适配器模块中的寄存器(由STM32控制SDIO外设)&#xff0c;并产生中断和…

Unity图形学之CubeMap立方体贴图

1.CubeMap&#xff1a;有六个面的贴图组成 2. 假反射&#xff1a;反射天空盒子 &#xff08;1&#xff09;正常UV采样&#xff1a; &#xff08;2&#xff09;Cube的采样&#xff1a;利用反射角采样&#xff0c;反射角X和Cube的交点采样 Shader "Custom/TestReflect"…

java Scanner

在 Java 中&#xff0c;Scanner 是一个用于从输入流中读取数据的类&#xff0c;常用于从控制台读取用户输入。它位于 java.util 包中&#xff0c;并提供了多种读取不同类型数据的方法。以下是 Scanner 类中最常用的几个方法以及它们的详细说明。 1. 创建 Scanner 对象 首先&a…