ServerStatus-Tiny
多服务器一站式监控平台
🗒️简介说明
ServerStatus-Tiny
多服务器探针监控平台便携版
适用于:服务器状态监测、服务器探针、服务器大屏数据、自动化运维监测
- 基于 ServerStatus-Hotaru 开发
- 开发 后端为 PHP 接口,以实现 Windows/Linux 均可架设服务端
- 小改 UI界面-VUE,优化卡片显示
- 增加 树莓派(Raspberry)、Termux、Linux 旗帜
- 增加 双栈 IPV6/IPV4 监控支持、增加国内服务器在线监控支持
- 增加 单个服务器监控IP地址数据、在线时间字段
- 适配 Termux,能够监控 termux,支持androd7+,无root/root均可
- 修复 跨平台支持,已测试: Mac、Windows 2012、Ubuntu、Termux(Android 10、Android 6)、Raspberry 2B+
- 兼容 兼容原版 ServerStatus、ServerStatus-Hotaru、ServerStatus-Tokyo
- 总结:无需docker、支持跨平台、支持Termux
演示图
图片无法完整显示,已做模糊处理,可以前往项目主页或博文主页查看。
前言
二开这个项目主要是由于原项目需要 docker 部署服务端,要跑一个 caddy 的服务端;
- 无奈于架设比较繁琐,其实主要原因是我需要在 Windowserver 2012 云服务器不支持虚拟化,无法跑不了 docker 也就安装不了服务端;
- 之后尝试了一下在树莓派上面跑,估计是硬件太久远了也跑不起来,socket 一直重连!!!
- 我需要监控一下几个 Termux 服务,试了一下都跑不了,各种报错
- 于是,重写了~
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 >= 5git clone https://github.com/zsuroy/ServerStatus-Tinycd WEB# 跨平台客户端 | 若 psutil 报错 > 装2.2.1```shellgit clone https://github.com/zsuroy/ServerStatus-Tinycd clientspip install -r requirements.txtpython3 status-psutil.py# Linux 可选客户端 | 特指 termux(无root推荐)git clone https://github.com/zsuroy/ServerStatus-Tinycd clientsbash 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 webSERVER = "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 followingCHECKSOURCE = 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" # hostnamePASSWORD="123" # the verified passwordINTERVAL=1 # Update intervalBACKENDMODE=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、彩虹旗rainbow、trans
替换旗帜即替换 region 属性内容
🏄🏻注意事项
device
总结
[Termux] 无root推荐 client.sh、有root推荐 status-psutil.py其余设备均用 status-psutil.py
- Termux
- proot
- psutil 2.2.1 pip3 install psutil==2.2.1
- python2.7/3.8/3.10
👑更新记录
- 历史版本更新记录可前往RELEASES 页面 查看
☄️致谢开源
- ServerStatus-Hotaru: https://github.com/cokemine/ServerStatus-Hotaru MIT License
- ServerStatus:https://github.com/BotoX/ServerStatus WTFPL License
- ServerStatus-Toyo:https://github.com/ToyoDAdoubiBackup/ServerStatus-Toyo MIT License
- 国内IPV6资源检测:东北大学测速站、test-ipv6.com
- 图标、旗帜: iconfont