ServerStatus中文版:

  • ServerStatus中文版是一个酷炫高逼格的云探针、云监控、服务器云监控、多服务器探针~。
  • 在线演示:https://tz.cloudcpp.com
Python Support
C++ Compiler
License
Latest Version

目录介绍:

  • autodeploy 自动部署.
  • clients 客户端文件
  • server 服务端文件
  • web 网站文件

更新说明:

  • 20200629, 优化IPv6,优化前端。注意docker默认是不支持IPv6的, 如使用docker需要手动开启ipv6
  • 20200407, 网速计算不严谨,fixed
  • 20190129, 降低CPU占用
  • 20181221, 增加实时到三网的延迟
  • 20181126, add tupd(tcp, udp, process ,thread) count for view ddcc attack
  • 20180829, 网络情况:主机到三网(CU,CT,CM)每小时丢包率的检测
  • 20180726, 一切皆容器额,查看自动部署或autodeploy/readme
  • 20180312, 加入失联(被照顾)检测【正常:MH361, 屏蔽:MH370】,校准虚拟化流量统计异常      
  • 20170807, 更新平均1,5,15负载, 增加服务器总流量监控        

自动部署:

【服务端】:

wget https://raw.githubusercontent.com/cppla/ServerStatus/master/autodeploy/config.json
docker run -d --restart=always --name=serverstatus -v {$path}/config.json:/ServerStatus/server/config.json -p {$port}:80 -p {$port}:35601 cppla/serverstatus

eg:
docker run -d --restart=always --name=serverstatus -v ~/config.json:/ServerStatus/server/config.json -p 80:80 -p 35601:35601 cppla/serverstatus

【客户端】:

wget --no-check-certificate -qO client-linux.py 'https://raw.githubusercontent.com/cppla/ServerStatus/master/clients/client-linux.py' && nohup python client-linux.py SERVER={$SERVER} USER={$USER} PASSWORD={$PASSWORD} >/dev/null 2>&1 &

eg:
wget --no-check-certificate -qO client-linux.py 'https://raw.githubusercontent.com/cppla/ServerStatus/master/clients/client-linux.py' && nohup python client-linux.py SERVER=45.79.67.132 USER=s04  >/dev/null 2>&1 &

手动安装教程:

【克隆代码】:

git clone https://github.com/cppla/ServerStatus.git

【服务端配置】(服务端程序在ServerStatus/web下):

一、生成服务端程序

cd ServerStatus/server
make
./sergate

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

二、修改配置文件
修改config.json文件,注意username, password的值需要和客户端对应一致    

{"servers":
	[
		{
			"username": "s01",
			"name": "Mainserver 1",
			"type": "Dedicated Server",
			"host": "GenericServerHost123",
			"location": "Austria",
			"password": "some-hard-to-guess-copy-paste-password"
		},
	]
}       

三、拷贝ServerStatus/status到你的网站目录
例如:

sudo cp -r ServerStatus/web/* /home/wwwroot/default

四、运行服务端:
web-dir参数为上一步设置的网站根目录,务必修改成自己网站的路径

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

【客户端配置】(客户端程序在ServerStatus/clients下):
客户端有两个版本,client-linux为普通linux,client-psutil为跨平台版,普通版不成功,换成跨平台版即可。

一、client-linux版配置:
1、vim client-linux.py, 修改SERVER地址,username帐号, password密码
2、python client-linux.py 运行即可。

二、client-psutil版配置:
1、安装psutil跨平台依赖库
2、vim client-psutil.py, 修改SERVER地址,username帐号, password密码
3、python client-psutil.py 运行即可。

### for Centos:
sudo yum -y install epel-release
sudo yum -y install python-pip
sudo yum clean all
sudo yum -y install gcc
sudo yum -y install python-devel
sudo pip install psutil
### for Ubuntu/Debian:
sudo root
apt-get -y install python-setuptools python-dev build-essential
apt-get -y install python-pip
pip install psutil
### for Windows:
打开网址:https://pypi.python.org/pypi?:action=display&name=psutil#downloads
下载psutil for windows程序包
安装即可

打开云探针页面,就可以正常的监控。接下来把服务器和客户端脚本自行加入开机启动,或者进程守护,或以后台方式运行即可!例如: nohup python client-linux.py &

如何快速跟随系统启动呢?其实好多人都搞复杂化了

1、chmod 755 /root/client-linux.py
2、vim /etc/crontab,尾部追加

@reboot root /root/client-linux.py SERVER=$server USER=$user


开机自启

 服务端
 Debian:
 进入 init.d: 
 cd /etc/init.d
 创建 Shell 脚本: 
 vi /etc/init.d/status-s
 编写启动脚本: 
 ! /bin/sh
 BEGIN INIT INFO
 Provides: ServerStatus
 Required-Start: $network $syslog
 Required-Stop: $network
 Default-Start: 2 3 4 5
 Default-Stop: 0 1 6
 Short-Description: Start ServerStatus
 Description: ServerStatus
 END INIT INFO
 ServerStatus_DATA="/root/ServerStatus/server"
 WEB_DATA="/www/wwwroot/status"
 start()
 {
     echo "Start ServerStatus"
     cd "$ServerStatus_DATA"
     screen -dmS web ./sergate --config=config.json --web-dir="$WEB_DATA"
 }
 case "$1" in
     start)
         start
         ;;
     stop)
         stop
         ;;
     restart)
         stop
         #start
         ;;
     *)
         echo "Usage: /etc/init.d/status-s {start|stop|restart}"
         ;;
 esac
 注意修改 WEB_DATA 后的路径为 HTTP 站点的绝对路径
 设置 status- s 为可执行脚本: 
 chmod 755 /etc/init.d/status-s
 设置 status- s 开机自启: 
 update-rc.d status-s defaults
 测试下脚本可用性:
 /etc/init.d/status-s start
 若不报错 echo Start ServerStatus,则脚本可用:
 重启测试:
 reboot
 若想取消开机自启:
 update-rc.d -f status-s remove
 CentOS:
 前 4 步都和 Debian 一样,完成前 4 步后,编辑 rc.local
 vi /etc/rc.d/rc.local
 在此文件末尾新开一行加上如下命令:
 /etc/init.d/status-s start
 给权限,重启测试:
 chmod +x /etc/rc.d/rc.local
 reboot
 客户端
 Debian
 进入 init.d: 
 cd /etc/init.d
 创建 Shell 脚本: 
 vi /etc/init.d/status-c
 编写启动脚本: 
 ! /bin/sh
 BEGIN INIT INFO
 Provides: Status Clients
 Required-Start: $network $syslog
 Required-Stop: $network
 Default-Start: 2 3 4 5
 Default-Stop: 0 1 6
 Short-Description: Start ServerStatus Clients
 Description: Status Clients
 END INIT INFO
 ServerStatusC_DATA="/root/ServerStatus/clients"
 NAME_BIN="client-linux.py"
 start()
 {
     echo "Start ServerStatus Clients"
     cd "${ServerStatusC_DATA}"
     screen -dmS jp python "${NAME_BIN}"
 }
 case "$1" in
     start)
         start
         ;;
     stop)
         stop
         ;;
     restart)
         stop
         #start
         ;;
     *)
         echo "Usage: /etc/init.d/status-c {start|stop|restart}"
         ;;
 esac
 设置 status- c 为可执行脚本: 
 chmod 755 /etc/init.d/status-c
 设置 status- c 开机自启: 
 update-rc.d status-c defaults
 测试下脚本可用性:
 /etc/init.d/status-c start
 若不报错 echo Start ServerStatus Clients,则脚本可用:
 重启测试:
 reboot
 若想取消开机自启:
 update-rc.d -f status-c remove
 CentOS:
 前 4 步都和 Debian 一样,完成前 4 步后,编辑 rc.local
 vi /etc/rc.d/rc.local
 在此文件末尾新开一行加上如下命令:
 /etc/init.d/status-c start
 给权限,重启测试:
 chmod +x /etc/rc.d/rc.local
 reboot

 


为什么会有ServerStatus中文版:

  • 有些功能确实没用
  • 原版本部署,英文说明复杂
  • 不符合中文版的习惯
  • 没有一次又一次的轮子,哪来如此优秀的云探针

相关开源项目,感谢:

附件-github项目zip