首发开源 ServerStatus-Tiny 轻量化跨平台多服务器一站式监控平台


ServerStatus-Tiny

多服务器一站式监控平台

简介说明


ServerStatus-Tiny

多服务器探针监控平台便携版

2022.10.1

  1. 基于 ServerStatus-Hotaru 开发
  2. 开发 后端为 PHP 接口,以实现 Windows/Linux 均可架设服务端
  3. 小改 UI界面-VUE,优化卡片显示
  4. 增加 树莓派(Raspberry)、Termux、Linux 旗帜
  5. 增加 双栈 IPV6/IPV4 监控支持、增加国内服务器在线监控支持
  6. 增加 单个服务器监控IP地址数据、在线时间字段
  7. 适配 Termux,能够监控 termux,支持androd7+,无root/root均可
  8. 修复 跨平台支持,已测试: Mac、Windows 2012、Ubuntu、Termux(Android 10、Android 6)、Raspberry 2B+
  9. 兼容 兼容原版 ServerStatus、ServerStatus-Hotaru、ServerStatus-Tokyo
  10. 总结:无需docker、支持跨平台、支持Termux

演示图


前言

二开这个项目主要是由于原项目需要 docker 部署服务端,要跑一个 caddy 的服务端;

  1. 无奈于架设比较繁琐,其实主要原因是我需要在 Windowserver 2012 云服务器不支持虚拟化,无法跑不了 docker 也就安装不了服务端;
  2. 之后尝试了一下在树莓派上面跑,估计是硬件太久远了也跑不起来,socket 一直重连!!!
  3. 我需要监控一下几个 Termux 服务,试了一下都跑不了,各种报错
  4. 于是,重写了~

ps: 写 shell 脚本时............一言难尽

使用说明

主题: 基于 Vue 3 和 Semantic UI ServerStatus
监控: 基于 ServerStatus 服务器后端: PHP
  • 所有客户端/服务端均做了兼容处理
  • 理论上兼容原版 ServerStatus、ServerStatus-Hotaru、ServerStatus-Tokyo
  • 若只喜欢本项目WEB界面:可以只替换本项目 WEB 覆盖目标WEB目录,并配置好PHP环境即可
  • 若只需要兼容 Termux 可以只使用 client.sh(无root推荐)、status-psutil.py(有root推荐)
  • 欢迎fork、PR
  • [注]!!! 客户端中需要修改配置,socket模式/后端模式 _二选一!!!_为了兼容原项目预留的
  • [已测试平台]

    • 均以 WindowsServer2012 作为PHP服务端,运行在本项目 Backend 模式下
    • MacOS Python3.10 psutil==5.5 客户端 status-psutil.py 正常
    • Windows Python3.8 psutil==2.2.1 客户端 status-psutil.py 正常
    • Raspberry 2B+ Python3.8 psutil==2.2.1 客户端 status-psutil.py 正常
    • Termux - Android 6 rooted Python3.7 psutil==2.2.1 客户端 status-psutil.py 正常
    • Termux - Android 10 rooted Python3.10.11 psutil==2.2.1 客户端 status-psutil.py 正常
    • Termux - Android 10 No root 客户端 client.sh 正常 (网速/流量读取不到)

一键脚本

# 服务端 | 手动指派网站目录 php >= 5
git clone https://github.com/zsuroy/ServerStatus-Tiny
cd WEB

# 跨平台客户端 | 若 psutil 报错 > 装2.2.1
git clone https://github.com/zsuroy/ServerStatus-Tiny
cd clients
pip install -r requirements.txt
python3 status-psutil.py

# Linux 可选客户端 | 特指 termux(无root推荐)
git clone https://github.com/zsuroy/ServerStatus-Tiny
cd clients
bash client.sh

配置修改

只介绍本项目后端模式的修改,socket模式的配置,请参考底部相关项目链接

服务端

接口 app.php; 前台 config.js
define("FILE_NAME", "./json/stats.json"); //文件名
define("PSK", "123"); //PASSWORD

客户端

# [Client-psutil.py]

# backend mode: post the status data to the web
SERVER = "http://127.0.0.1/debug/stats/app.php"   # 服务端api接口地址:可以直接域名或ip或完整路径
PORT = 80                 # 后端模式端口无用
USER = "SUE-1"                # 主机名:标示作用
PASSWORD = "123"   # 随机生成个复杂的密码与服务端保持一致
INTERVAL = 5  # 更新间隔,单位:秒
SERVERINFO = {"name": "MAC", "type": "KVM", "host": USER, "location": "CN", "region": "CN"} # 公共信息

# ===> either socket or backend mode shoule be saved.

# public settings following
CHECKSOURCE = 1 # 网络通讯正常测试源 [0: GFW, 1; CN]


# [client.sh]

SERVER="http://192.168.1.4/debug/stats/" # api_url: begin with "http(s)" or only ip address(domain)
PORT=35601  # 端口无用
USER="SUROY-DEMO" # hostname
PASSWORD="123" # the verified password
INTERVAL=1 # Update interval

BACKENDMODE=0 # 后端模式: 0启动
SOURCEID=1  # 网络通讯正常测试源 [0: GFW, 1; CN]
SERVERINFO="\"name\":\"Nova4e\",\"type\":\"termux\",\"host\":\"${USER}\",\"location\":\"CN\",\"region\":\"termux\",\"custom\":\"\","

数据模版

开发了包括但不限于以下模版
{ "name": "显示名","type":"架构","host":"主机名-唯一标示","location":"地区","region":"地区-旗帜","custom":"用户自定义显示内容","online4":"IPV4状态","online6":"IPV4状态","uptime":"服务器在线时间","load":"服务器负载","memory_total":"总内存","memory_used":"已用内存","swap_total":"swap","swap_used":750628,"hdd_total":"硬盘大小","hdd_used":25600,"cpu":0,"network_rx":3020,"network_tx":1020, "network_in": 40924739, "network_out": 14312368,"updated":"上次更新时间戳","ip":"IP地址"}

{ "name": "Linux","type":"Arm","host":"SUROY","location":"CN","region":"linux","custom":"","online4":true,"online6":false,"uptime":"7d 12:36","load":1.25,"memory_total":9768472,"memory_used":1249760,"swap_total":2393756,"swap_used":750628,"hdd_total":213780,"hdd_used":25600,"cpu":0,"network_rx":3020,"network_tx":1020, "network_in": 40924739, "network_out": 14312368,"updated":1664829323,"ip":"192.168.1.4"}

特殊旗帜:树莓派raspberry、Termuxtermux、Linuxlinux、海盗旗pirate、彩虹旗rainbowtrans

替换旗帜即替换 region 属性内容


注意事项

device

总结
[Termux] 无root推荐 client.sh、有root推荐 status-psutil.py

其余设备均用 status-psutil.py


目前存在的问题

  • Termux: client.sh 无法获取流量/网速数据
  • 新发现问题请提交ISSUE,我会尽快跟进解决

开源地址

Fork、PR~~
https://github.com/zsuroy/ServerStatus-Tiny

声明:Grows towards sunlight |版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 首发开源 ServerStatus-Tiny 轻量化跨平台多服务器一站式监控平台


Grows towards sunlight and Carpe Diem