ServerStatus 前端模板及Windows平台客户端部署

 

Server Status是一款比较热门常见的服务器监控源码,部署便捷、前端代码轻巧易修改,也出现过许多大神制作的魔改版,这里我就分享一下自己目前在用的后端、前端以及如何实现Windows平台的客户端部署。

 

服务端的选择

 

对于服务端的选择,目前常见的无非就是原版、Toyo版以及cppla版了。 https://github.com/BotoX/ServerStatus https://github.com/ToyoDAdoubi/ServerStatus-Toyo https://github.com/cppla/ServerStatus BotoX为原版。 Toyo版在前者的基础上进行了一些优化改进,简化了部署方式,是比较常见的后端版本。 cppla版添加了更多的功能,比如被墙检测、三网延迟等,不过我选择的前端并没有显示这些。 如果你没有IPv6的机子,那么使用Toyo的即可。

 

IPv6专版

 

由于上面几个版本对于IPv6的支持都不尽完善,因此如果你手上有IPv6的机子,那么建议使用下面的服务端。 实测该服务端也可以兼容Toyo版客户端,因此我更推荐这一版。 https://github.com/Rhilip/ServerStatus

 

服务端快速部署

 

git clone https://github.com/Rhilip/ServerStatus.git
cd ServerStatus/server
make
./sergate

 

如果没错误提示,OK,ctrl+c关闭;如果有错误提示,检查35601端口是否被占用。 修改默认35601端口:

 

vim server/src/main.cpp

 

找到35601,修改为自己想要的端口,重新make即可。 按照实际需要,配置config.json,并且确认前端模板的目录位置,然后运行即可:

 

./sergate --config=config.json --web-dir=/home/wwwroot/default  

 

需要后台运行的话:

 

nohup ./sergate --config=config.json --web-dir=/home/wwwroot/default &

 

Linux客户端部署

 

vim client-linux.py

 

修改SERVER地址,username帐号, password密码 python client-linux.py运行即可。 需要后台运行的话:

 

nohup python client-linux.py &

如果编译出错,请安装编译依赖文件: centos :

ubuntu :

Windows客户端部署

 

Windows版本实际上是调用了psutil这一程序,完成了系统的实时状态采集。 在部署Windows版本时,使用Python 3无法正常运行后端,碍于自己能力有限,只能作罢钻研,转而使用了Python 2.7.16 https://www.python.org/downloads/release/python-2716/ 安装完成Python后,我们安装psutil,但在部署psutil时再次遇到了问题,明明安装Python时安装了pip,但是却无法正常使用,最后在找到了答案,https://www.zhihu.com/question/56927648

 

python -m ensurepip
pip install psutil

 

修改client-psutil.py中的SERVER地址,username帐号, password密码 python client-psutil.py运行即可

 


 

前端的选择

 

以上后端自带的前端其实已经非常简洁实用,但是似乎有些与目前流行的网页风格稍有脱节。 于是各种大神的魔改版本应运而生,我个人比较欣赏的是Hostloc上两位大神分享的版本。 https://www.hostloc.com/thread-493783-1-2.html https://www.hostloc.com/thread-537588-1-1.html 各位如果有需要,可以各自下载后自行研究使用。 我目前自用的前端,结合了两位大神的版本,演示:https://up.yk.ci 如果需要修改或增加国旗,只需要将国旗的图片文件,命名为服务端中设置的节点的Location的名字即可。 我这个版本根据自己需要改了比较多,各位可以随意取用,覆盖原有web文件夹即可: https://dl.yorkchou.com/web/ServerStatus-web.zip

补充

客户端程序在ServerStatus / clients下):

cd ServerStatus/clients
nano client-linux.py

修改服务器地址,用户名帐号,密码密码

python client-linux.py

运行即可

配置一下Supervisor进度守护,安装

apt-get install supervisor -y

写入配置(客户端)

nano /etc/supervisor/conf.d/tz_client.conf

写入以下内容

[program:tz_client]
command=python /root/ServerStatus/clients/client-linux.py
autorestart=true
autostart=true
user=root

重启Supervisor服务。

/etc/init.d/supervisor restart

重启客户端

supervisorctl restart tz_client

查看Supervisor服务运行状态。

supervisorctl status

如果遇到问题,可以检查日志:

supervisorctl tail -f tz_client stderr

更新PM2守护

安装PM2

sudo npm i npm -g && sudo npm i pm2 -g

创建启动脚本

cat > /root/ServerStatus/clients/client-linux.json <<EOF
{
    "name": "ServerStatus",
    "cwd": "/root/ServerStatus/clients",
    "interpreter": "python",
    "script": "client-linux.py"
}
EOF
pm2 start client-linux.json
pm2 startup
pm2 save