云探针在mjj圈比较流行,云探针搭建脚本也五花八门,但很多脚本都因为过时而无法使用。这里分享一个CokeMine作者开源在github上的脚本,实测服务端和客户端都能搭建成功。

要求

系统要求:Centos 7、Debian 7+、Ubuntu 14+

安装

下载脚本

wget https://raw.githubusercontent.com/CokeMine/ServerStatus-Hotaru/master/status.sh && chmod +x status.sh

下载脚本后,根据你要将当前服务器作为客户端还是服务端选择命令:

客户端

bash status.sh c

服务端

bash status.sh s

安装说明

服务端

ServerStatus 一键安装管理脚本 [v0.0.1]
  -- Toyo | doub.io/shell-jc3 --
  --    Modify by CokeMine    --
  0. 升级脚本
 ————————————
  1. 安装 服务端
  2. 更新 服务端
  3. 卸载 服务端
————————————
  4. 启动 服务端
  5. 停止 服务端
  6. 重启 服务端
————————————
  7. 设置 服务端配置
  8. 查看 服务端信息
  9. 查看 服务端日志
————————————
 10. 切换为 客户端菜单

当前状态:服务端 未安装

请输入数字 [0-10]:

输入 1 开始安装服务端,这里会第一次要求输入端口,这个端口是监听端口,用来和客户端进行通信的端口,默认35601就行。按照要求输入端口后脚本会安装一些配置软件。然后询问你是否由脚本自动配置HTTP服务,输入Y以自动配置HTTP服务,然后输入网页的ip和端口,ip不需要特意改成域名,直接回车就行。例如我的服务器ip为192.168.1.1,端口是8888,那么搭建完成后浏览器访问:192.168.1.1:8888 就能看到效果了。

服务端安装成功后效果:

[信息] ServerStatus 服务端服务管理脚本下载完成 !
[信息] 开始写入 配置文件...
[信息] 开始设置 iptables防火墙...
[信息] 开始添加 iptables防火墙规则...
[信息] 开始保存 iptables防火墙规则...
[信息] 所有步骤 安装完毕,开始启动...
[信息] ServerStatus Server 启动成功[监听端口:35601] !

浏览器访问:192.168.1.1:8888,上面有一个示例的客户端,位置香港,因为是示例并不实际存在,所以是离线状态。

客户端

ServerStatus 一键安装管理脚本 [v0.0.1]
  -- Toyo | doub.io/shell-jc3 --
  --    Modify by CokeMine    --
  0. 升级脚本
 ————————————
  1. 安装 客户端
  2. 更新 客户端
  3. 卸载 客户端
————————————
  4. 启动 客户端
  5. 停止 客户端
  6. 重启 客户端
————————————
  7. 设置 客户端配置
  8. 查看 客户端信息
  9. 查看 客户端日志
————————————
 10. 切换为 服务端菜单

 当前状态: 客户端 未安装

 请输入数字 [0-10]:

输入1开始安装客户端,然后输入安装了服务端的vps的ip和监听端口,接安装服务端的例子,这里的ip就是192.168.1.1,监听端口35601。然后配置用户名和密码。一个服务端可以监听多个客户端,要确保每个客户端的用户名都不一样。用户名相当于客户端的id,用以识别区分客户端,必须唯一。这里我将用户名设置为user01,密码为1234。安装成功后:

[信息] ServerStatus 客户端服务管理脚本下载完成 !
[信息] 开始写入 配置...
[信息] 开始设置 iptables防火墙...
[信息] 开始添加 iptables防火墙规则...
[信息] 开始保存 iptables防火墙规则...
[信息] 所有步骤 安装完毕,开始启动...
[信息] ServerStatus Client 启动成功 !

连接客户端和服务端

客户端和服务端安装成功后,还需要配置两者已正常监听。我们回到服务端vps,重新执行命令:

bash status.sh s

输入7开始在服务端配置客户端信息。

你要做什么?
  
  1. 添加 节点配置
  2. 删除 节点配置
————————
  3. 修改 节点配置 - 节点用户名
  4. 修改 节点配置 - 节点密码
  5. 修改 节点配置 - 节点名称
  6. 修改 节点配置 - 节点虚拟化
  7. 修改 节点配置 - 节点位置
  8. 修改 节点配置 - 节点区域
  9. 修改 节点配置 - 全部参数
————————
  10. 启用/禁用 节点配置
————————
 11. 修改 服务端监听端口

(默认: 取消):

输入1开始添加节点配置,节点就是客户端。要输入的客户端用户名和密码就是刚才客户端设置的用户和密码,之后依次输入节点名、虚拟类型、节点位置[location]和节点位置[region]。这些内容对应关系我在下方截图已标出。
云探针设置

现在你已成功开始监听一台服务器了。在线时间、负载、网络上传/下载、流量消耗、CPU、RAM和ROM都是自动实时显示的。需要注意这里的流量是自从开机以来总上传/下载的流量累计,并不能每月重置的。解决方法见下面。

一些配置

更改HTTP端口

如果使用的是脚本自动部署的HTTP服务,那么HTTP服务caddy默认配置文件在/usr/local/caddy/Caddyfile,修改8888端口为80,以使用80端口正常访问,然后重启caddy以生效更改。

http://:8888 {
 root * /usr/local/ServerStatus/web
 encode gzip
 file_server
}

修改监听端口

文件路径:/usr/local/ServerStatus/server/config.conf,修改port为其他端口就修改了监听端口。修改后记得重新serverstatus。

PORT = 35601

快速添加/修改节点信息

节点就是客户端,如果我们的客户端信息错了需要修改,或者嫌脚本添加客户端信息麻烦,那么我们就可以通过修改配置脚本来快速实现。

文件路径:/usr/local/ServerStatus/server/config.json,此文件内容为json格式,一个数组就是一个节点信息,我们可以直接修改信息达到修改节点信息的目的。例如下面是我测试添加的客户端信息的数组。不要忘了修改后重启serverstatus。

{
   "username": "user01",
   "password": "1234",
   "name": "测试",
   "type": "KVM",
   "host": "None",
   "location": "美国",
   "disabled": false ,
   "region": "US"
},

国旗的英文缩写

US表示美国,CN表示中国,更多国家的缩写参考:这里。除了英文,中文也是支持的。

命令操作集合

#客户端操作
启动:service status-client start
停止:service status-client stop
重启:service status-client restart
状态:service status-client status

#服务端操作
启动:service status-server start
停止:service status-server stop
重启:service status-server restart
状态:service status-server status

#Caddy操作
启动:service caddy start
停止:service caddy stop
重启:service caddy restart
查看状态:service caddy status
Caddy配置文件:/usr/local/caddy/Caddyfile

#其它文件夹或操作
安装目录:/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

按月统计流量

在安装了客户端的服务器上打开:/usr/local/ServerStatus/clients/status-client.py,找到第116行,名为liuliang的函数就是流量统计,查看代码就能知道流量统计数据来自文件/proc/net/dev,这是linux系统自带的流量统计文件,特点是重启服务器会重置,不能按时间详细划分流量。

我们安装一个vnstat软件,vnstat可以按周、月、日甚至小时显示流量信息,例如按月显示命令:vnstat -m。因此重写liuliang函数,借助vnstat就可以按月显示流量了。vnstat另一个优点有自己的数据库,重启服务器不会丢失流量数据。

具体代码实现这里不展示,请自行琢磨。最近用这个脚本发现源代码里加入了vnstat,但是好像代码有点问题,所以最好还是自己改下代码吧。

Last modification:December 15th, 2020 at 10:18 am
如果觉得我的文章对你有用,请随意赞赏