本站将不再提供免翻镜像域名,有能力的请访问:[doub.io],该域名永不更换。[直连访问方法]
投稿文章 | 广告合作 | Telegram 群组 / 公告频道 / 使用教程

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

Shell脚本 Toyo 277评论
文章目录
[显示]
本文最后更新于 2018年7月10日 10:56 可能会因为没有更新而失效。如已失效或需要修正,请留言!

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

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

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

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

系统要求

CentOS 7 / Debian 7+ / Ubuntu 14.04 +

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

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

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

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

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

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

脚本版本

Ver: 1.0.11

安装步骤

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

wget -N --no-check-certificate https://softs.loan/Bash/status.sh && chmod +x status.sh

# 如果上面这个脚本无法下载,尝试使用备用下载:
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/status.sh && chmod +x status.sh

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

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

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

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

一开始会提示你输入网站服务器的域名和端口,如果没有域名可以直接回车代表使用 本机IP:8888

简单步骤

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

是否由脚本自动配置HTTP服务(服务端的在线监控网站)[Y/n]

# 如果你不懂,那就直接回车,如果你想用其他的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. 切换为 客户端菜单

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

请输入数字 [0-9]:

其他操作

客户端:

点击展开 查看更多

服务端:

点击展开 查看更多

Caddy(HTTP服务):

点击展开 查看更多


安装目录:/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 “softs.loan” 之类的错误

点击展开 查看更多

提示 wget: command not found 的错误

点击展开 查看更多

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

点击展开 查看更多

升级脚本

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

更新日志

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.修复 卸载服务端会把客户端一起删除的问题。

点击展开 查看更多

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

赞 (94)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(277)个小伙伴在吐槽
  1. 安装好服务端后如何访问?
    xingyun2018-08-08 00:39 回复
    • 如果你安装是一路回车,那就是 http://ip:8888
      Toyo2018-08-08 00:55 回复
  2. 请问多域名如何配置,同一个网站,用CF的CNAME解析后访问不了第二个域名
    熊三2018-08-02 02:08 回复
    • 请详细说明。
      Toyo2018-08-02 14:27 回复
      • centos7X64中,serverstatus默认域名http://n.a.com:35604/(客户端端口已改,正常显示)。DNS用的CF,CNAME解析到http://n.b.com:35604/ 却打不开,网页提示 404 Site n.b.com:35604 is not served on this interface
        熊三2018-08-02 15:35 回复
        • 所以你为什么不在 Caddy 中绑定两个域名(复制一份配置内容,追加到配置文件尾部,只修改域名即可),然后两个域名都解析到该服务器IP呢?例如:
          http://n.a.com:35604 {
             ...
          }
          http://n.b.com:35604 {
             ...
          }
          
          Toyo2018-08-02 18:32 回复
          • 谢啦大佬,正是需要的,不知道格式
            熊三2018-08-02 19:56 回复
          • 那像这种带端口的能上SSL吗
            熊三2018-08-02 19:57 回复
            • SSL 和端口没关系,之所以都说 443,是因为 443 是指定的SSL(HTTPS)端口,也就是浏览器访问 https://doub.io/shell-jc3/ ,实际上访问的是 https://doub.io:443/shell-jc3/,不过你看不到罢了,如果端口不一样,你访问的时候需要加上端口号才行。否则浏览器一律默认 443 .
              Toyo2018-08-02 20:07 回复
  3. --2018-07-28 19:55:34-- https://github.com/ToyoDAdoubi/ServerStatus-Toyo/archive/master.zip Resolving github.com (github.com)... 13.250.177.223, 13.229.188.59, 52.74.223.119 Connecting to github.com (github.com)|13.250.177.223|:443... connected. Unable to establish SSL connection. [错误] ServerStatus 服务端下载失败 ! 即使更改dns后,还是这样,国内100M电信C7X64
    熊三2018-07-28 19:58 回复
    • 国内对 Github 都做了干扰或限速处理,这点很蛋疼,然而我的文件都是存在 Github 上面的。
      Toyo2018-07-29 14:06 回复
      • 如果国内中转脚本文件地址需要修改哪里
        熊三2018-08-01 21:38 回复
        • 脚本内所有 Github 地址全都要修改替换。
          Toyo2018-08-01 23:52 回复
  4. 客户端提示 Connecting... You have been banned for 1 minute (Wrong username and/or password. 但账号密码我确定是对的
    Super。chen2018-07-18 18:29 回复
    • 这。。。你只能再详细检查一下了。
      Toyo2018-07-18 22:36 回复
      • 客户端运行脚本按7查看 客户端信息 能显示出服务器地址及端口号和用户名,密码一栏是空的,是这个原因吗???我是按照脚本设置信息的啊。。求大神指教哪里出问题了
        Super.chen2018-07-18 23:14 回复
      • 刚刚找到问题了,用Xshell运行输入的密码不识别。我是notepad++修改status-client.py里的密码。再上传到目录了。重启就ok了。感谢大神分享这么好的软件
        Super.chen2018-07-18 23:20 回复
  5. caddy总是无法启动,用的搬瓦工的服务器,cen6-7 debian7-9都试了,不是端口问题,找不到原因
    ● caddy.service - LSB: The HTTP/2 web server with automatic HTTPS
       Loaded: loaded (/etc/init.d/caddy; generated; vendor preset: enabled)
       Active: active (exited) since Wed 2018-07-18 11:13:11 CST; 11s ago
         Docs: man:systemd-sysv-generator(8)
      Process: 1411 ExecStop=/etc/init.d/caddy stop (code=exited, status=1/FAILURE)
      Process: 1419 ExecStart=/etc/init.d/caddy start (code=exited, status=0/SUCCESS)
    
    Jul 18 11:13:09 debian systemd[1]: caddy.service: Control process exited, code=exited status=1
    Jul 18 11:13:09 debian systemd[1]: Stopped LSB: The HTTP/2 web server with automatic HTTPS.
    Jul 18 11:13:09 debian systemd[1]: caddy.service: Unit entered failed state.
    Jul 18 11:13:09 debian systemd[1]: caddy.service: Failed with result 'exit-code'.
    Jul 18 11:13:09 debian systemd[1]: Starting LSB: The HTTP/2 web server with automatic HTTPS...
    Jul 18 11:13:11 debian caddy[1419]: [错误] Caddy 启动失败 !
    Jul 18 11:13:11 debian systemd[1]: Started LSB: The HTTP/2 web server with automatic HTTPS.
    
    fangtoushi2018-07-18 11:18 回复
    • 查看日志:
      cat /tmp/caddy.log
      
      Toyo2018-07-18 22:38 回复
      • error inspecting server blocks: duplicate site key: http://:111 大佬这个百度不到解决方法
        fangtoushi2018-07-22 07:43 回复
        • 额,这种问题我也没有遇到过,不清楚日志里说的[site key]具体是什么。。
          Toyo2018-07-22 11:31 回复
      • 突然试了下Debian 7 不带x64就可以了,是因为64系统的原因吗?
        fangtoushi2018-07-22 08:13 回复
  6. 是不是一頁只能顯示32個,有沒有方法可以顯示更多?
    Lobert2018-07-07 23:58 回复
  7. 大佬,这个搭建好了用手机打开网页看服务器状态时是精简版,不会显示位置和在线时长等,怎么修改让手机也可以跟电脑端一样显示全部消息的呀,大佬详细教程更新下行嘛,谢谢大佬
    BINYE2018-06-30 12:37 回复
    • 手机横屏或者手机浏览器设置为电脑版。
      因为手机屏幕有限,所以只能精简处理,每个人需求都不一样,有的人手机就想要完整的,有的人手机就只是看看大概。
      或者你可以修改 CSS 文件,删掉自适应代码:
      打开 /usr/local/ServerStatus/web/css/light.css 文件,删除文件内最后面以下格式的五个段落:
      @media only screen and (max-width: XXXpx) {
      	...
      	...
      }
      
      保存后,强制刷新页面或者清理浏览器缓存即可看到完整版效果。
      Toyo2018-07-01 09:43 回复
      • 谢谢大佬。问一下,大佬的网站的邮件功能是没开还是什么,大佬回复评论留言收不到邮件信息呢
        BINYE2018-07-01 11:42 回复
        • 评论邮件通知功能我没开,因为没有邮箱服务。
          Toyo2018-07-01 14:46 回复
    • 怎么在网上查看监控信息呢 打开什么网站还是怎么弄我是小白
      2018-07-19 10:03 回复
      • 搭建 ServerStatus 时,就会让你搭建网页呀,一路回车的话就是默认帮你搭建配置好。默认是 ip:8888
        Toyo2018-07-19 11:09 回复
  8. 原作者跪掉了?
    Once2018-06-28 18:02 回复
  9. 请问,检测中的负载是什么意思呢?
    吴铖2018-06-27 18:01 回复
    • 当前链接该服务器的IP数。
      Toyo2018-06-28 10:00 回复
  10. 想要支持32个以上服务器的朋友,请搭建好之后去/usr/local/ServerStatus/server/src/里修改network.h里面的NET_MAX_CLIENTS = 32,把32修改成你要的数字,然后回到/usr/local/ServerStatus/server/obj/里把里面已经编译出来的.o文件都删了,最后去/usr/local/ServerStatus/server/里面重新执行make编译一遍,再service status-server restart,去看网页就可以超过32个限制了,感谢逗比提供的这么多好脚本,也希望能帮到大家
    科科2018-06-12 12:06 回复
    • 嗯,我顺便去 Github 把这个参数从 32 改成了 64 ,应该满足绝大部分人的使用了。
      Toyo2018-06-13 08:34 回复
      • 哈哈是啊是啊,我就是改了64,虽然并没有那么多机子,感谢你的脚本~希望之后可以出能支持gcm加密方式的账号监控,这样就更全面啦~
        科科2018-06-13 12:54 回复
  11. 搭建好以后,只要访问页面,服务端日志就会抛出 [net_ban]: banned 'xxx.xxx.xxx.xxx' for 1 minute (You're an idiot, go away.) 试了原版,tengyue以及站长的版本,均存在这一问题,求问如何解决啊= =
    ChinaXRY2018-06-08 08:50 回复
    • 不清楚。。。你可能需要去原版的 Github 询问作者,因为这明显是作者搞得。
      Toyo2018-06-08 09:26 回复
  12. 大佬, 最近研究这个 好是好, 就是不能查看以前的记录,这只能查看及时的状态,增加数据库的修改. 大佬有什么办法吗? 如果有请告知一下,谢谢大佬.
    heyuhenry2018-05-29 15:08 回复
    • 这个程序功能有限,目的就是为了可以方便的查看服务器实时情况,你要的功能可能需要其他服务器监控软件。
      Toyo2018-05-31 08:14 回复
1 2 3