ServerPapers 开源轻量级服务器监控工具

news2024/11/15 11:45:48

ServerPapers 开源轻量级服务器监控工具

起因

之前用过一些服务器监控工具,但是有些配置复杂不够方便。也有些配置简单,但没有我想要显示的一些信息。所以我就花了三天时间自己写了一个开源的轻量级服务器监控工具。

项目

介绍

ServerPapers是一个基于Nodejs的轻量级服务器监控工具,主要利用了Socket.IO来向用户推送服务器的信息。

项目分为服务端和客户端,客户端将被监听的设备信息发送给服务端,服务端基于Express用于接收信息并在Web页面呈现出来。

其实这里还有一个Vite+Vue3的前端项目,来展示监听设备信息的Web页面。该项目单独测试完成后打包并集成到了服务端中。

如果用户想要自定义Web页面,可以修改这个Vite项目的源码或者自己另外写一个,然后将生成的html等文件导入到服务端的views目录中,而无需更改服务端代码。

服务端

ServerPapers服务端Github地址:CairBin/ServerPapers: ServerPapers is a lightweight server monitoring system. (github.com)

服务端主要用到的框架有 express 、Socket.IO,主页面会重定向至views/index.html

下面来讲解如何部署服务端

  • 首先通过git获取项目
git clone https://github.com/CairBin/ServerPapers.git
  • 如果出现网络问题也可以使用国内镜像
git clone https://gitcode.net/qq_42759112/ServerPapers.git
  • 项目部署需要用到pm2,请先全局安装该工具,其用法请参考官方文档。(如果是Linux环境的话全局使用pm2可能要建立软连接)
npm install -g pm2
  • 进入项目目录并安装依赖
cd ServerPapers && npm install
  • 修改项目配置文件config.js,该文件规定了项目启动的端口号,加密算法,以及客户端结点名称和验证口令等。
export default{
    host:{
        address:'localhost',
        port:8244
    },
    encryption:{
        algorithm:'aes-256-gcm',	//目前只支持aes-256-gcm
    },
    clients:[	//可以有多个客户端,请确保user和pwd与对应客户端配置一直
        {	
            name:'Test',	//结点名称唯一,重复会出问题
            user:'test',
            pwd:'123456'
        }
    ]
}
  • 利用pm2配置文件启动项目(默认重启,配置参考ecosystem.config.cjs配置文件)
pm2 start ecosystem.config.cjs
  • 如果想要停止项目可以运行以下命令
pm2 stop ecosystem.config.cjs
#或者
pm2 stop PaperServer

客户端

客户端Github地址 CairBin/ServerPapers-Client: This is the client of ServerPapers, used to send device status data to the server. (github.com)

客户端通过osUtils,systeminformation等第三方包获取设备硬件信息

客户端部署方法与服务端类似

  • 获取项目
git clone https://github.com/CairBin/ServerPapers-Client.git
#或者使用国内镜像
git clone https://gitcode.net/qq_42759112/ServerPapers-Client.git
  • 安装pm2
npm install -g pm2
  • 进入项目目录安装依赖
cd ServerPapers-Client && npm install
  • 配置config.js
export default{
    "serverUrl":"http://127.0.0.1:8244", //服务端URL
    "loginInfo":{
        "user":"test",
        "pwd":"123456"
    },
    "encryInfo":{
        "algorithm":"aes-256-gcm" //请与服务端一致
    }
}

  • 启动项目,注意客户端pm2配置文件中的autorestart字段默认false,也就是说不会自启重启,如有需要请手动修改
pm2 start ecosystem.config.cjs
  • 关闭项目
pm2 stop ecosystem.config.cjs
#或
pm2 stop ServerPapers-Client

Web

web页面使用Vite脚手架构建,用到的技术有

  • ElementPlus
  • Vue3
  • Socket.IO-Client
  • Vite
  • Axios (已经封装但未调用)

项目地址 CairBin/ServerPapers-Web: This is the web interface of ServerPapers, used to visualize server status information. (github.com)

项目演示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/487856.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

聚观早报|苹果版余额宝四天吸金69亿;​微软拟推出私有版ChatGPT

今日要闻:苹果版余额宝四天吸金69亿元;称微软拟推出私有版ChatGPT;特斯拉上调Model 3、Model Y售价;好莱坞编剧将举行15年来首次罢工;字节跳动要在美国卖书了 苹果版余额宝四天吸金69亿元 早些时候,苹果推…

自动驾驶TPM技术杂谈 ———— I-vista验收标准(试验规程)

文章目录 术语介绍试验准备场地要求环境要求精度要求边界车辆&路沿石 试验方法能力试验双边界车辆平行车位白色标线平行车位双边界车辆垂直车位白色标线垂直车位方柱垂直车位双边界车辆斜向车位白色标线斜向车位 新功能评价平行车位远程操控泊入泊出试验垂直车位远程操控泊…

用户界面对象的线程亲缘性第二篇: 设备上下文

在上一篇文章中,我们简单地介绍了控制窗口句柄的线程亲缘性规则。 今天,我们来讲讲设备上下文(Device Context, 简称 DC) 。 设备上下文也有一定程度的线程亲缘性。调用 DC 相关函数,例如 GetDC 的线程,必须在同一个线程中调用其…

VC++判断Windows系统是Win7、Win8,还是Win10系统(附源码)

有时候我们需要获取操作系统版本,比如win7、win8、win8.1、win10等,对不同版本的系统做特殊处理。有时我们还需要分辨当前系统是64位的,还是32位的。 1、系统API函数GetVersionEx已经被废弃,不能再使用了 以前我们一般使用系统API函数GetVersionEx去获取操作系统版本,但从…

B016_单行函数篇

2022年4月14日08:25:25 通过本章学习,您将可以: SQL中不同类型的函数 在 SELECT 语句中使用字符,数字,日期和转换函数 使用条件表达式术语 函数-预定义的接受参数的代码块单行函数-为每条记录返回一行结果多行函数-返回一个结果,每组数据处理什么是SQL函数 多行函数也叫…

【Redis—主从复制】

概念 如果把数据都存储到一台服务器上,当服务器出现宕机后,数据会丢失。而把数据备份到多台服务器上,那么当一台服务器发生故障后,其他服务器仍然可以继续提供服务。由于是多台服务器,所以服务器之间的数据要保持一致…

SwiftUI 如何动态条件显示和隐藏 Toolbar 按钮且不做无谓刷新

功能需求 在 SwiftUI 中我们可以非常容易的定制导航栏 Toolbar 中按钮的显示,包括折叠、分组和按条件动态显示和隐藏等。 如上图所示,我们仅用寥寥几行代码就实现了 SwiftUI 导航栏 Toolbar 按钮的折叠、分组和按条件动态显示隐藏等功能。 在本篇博文中,您将学到以下内容:…

Spring Cache的使用

目录 一、前言二、什么是Spring Cache?三、Spring Cache常用注解四、使用方法1.导入依赖2.开启缓存注解3.Cacheables4.CachePut5.CacheEvict6.Caching 一、前言 在日常开发工作中,缓存是一个很常见的技术手段,它可以有效地提高系统性能。当系…

6.1.1 图:基本概念

一,基本概念 1.基本定义 (1)图的定义 顶点集不可以是空集,但边集可以是空集。 (2) 有向图的表示: 圆括号 无向图的表示: 尖括号 简单图、多重图: 简单图:…

Java中变量的学习

目录 概述:Java中的成员包含五部分 第一部分:变量 (1)Java中的变量分类 (2)成员变量和局部变量的位置区别 (3)Java中成员变量作用域/Java权限修饰符 (4)…

IntelliJ IDEA 社区版2021.3配置SpringBoot项目详细教程及错误解决方法

目录 一、SpringBoot的定义 二、Spring Boot 优点 三、创建一个springboot的项目 四、使用IDEA创建SpringBoot失败案例 一、SpringBoot的定义 Spring 的诞⽣是为了简化 Java 程序的开发的,⽽ Spring Boot 的诞⽣是为了简化 Spring 程序开发的。 Spring Boot 翻…

maven从入门到精通 第一章 Maven核心程序解压与配置

这里写自定义目录标题 一 为什么要使用Maven1 依赖管理 帮助管jar包2 构建管理 脱离IDE进行运行2.1 传统方式,就是打包成war包,然后放在tomacat上运行2.2 一个程序的运行步骤 二 maven的工作机制1 配置maven1.1 关注 Maven 的核心配置文件:co…

Android Glide加载图片、网络监听、设置资源监听

再搞事情之前首先创建一个项目,就命名为GlideDemo吧。    一、项目配置 创建好之后,在app模块下build.gradle的dependencies闭包中添加如下依赖: //glide//glideimplementation com.github.bumptech.glide:glide:4.11.0annotationProcess…

mysql的一次死锁记录

表结构 create table lzy_test.test_lzy (id int not null primary key,name varchar(128) default null,age int default 0 null,constraint key_name unique (name) );表中数据 idnameage1lzy104lzy412336lzy609lzy90 事务死锁的过程 隔离级别RC 事务A…

【沐风老师】3dMax创建缝线插件StitchLines使用方法详解

3dMax创建缝线插件使用方法详解 3dMax创建缝线插件StitchLines,一键生成车缝线建模,该脚本与可编辑多边形、可编辑样条线或 编辑多边形修改器一起使用,创建一条样条曲线(车缝线),它将以几何体形式在视口中和…

云时通OMS:为零售品牌商打造高效的全渠道订单管理!

传统的零售企业围绕“人、货、场” 三要素来展开营销,其目标是基于“场”将货销售给更多的人。随着数字技术的应用,新零售模式下的“场”除了传统的线下店铺外,还拓展了多元化的线上渠道,比如小程序、企业APP、第三方平台、电商直…

学系统集成项目管理工程师(中项)系列17a_范围管理(上)

1. 包括确保项目做且只做所需的全部工作,以成功完成项目的各个过程 2. 项目工作明确划定边界 2.1. 什么是包括在项目之内的 2.2. 什么是不包括在项目之内的 3. 项目其他各方面管理的基础 4. 编制范围管理计划过程 4.1. 对如何定义、确认和控制项目范围的过程进…

归一化处理(2023寒假每日一题 14)

在机器学习中,对数据进行归一化处理是一种常用的技术。 将数据从各种各样分布调整为平均值为 0 0 0、方差为 1 1 1 的标准分布,在很多情况下都可以有效地加速模型的训练。 这里假定需要处理的数据为 n n n 个整数 a 1 , a 2 , ⋯ , a n a_1,a_2,⋯…

零入门kubernetes网络实战-30->基于bridge+veth pair+DNAT技术来实现外网可以访问内网的方案

《零入门kubernetes网络实战》视频专栏地址 https://www.ixigua.com/7193641905282875942 本篇文章视频地址(稍后上传) 通过DNAT技术可以将brige虚拟网桥管理的内网中的服务暴露出来,以供外网访问。 1、测试环境介绍 两台centos虚拟机 # 查看操作系统版本 cat /…

Typora 文字快捷修改颜色

Typora 设置字体上色快捷键 1. 安装AutoHotKey AutoHotkey 是一种 免费 和 开源 的微软Windows自定义脚本语言,最初旨在 提供简单的键盘快捷键或热键 , 快速创建宏和软件自动化 。 基于成熟的做法,本脚本也采用 AutoHotKey 实现。 AutoHot…