月下博客

『原创』多服务器 云探针、云监控 —— ServerStatus 一键管理脚本

本文最后更新于 2018年9月24日 14:10 可能会因为没有更新而失效。如已失效或需要修正,请留言!

最近有几个人给我推荐了一个可以监控多个服务器状态的软件 —— ServerStatus ,虽然搭建方法并不难,但是能懒就懒,所以脚本就出炉了。

Github:https://github.com/ToyoDAdoubiBackup/ServerStatus-Toyo

Github:https://github.com/tenyue/ServerStatus

示例网站:https://tz.toyoo.pw/

系统要求

CentOS 7 / Debian 7+ / Ubuntu 14.04 +

推荐 Debian 8 x64,这个是我一直使用的系统,我的脚本在这个系统上面出错率最低。

注意,既然是个 多服务器云监控程序,那么你肯定需要两个以上的服务器(其实一个也可以,客户端和服务端可以同时安装),一个服务器做服务端,脚本会自动安装Caddy并配置好HTTP服务的,然后接收各个客户端实时发来的信息并通过网站显示出来。

因为客户端每秒都会发送最新的信息给服务端,所以要保证客户端与服务端直接网络通常,否则网页显示会很抽风。

虽然客户端每秒都会发送信息到服务端,但是对流量消耗是很小的,毕竟每次发送的数据都只有几百或上千个字符。

ServerStatus 客户端需要 Python 2.7版本以上才可以正常运行,如果不是那么请升级(查看版本: python -V )。

注意:CentOS6 系统默认的Python版本是2.6,版本太低,使用客户端会出问题,请升级Python或者更换系统。

脚本版本

Ver: 1.0.15

安装步骤

执行下面的代码下载并运行脚本。

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/status.sh && chmod +x status.sh

下载脚本后,根据需要安装客户端或者服务端:

# 显示客户端管理菜单
bash status.sh c

# 显示服务端管理菜单
bash status.sh s

运行脚本后会出现脚本操作菜单,选择并输入 1 就会开始安装。

一开始会提示你输入服务端监听的端口,不懂请默认,如果你的要安装客户端的服务器中有NAT服务器,那么请考虑到NAT的端口范围。

简单步骤

首先安装服务端,安装过程中会提示:

是否由脚本自动配置HTTP服务(服务端的在线监控网站)[Y/n]
# 一开始会提示你输入网站服务器的域名和端口,如果没有域名可以直接回车代表使用 本机IP:8888。
# 如果你不懂,那就直接回车,如果你想用其他的HTTP服务自己配置,那么请输入 n 并回车。
# 注意,当你曾经安装过 服务端,同时没有卸载Caddy(HTTP服务),那么重新安装服务端的时候,请输入 n 并回车。

然后 添加或修改 初始示例的节点配置注意用户名每个节点配置都不能重复,其他的参数都无所谓了。

然后安装客户端,根据提示填写 服务端的IP 和前面添加/修改 对应的 节点用户名和密码(用于和服务端验证),然后启动就好了,有问题请贴出 详细步骤+日志(如果有)联系我。

使用说明

进入下载脚本的目录并运行脚本:

# 客户端管理菜单
./status.sh c
# 服务端管理菜单
./status.sh s

然后选择你要执行的选项即可。

ServerStatus 一键安装管理脚本 [vx.x.x]
-- Toyo | doub.io/shell-jc3 --

 0. 升级脚本
————————————
 1. 安装 服务端
 2. 更新 服务端
 3. 卸载 服务端
————————————
 4. 启动 服务端
 5. 停止 服务端
 6. 重启 服务端
————————————
 7. 设置 服务端配置
 8. 查看 服务端信息
 9. 查看 服务端日志
————————————
10. 切换为 客户端菜单

当前状态: 服务端 已安装 并 已启动

请输入数字 [0-10]:

其他操作

客户端:

点击展开 查看更多

启动:/etc/init.d/status-client start

停止:/etc/init.d/status-client stop

重启:/etc/init.d/status-client restart

查看状态:/etc/init.d/status-client status

服务端:

点击展开 查看更多

启动:/etc/init.d/status-server start

停止:/etc/init.d/status-server stop

重启:/etc/init.d/status-server restart

查看状态:/etc/init.d/status-server status

Caddy(HTTP服务):

点击展开 查看更多

启动:/etc/init.d/caddy start

停止:/etc/init.d/caddy stop

重启:/etc/init.d/caddy restart

查看状态:/etc/init.d/caddy status

Caddy配置文件:/usr/local/caddy/Caddyfile

默认脚本只能一开始安装的时候设置配置文件,更多的Caddy使用方法,可以参考这些教程:https://doub.io/search/caddy


安装目录:/usr/local/ServerStatus

网页文件:/usr/local/ServerStatus/web

配置文件:/usr/local/ServerStatus/server/config.json

客户端查看日志:tail -f tmp/serverstatus_client.log

服务端查看日志:tail -f /tmp/serverstatus_server.log

其他说明

我的修改版对单位进行了统一,这样避免用户识别混乱。

网络实时流量单位为:G=GB/s,M=MB/s,K=KB/s

服务器总流量单位为:T=TB,G=GB,M=MB,K=KB

修改网页标题或公告

如果要修改网页标题或者网页顶部公告内容,打开 /usr/local/ServerStatus/web/index.html 文件修改即可,很显眼。

CentOS7系统 负载显示异常的问题

CentOS7系统 默认可能没有安装 netstat 依赖,所以会造成IP检测(负载)出错,手动安装即可:  yum install net-tools -y

服务端网页显示异常,频繁开启/关闭

这种问题说明系统中的 Python版本低于 2.7(查看版本: python -V ),一般常见这种问题的都是 CentOS6 ,因为这个系统默认都是 Python2.6 版本,版本太低,使用客户端会出问题,请升级Python或者更换系统。

提示wget: unknown host “raw.githubusercontent.com” 之类的错误

点击展开 查看更多

这是无法解析我的域名,多半是DNS的问题,请更换DNS为谷歌DNS(以下两行一起复制 一起执行)。

echo -e "nameserver 8.8.8.8
nameserver 8.8.4.4" > /etc/resolv.conf

提示 wget: command not found 的错误

点击展开 查看更多

这是你的系统精简的太干净了,wget都没有安装,所以需要安装wget。

# CentOS系统:
yum install -y wget

# Debian/Ubuntu系统:
apt-get install -y wget

Caddy启动失败,打开 http://ip 显示的是 It works !

点击展开 查看更多

一些系统会自带 apache2 ,而 apache2 会占用80端口,导致Caddy无法绑定端口,所以只要关掉就好了。

netstat -lntp
# 我们可以通过这个命令查看是不是被其他软件占用了 80 端口。

不过 apache2 会默认开机自启动,如果不需要可以关闭自启动或者卸载 apache2 。

停止 Apache2

service apache2 stop
# 尝试使用上面这个关闭,如果没效果或者提示什么错误无法关闭,那就用下面这个强行关闭进程。
kill -9 $(ps -ef|grep "apache2"|grep -v "grep"|awk '{print $2}')

取消开机自启动

# CentOS 系统 #
chkconfig --del httpd
# Debian/Ubuntu 系统 #
update-rc.d -f apache2 remove

卸载 Apache2(卸载包括了取消开机启动,无需重复)

# CentOS 系统 #
yum remove httpd
# Debian/Ubuntu 系统 #
apt-get remove --purge apache2

关闭 Apache2后,就可以尝试启动 Caddy ,并试试能不能打开网页。

service caddy start

升级脚本

升级脚本只需要运行脚本,然后选择并输入 0 回车即可,会自动检测最新版本并下载,当然重新下载脚本文件也可以,会自动覆盖原文件。

更新日志

2018年09月24日,版本 v1.0.15

1. 新增 安装客户端时判断系统是否为:CentOS6,会提示你是否继续(CentOS6 默认是 Python 2.6,需要你手动升级为 Python 2.7 或更换系统)。

2. 优化 服务端安装(用于自动部署HTTP的域名和端口只会在你决定要自动部署后才会提示你输入)。

点击展开 查看更多

2018年09月21日,版本 v1.0.14

1. 修复 当节点信息中含有逗号时,无法修改的问题。

2018年09月06日,版本 v1.0.13

1. 新增 兼容旧客户端与服务端相关配置(新脚本客户端位置改了,服务端增加了个配置文件用于记录自定义监听端口配置)。

2. 新增 更新客户端或服务端时,将顺带更新服务脚本(避免出现脚本太旧或者手动更新脚本导致服务脚本没有更新)。

2018年09月06日,版本 v1.0.12

1. 新增 自定义服务端监听端口功能(服务端接收客户端消息的端口,NAT服务器可以用了)。

2. 新增 客户端与服务端更新版本功能(更新软件自身)。

3. 优化 客户端防火墙开放端口规则代码(以前是开放的进站端口,现在改为开发出站端口)。

2018年07月10日,版本 v1.0.11

1. 新增 升级脚本时,将一起升级服务脚本(Service)。

2017年10月31日,版本 v1.0.10

1.更新 脚本内 客户端下载链接(特么的我发现客户端的链接是错误的,怪不得还是Load负载为小数)。

2017年08月04日,版本 v1.0.9

1.更新 脚本内 逗比云地址(旧域名被墙,更换新域名)。

2017年04月29日,版本 v1.0.8

1. 更换 Web网页文件

—— 我fork了一份,改了改式样,去掉了黑白风格切换(黑的好丑),去掉了主机名设定,添加了顶部公告栏,修改了实时网速的单位等。

如果想要升级最新的 Web网页文件,那么请备份你的配置文件,然后重装服务端:

mv /usr/local/ServerStatus/server/config.json /usr/local/config.json

然后卸载服务端,安装服务端,安装完先停止服务端,然后恢复备份的配置文件:

mv /usr/local/config.json /usr/local/ServerStatus/server/config.json

2. 修复 卸载服务端失败的问题。

3. 移除 主机名设定。

2017年04月28日,版本 v1.0.7

1.新增 添加节点配置和修改节点配置 – 用户名时,会检测用户名是否已存在

2.修复 当安装客户端后,再去安装服务端会失败的问题。

3.修复 卸载服务端会把客户端一起删除的问题。

2017年04月28日,版本 v1.0.6

1.修复 一些BUGBUGBUGBUG。

2017年04月28日,版本 v1.0.5

1.修复 删除节点配置保存的问题。

2017年04月28日,版本 v1.0.4

1.修复 部分系统 服务端删除节点配置报错的问题(提示类似于 x+x 的错误)。

2017年04月28日,版本 v1.0.3

1.新增 安装服务端时,可跳过部署HTTP服务步骤(在线监控网站服务)。

2.修复 升级脚本的BUG。

2017年04月28日,版本 v1.0.2

1.修复 部分系统 服务端修改节点配置报错的问题(提示类似于 x+x 的错误)。

2017年04月28日,版本 v1.0.1

1.修复 部分系统缺少编译组件从而安装失败的问题(加上了编译全家桶)。

2017年04月27日,版本 v1.0.0

1. 推出 正式版。

转载请超链接注明:月下博客 » 『原创』多服务器 云探针、云监控 —— ServerStatus 一键管理脚本
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!