pull/2/merge
dovela 2018-06-26 16:40:06 +00:00 committed by GitHub
commit f13ddab234
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 176 additions and 222 deletions

135
README.md
View File

@ -1,122 +1,27 @@
# ServerStatus中文版: # ServerStatus1Click
* ServerStatus中文版是一个酷炫高逼格的云探针、云监控、服务器云监控、多服务器探针~。 ## 说明
* 在线演示https://tz.cloudcpp.com 客户端源码fork自@cppla一键脚本自制
<br>ServerStatus客户端的一键安装脚本只需输入必要数据即可全自动安装并启动脚本只需运行一次。
<br>脚本在centos7上测试通过其他发行版未测试。
<br>理论上其他版本linux也可使用请测试通过后提issue谢谢。
<br>欢迎star、fork本脚本不定时更新不定时从@cppla处合并新版本ServerStatus源码。
<br>不支持window各版本
# 目录介绍: ## 使用教程
````
wget -N --no-check-certificate https://raw.githubusercontent.com/dovela/ServerStatus/master/ServerStatus1Click.sh
chmod +x ServerStatus1Click.sh
./ServerStatus1Click.sh
````
* autodeploy 自动部署脚本 ## 其他
* clients 客户端文件 默认远程端口35601安装依赖选项为安装git、lsof、psutil建议执行一次
* server 服务端文件
* web 网站文件
# 更新说明: ## 特别感谢
* cppla's ServerStatus: https://github.com/cppla/ServerStatus
* 20180626, 增加客户端自动部署脚本,代码:https://github.com/dovela/ServerStatus1Click * ServerStatus: https://github.com/BotoX/ServerStatus
* 20180314, 调整前端置默认密码为设置ip和user即可上线      
* 20180312, 加入失联(被照顾)检测【正常MH361, 屏蔽MH370】校准虚拟化(container)流量统计异常      
* 20170807, 更新平均1515负载
* 20170607, 去掉无用的IPV6信息增加服务器总流量监控        
# 自动部署:
【服务端】:暂无
【客户端】:
```bash
wget -N --no-check-certificate https://raw.githubusercontent.com/cppla/ServerStatus/master/autodeploy/client-auto.sh
chmod +x client-auto.sh
./client-auto.sh
```
# 手动安装教程:
【克隆代码】:
```
git clone https://github.com/cppla/ServerStatus.git
```
【服务端配置】服务端程序在ServerStatus/web下:
一、生成服务端程序
```
cd ServerStatus/server
make
./sergate
```
如果没错误提示OKctrl+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为普通linuxclient-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 &
# 为什么会有ServerStatus中文版
* 有些功能确实没用
* 原版本部署,英文说明复杂
* 不符合中文版的习惯
* 没有一次又一次的轮子,哪来如此优秀的云探针
# 相关开源项目,感谢:
* ServerStatushttps://github.com/BotoX/ServerStatus
* mojeda: https://github.com/mojeda * mojeda: https://github.com/mojeda
* mojeda's ServerStatus: https://github.com/mojeda/ServerStatus * mojeda's ServerStatus: https://github.com/mojeda/ServerStatus
* BlueVM's project: http://www.lowendtalk.com/discussion/comment/169690#Comment_169690 * BlueVM's project: http://www.lowendtalk.com/discussion/comment/169690#Comment_169690
* 参考了ToyoDAdoubi的一键脚本: https://github.com/ToyoDAdoubi/doubi

145
ServerStatus1Click.sh Normal file
View File

@ -0,0 +1,145 @@
#!/bin/bash
#=================================================
# System Required: CentOS 6+/Debian 6+/Ubuntu 14.04+/others(test)
# Description: Auto-install the ServerStatus Client
# Version: 1.0.2
# Author: dovela
#=================================================
check_sys(){
if [[ -f /etc/redhat-release ]]; then
release="centos"
elif cat /etc/issue | grep -q -E -i "debian"; then
release="debian"
elif cat /etc/issue | grep -q -E -i "ubuntu"; then
release="ubuntu"
elif cat /etc/issue | grep -q -E -i "centos|red hat|redhat"; then
release="centos"
elif cat /proc/version | grep -q -E -i "debian"; then
release="debian"
elif cat /proc/version | grep -q -E -i "ubuntu"; then
release="ubuntu"
elif cat /proc/version | grep -q -E -i "centos|red hat|redhat"; then
release="centos"
fi
bit=`uname -m`
}
centos_yum(){
yum install -y epel-release && yum clean all && yum update
yum install -y git lsof python-pip gcc python-devel
}
debian_apt(){
apt-get install -y git lsof python-setuptools python-dev build-essential python-pip
}
install_sss(){
clear
stty erase '^H' && read -p " 服务端地址:" sserver
stty erase '^H' && read -p " 远程端口默认35601:" sport
[[ -z ${sport} ]] && sport="35601"
stty erase '^H' && read -p " 客户端username:" suser
stty erase '^H' && read -p " 客户端password:" spasswd
clear
git clone https://github.com/dovela/ServerStatus.git
rm -rf oneclick.sh
echo 'ServerStatus客户端安装完成'
cd ServerStatus/clients
sed -i -e "s/sserver/$sserver/g" client-linux.py
sed -i -e "s/sport/$sport/g" client-linux.py
sed -i -e "s/suser/$suser/g" client-linux.py
sed -i -e "s/spasswd/$spasswd/g" client-linux.py
sed -i -e "s/sserver/$sserver/g" client-psutil.py
sed -i -e "s/sport/$sport/g" client-psutil.py
sed -i -e "s/suser/$suser/g" client-psutil.py
sed -i -e "s/spasswd/$spasswd/g" client-psutil.py
clear
echo ' ServerStatus客户端配置完成请进行下一步'
echo ' 1. 运行 client-linux'
echo ' 2. 运行 client-psutil'
stty erase '^H' && read -p " 请输入数字 [1-2]:" num
case "$num" in
1)
run_linux
;;
2)
run_psutil
;;
esac
}
delete_sss(){
kill -9 $(lsof -i:35601 |awk '{print $2}' | tail -n 1)
rm -rf ServerStatus
}
run_linux(){
nohup python client-linux.py >> serverstatus.log 2>&1 &
cd ../..
echo 'ServerStatus-linux客户端已开始运行'
}
run_psutil(){
nohup python client-psutil.py >> serverstatus.log 2>&1 &
cd ../..
echo 'ServerStatus-psutil客户端已开始运行'
}
stop_client(){
kill -9 $(lsof -i:35601 |awk '{print $2}' | tail -n 1)
}
install_env(){
clear
if [[ ${release} == "centos" ]]; then
centos_yum
else
debian_apt
fi
pip install --upgrade
pip install psutil
echo '依赖环境安装完成,请再次运行脚本'
}
clear
check_sys
[ $(id -u) != "0" ] && echo -e "Error: You must be root to run this script" && exit 1
echo -e " 默认端口35601出现问题请在 https://github.com/dovela/ServerStatus1Click 处提issue
————————————
1.首次安装并启动 ServerStatus客户端
2.运行 client_linux
3.运行 client_psutil
4.停止运行
5.首次安装linux依赖直接安装失败请执行
6.卸载ServerStatus
————————————
输入数字开始或ctrl + c退出
"
echo && stty erase '^H' && read -p " 请输入数字[1-6]:" num
case "$num" in
1)
install_sss
;;
2)
cd ServerStatus/clients
run_linux
;;
3)
cd ServerStatus/clients
run_psutil
;;
4)
stop_client
;;
5)
install_env
;;
6)
delete_sss
;;
*)
echo -e "${Error} 请输入正确的数字 [1-5]!"
;;
esac

View File

@ -1,99 +0,0 @@
#!/bin/bash
# author: https://github.com/dovela/ServerStatus1Click
# 支持操作系统centos,debian,ubuntu,redhat 其它未测试
# 时间: 20180626
[ $(id -u) != "0" ] && { echo "Error: You must be root to run this script"; exit 1; }
install_sss(){
clear
stty erase '^H' && read -p " 服务端地址:" sserver
stty erase '^H' && read -p " 客户端username:" suser
stty erase '^H' && read -p " 客户端password:" spasswd
clear
git clone https://github.com/dovela/ServerStatus.git
rm -rf oneclick.sh
echo 'ServerStatus客户端安装完成'
cd ServerStatus/clients
sed -i -e "s/sserver/$sserver/g" client-linux.py
sed -i -e "s/suser/$suser/g" client-linux.py
sed -i -e "s/spasswd/$spasswd/g" client-linux.py
sed -i -e "s/sserver/$sserver/g" client-psutil.py
sed -i -e "s/suser/$suser/g" client-psutil.py
sed -i -e "s/spasswd/$spasswd/g" client-psutil.py
clear
echo ' ServerStatus客户端配置完成请进行下一步'
echo ' 1. 运行 client-linux'
echo ' 2. 运行 client-psutil'
stty erase '^H' && read -p " 请输入数字 [1-2]:" num
case "$num" in
1)
run_linux
;;
2)
run_psutil
;;
esac
}
run_linux(){
nohup python client-linux.py >> serverstatus.log 2>&1 &
cd ../..
echo 'ServerStatus-linux客户端已开始运行'
}
run_psutil(){
nohup python client-psutil.py >> serverstatus.log 2>&1 &
cd ../..
echo 'ServerStatus-psutil客户端已开始运行'
}
install_env(){
clear
yum install -y git lsof
apt-get install -y git lsof
yum -y install epel-release
yum clean all
yum -y install python-pip gcc python-devel
apt-get -y install python-setuptools python-dev build-essential python-pip
pip install --upgrade
pip install psutil
clear
echo '依赖环境安装完成,请再次运行脚本'
}
clear
echo -e " 注意此脚本基于centos7编写默认端口35601出现问题请在 @dovela 处提issue
————————————
1.首次安装并启动 ServerStatus客户端
2.运行 client_linux
3.运行 client_psutil
4.停止运行
5.首次安装依赖,直接安装失败请执行
————————————
输入数字开始或ctrl + c退出
"
echo && stty erase '^H' && read -p " 请输入数字[1-5]:" num
case "$num" in
1)
install_sss
;;
2)
cd ServerStatus/clients
run_linux
;;
3)
cd ServerStatus/clients
run_psutil
;;
4)
kill -9 $(lsof -i:35601 |awk '{print $2}' | tail -n 1)
;;
5)
install_env
;;
*)
echo -e "${Error} 请输入正确的数字 [1-5]!"
;;
esac

View File

@ -5,10 +5,10 @@
# 时间: 20180312 # 时间: 20180312
SERVER = "127.0.0.1" SERVER = "sserver"
PORT = 35601 PORT = sport
USER = "s01" USER = "suser"
PASSWORD = "USER_DEFAULT_PASSWORD" PASSWORD = "spasswd"
INTERVAL = 1 #更新间隔 INTERVAL = 1 #更新间隔

View File

@ -5,10 +5,10 @@
# 支持操作系统: Linux, Windows, OSX, Sun Solaris, FreeBSD, OpenBSD and NetBSD, both 32-bit and 64-bit architectures # 支持操作系统: Linux, Windows, OSX, Sun Solaris, FreeBSD, OpenBSD and NetBSD, both 32-bit and 64-bit architectures
# 时间: 20180312 # 时间: 20180312
SERVER = "127.0.0.1" SERVER = "sserver"
PORT = 35601 PORT = sport
USER = "s01" USER = "suser"
PASSWORD = "USER_DEFAULT_PASSWORD" PASSWORD = "spasswd"
INTERVAL = 1 # 更新间隔 INTERVAL = 1 # 更新间隔

3
run.sh Normal file
View File

@ -0,0 +1,3 @@
kill -9 $(lsof -i:35601 |awk '{print $2}' | tail -n 1)
nohup ./server/sergate --config=server/config.json --web-dir=$(dirname $0 | pwd)/web/ >> run.log 2>&1 &
cd ..