mirror of https://github.com/cppla/ServerStatus
Merge c75818fcfe
into 55eb0a3cce
commit
9ca14fd5be
135
README.md
135
README.md
|
@ -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 客户端文件
|
||||
* server 服务端文件
|
||||
* web 网站文件
|
||||
## 其他
|
||||
默认远程端口35601,安装依赖选项为安装git、lsof、psutil,建议执行一次
|
||||
|
||||
# 更新说明:
|
||||
|
||||
* 20180626, 增加客户端自动部署脚本,代码:https://github.com/dovela/ServerStatus1Click
|
||||
* 20180314, 调整前端,置默认密码为,设置ip和user即可上线
|
||||
* 20180312, 加入失联(被照顾)检测【正常:MH361, 屏蔽:MH370】,校准虚拟化(container)流量统计异常
|
||||
* 20170807, 更新平均1,5,15负载
|
||||
* 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
|
||||
```
|
||||
如果没错误提示,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 &
|
||||
|
||||
# 为什么会有ServerStatus中文版:
|
||||
|
||||
* 有些功能确实没用
|
||||
* 原版本部署,英文说明复杂
|
||||
* 不符合中文版的习惯
|
||||
* 没有一次又一次的轮子,哪来如此优秀的云探针
|
||||
|
||||
# 相关开源项目,感谢:
|
||||
|
||||
* ServerStatus:https://github.com/BotoX/ServerStatus
|
||||
## 特别感谢
|
||||
* cppla's ServerStatus: https://github.com/cppla/ServerStatus
|
||||
* ServerStatus: https://github.com/BotoX/ServerStatus
|
||||
* mojeda: https://github.com/mojeda
|
||||
* mojeda's ServerStatus: https://github.com/mojeda/ServerStatus
|
||||
* BlueVM's project: http://www.lowendtalk.com/discussion/comment/169690#Comment_169690
|
||||
* 参考了ToyoDAdoubi的一键脚本: https://github.com/ToyoDAdoubi/doubi
|
||||
|
|
|
@ -0,0 +1,170 @@
|
|||
#!/bin/bash
|
||||
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
|
||||
export PATH
|
||||
|
||||
#=================================================
|
||||
# System Required: CentOS 6+/Debian 6+/Ubuntu 14.04+/others(test)
|
||||
# Description: Auto-install the ServerStatus Client
|
||||
# Version: 1.1.1
|
||||
# Author: dovela
|
||||
#=================================================
|
||||
|
||||
file="/home/ServerStatus"
|
||||
status_linux="/home/ServerStatus/clients/client-linux.py"
|
||||
status_psutil="/home/ServerStatus/clients/client-psutil.py"
|
||||
client_log_file="/home/ServerStatus/client.log"
|
||||
|
||||
check_pid(){
|
||||
PID=`lsof -i:$(awk '{if($0~"PORT") print}' ${status_linux} | awk '{print $3}' | head -n 1) |awk '{print $2}' | tail -n 1`
|
||||
}
|
||||
|
||||
get_para(){
|
||||
server=`awk '{if($0~"SERVER") print}' ${status_linux} | sed 's/"/ /g' | awk '{print $3}' | head -n 1`
|
||||
port=`awk '{if($0~"PORT") print}' ${status_linux} | awk '{print $3}' | head -n 1`
|
||||
user=`awk '{if($0~"USER") print}' ${status_linux} | sed 's/"/ /g' | awk '{print $3}' | head -n 1`
|
||||
passwd=`awk '{if($0~"PASSWORD") print}' ${status_linux} | sed 's/"/ /g' | awk '{print $3}' | head -n 1`
|
||||
p_server=`awk '{if($0~"SERVER") print}' ${status_psutil} | sed 's/"/ /g' | awk '{print $3}' | head -n 1`
|
||||
p_port=`awk '{if($0~"PORT") print}' ${status_psutil} | awk '{print $3}' | head -n 1`
|
||||
p_user=`awk '{if($0~"USER") print}' ${status_psutil} | sed 's/"/ /g' | awk '{print $3}' | head -n 1`
|
||||
p_passwd=`awk '{if($0~"PASSWORD") print}' ${status_psutil} | sed 's/"/ /g' | awk '{print $3}' | head -n 1`
|
||||
}
|
||||
|
||||
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
|
||||
cd /home && git clone https://github.com/cppla/ServerStatus.git && cd ServerStatus && rm -rf ServerStatus1Click.sh
|
||||
echo 'ServerStatus客户端安装完成'
|
||||
get_para
|
||||
sed -i -e "s/${server}/${sserver}/g" ${status_linux}
|
||||
sed -i -e "s/${port}/${sport}/g" ${status_linux}
|
||||
sed -i -e "s/${user}/${suser}/g" ${status_linux}
|
||||
sed -i -e "s/${passwd}/${spasswd}/g" ${status_linux}
|
||||
sed -i -e "s/${p_server}/${sserver}/g" ${status_psutil}
|
||||
sed -i -e "s/${p_port}/${sport}/g" ${status_psutil}
|
||||
sed -i -e "s/${p_user}/${suser}/g" ${status_psutil}
|
||||
sed -i -e "s/${p_passwd}/${spasswd}/g" ${status_psutil}
|
||||
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(){
|
||||
check_pid
|
||||
[[ ! -z ${PID} ]] && kill -9 ${PID}
|
||||
rm -rf ${file}
|
||||
echo -e 'ServerStatus客户端已卸载!'
|
||||
}
|
||||
|
||||
run_linux(){
|
||||
check_pid
|
||||
[[ ! -z ${PID} ]] && echo -e 'ServerStatus 客户端运行中!' && exit 1
|
||||
nohup python ${status_linux} > ${client_log_file} 2>&1 &
|
||||
echo -e 'ServerStatus-linux客户端已开始运行'
|
||||
}
|
||||
|
||||
run_psutil(){
|
||||
check_pid
|
||||
[[ ! -z ${PID} ]] && echo -e 'ServerStatus 客户端运行中!' && exit 1
|
||||
nohup python ${status_psutil} > ${client_log_file} 2>&1 &
|
||||
echo -e 'ServerStatus-psutil客户端已开始运行'
|
||||
}
|
||||
|
||||
stop_client(){
|
||||
check_pid
|
||||
[[ -z ${PID} ]] && echo -e "Error, ServerStatus 客户端没有运行 !" && exit 1
|
||||
kill -9 ${PID}
|
||||
}
|
||||
|
||||
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 " 出现问题请在 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)
|
||||
run_linux
|
||||
;;
|
||||
3)
|
||||
run_psutil
|
||||
;;
|
||||
4)
|
||||
stop_client
|
||||
;;
|
||||
5)
|
||||
install_env
|
||||
;;
|
||||
6)
|
||||
delete_sss
|
||||
;;
|
||||
*)
|
||||
echo -e "Error,请输入正确的数字 [1-6]!"
|
||||
;;
|
||||
esac
|
Loading…
Reference in New Issue