From 91673e3ab18c9ada89f7e8f4de031cd64dddb7ef Mon Sep 17 00:00:00 2001 From: dovela <33590269+dovela@users.noreply.github.com> Date: Sat, 30 Jun 2018 15:55:01 +0800 Subject: [PATCH 1/2] Delete README.md --- README.md | 122 ------------------------------------------------------ 1 file changed, 122 deletions(-) delete mode 100644 README.md diff --git a/README.md b/README.md deleted file mode 100644 index 807df1c..0000000 --- a/README.md +++ /dev/null @@ -1,122 +0,0 @@ -# ServerStatus中文版: - -* ServerStatus中文版是一个酷炫高逼格的云探针、云监控、服务器云监控、多服务器探针~。 -* 在线演示:https://tz.cloudcpp.com - -# 目录介绍: - -* autodeploy 自动部署脚本 -* clients 客户端文件 -* server 服务端文件 -* web 网站文件 - -# 更新说明: - -* 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 -* 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 From c75818fcfe5c46ded9e5fa71a47058195307888b Mon Sep 17 00:00:00 2001 From: dovela <33590269+dovela@users.noreply.github.com> Date: Sat, 30 Jun 2018 15:55:57 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E6=96=87?= =?UTF-8?q?=E4=BB=B6=EF=BC=8C=E5=88=86=E7=A6=BB=E4=B8=80=E9=94=AE=E8=84=9A?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 27 +++++++ ServerStatus1Click.sh | 170 ++++++++++++++++++++++++++++++++++++++++++ run.sh | 3 + 3 files changed, 200 insertions(+) create mode 100644 README.md create mode 100644 ServerStatus1Click.sh create mode 100644 run.sh diff --git a/README.md b/README.md new file mode 100644 index 0000000..9ff6a0f --- /dev/null +++ b/README.md @@ -0,0 +1,27 @@ +# ServerStatus1Click + +## 说明 +客户端源码fork自@cppla,一键脚本自制 +
ServerStatus客户端的一键安装脚本,只需输入必要数据即可全自动安装并启动,脚本只需运行一次。 +
脚本在centos7上测试通过,其他发行版未测试。 +
理论上其他版本linux也可使用,请测试通过后提issue,谢谢。 +
欢迎star、fork,本脚本不定时更新,不定时从@cppla处合并新版本ServerStatus源码。 +
不支持window各版本 + +## 使用教程 +```` +wget -N --no-check-certificate https://raw.githubusercontent.com/dovela/ServerStatus/master/ServerStatus1Click.sh +chmod +x ServerStatus1Click.sh +./ServerStatus1Click.sh +```` + +## 其他 +默认远程端口35601,安装依赖选项为安装git、lsof、psutil,建议执行一次 + +## 特别感谢 +* 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 diff --git a/ServerStatus1Click.sh b/ServerStatus1Click.sh new file mode 100644 index 0000000..a57abb1 --- /dev/null +++ b/ServerStatus1Click.sh @@ -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 diff --git a/run.sh b/run.sh new file mode 100644 index 0000000..5fbaeac --- /dev/null +++ b/run.sh @@ -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 ..