firesky123 / ServerStatus

云探针、多服务器探针、云监控、多服务器云监控

Home Page:https://bit.ly/2Ofwaau

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ServerStatus 中文修改版

ServerStatus 中文修改版是一个酷炫高逼格的云探针、云监控、服务器云监控、多服务器探针~

演示效果

打开演示站

预览图

U1y9Tx.png

文件介绍:

  • server.php 服务端文件
  • client-linux.py 客户端文件
  • web 网站文件

版本说明

中文 fork 版,根据自己的需求,梳理了下服务端的逻辑,发现 C++ 不会写。遂改成了 PHP 版本,不过兼顾客户端部署方便,还是原来的 python.

将协议有 socket 更改为 websocket,可以将服务端隐藏在 CDN ( Cloudflare ) 后方,即使客户端被爆破也不会泄露服务端的 IP,毕竟服务端都是很脆弱的机器🙄.

服务端区别

  • 协议更改为 websocket
  • 动态读取 config.json 文件进行验证客户端权限,这样不用像以往修改完配置再重启服务端才生效。
  • 一个URL同时生成服务端配置和客户端配置,不用登录服务端服务器也能新增节点。
  • 新增世界地图显示服务器大致位置
  • 移除 ipv6 判断,统一 ipv4,ipv6 的服务器可以通过 CDN 中转连接。

客户端区别

  • 协议更改为 websocket
  • 新增一堆 bug

配置文件说明

配置文件中以 username 作为唯一值认证,所以你需要保证你的用户名是唯一的。

使用一键客户端指令运行时,服务端也会根据客户端 IP 校验配置是否唯一。

安装

监控脚本分为服务端和客户端,服务端用来统计及展示各个客户端信息的,一般只能有一个。而客户端是你要被监控的服务器,可以有多个,每一台就是一个客户端。

服务端

服务端采用 PHP 语言,所以还需要 swoole 扩展的环境,如果没有,可以下载我的绿色包,解压即可能用。

PHP + SWOOLE 绿色解压版

参考下面指令,只要将压缩包解压并设置软链接到系统环境变量所在目录即可。

wget https://github.com/ellermister/ServerStatus/releases/download/7.4/php7.4-static10.tar.gz
tar -xzf php7.4-static10.tar.gz
mkdir /usr/local/php && mv php7.4 /usr/local/php
ln /usr/local/php/php7.4/bin/php /usr/bin/php

(可能部分系统还有问题,如果不成功建议通过 docker 安装 swoole)

下载源码并解压:

wget https://github.com/ellermister/ServerStatus/archive/master.zip
unzip master.zip

运行:

php server.php

后台运行:

nohup php server.php > /dev/null 2>&1 &

默认服务端监听 35601 端口以进行处理请求,建议通过 nginx 反向代理至服务端。

Nginx

如若需要通过 nginx 反向代理,这是配置选段参考。

此配置适用于百度云 CDN 以及 CloudFlare ,主要是将真实IP设置至 X-Real-IP 字段即可。

location / {
        proxy_redirect off;
        proxy_pass http://127.0.0.1:35602/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;

        proxy_set_header X-Real-IP $http_x_forwarded_for;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

Token

用于接口交互的 token存储于服务端 server.php 所处的目录的 .token 中。

$ cat .token
2e311fc799c47bdd1578a41111397b2a

客户端

依赖

由于将原本的 socket 传输修改为 websocket,这里比以前还需要多安装一个 websocket 客户端。

pip install websocket_client

如若为纯净版系统,还需安装 pip (python 的包管理) 否则会提示 pip 命令不存在。

CentOS/Redhat

yum install -y python-pip

Debian/Ubuntu

apt install -y python-pip

运行

你可以通过编辑 client-linux.py 文件,并修改其中的 SERVER(接口地址)USER(用户名)PASSWORD(验证密码) 以保证客户端能和服务端正常连接。

前台调试运行:

python client-linux.py

后台运行:

 nohup python client-linux.py >/dev/null 2>&1 &

我们在此次改版中增加了一键部署客户端以方便快速部署。无需登录服务端再修改配置文件,也无需再重启服务。

请将其中的 {1.1.1.1}修改为你的域名, 将 {token} 修改为你的 token 以保证管理端不被滥用,请避免 token 泄露。

wget 'https://{1.1.1.1}/api/client-linux.py?token={token}'

上述命令比较精简,如果想自行指定服务器的一些信息给到服务端,可以这样运行。

wget 'http://{1.1.1.1}/api/client-linux.py?token={token}&type=kvm&name=HKVPS&location=HongKong' -O 'lient-linux.py'

完整示例:

wget 'http://192.168.75.132:35601/api/client-linux.py?token=db17150af7885e987d8bcdb791d7a824&type=kvm&name=HKVPS&location=HongKong' -O 'client-linux.py'

这样即可以得到一个自动填上配置信息的客户端文件,而且服务端也已经保存了对应信息,接下来只需要直接运行客户端脚本即可。

指令:

python client-linux.py

如果没有报错,你就可以按照前面的办法,将脚本放到后台进程中运行。

清理历史

清除命令历史,避免被人从历史中发现 token 的踪迹。

history -c

最后

🙄 最后祝各位买机愉快~~

🐛BUG反馈:https://t.me/EllerCN

About

云探针、多服务器探针、云监控、多服务器云监控

https://bit.ly/2Ofwaau


Languages

Language:JavaScript 34.5%Language:PHP 28.6%Language:Python 20.5%Language:CSS 10.4%Language:HTML 6.1%