生命不息
折腾不止

又修改了下serverstatus,一个多服务器监控开源项目

最近因为自己的需要 , 修改了下 serverstatus 的一些功能 . 现在分享给大家 . 有需要的可以自取 .

github 地址 :https://github.com/91yun/ServerStatus

修改的内容如下 :

  • 服务端使用了 docker 的方式 .
  • 增加了被墙的检测
  • 把下载速度改成了带宽 ( 下载速度 *8) 更加直观的观察服务器的带宽占用
  • 加了连接数的检测 ,
  • 优化了 css, 对手机的适配
  • 使用 vnstat 的月流量统计代替总流量统计 ( 目前只显示 eth0 网卡的流量 )
  • 添加了可选的 Basic HTTP authentication

配置文件没有改变 , 会用的朋友一看就懂 .

服务器端安装

mkdir /home/ServerStatus
cd /home/ServerStatus
wget --no-check-certificate https://raw.githubusercontent.com/91yun/ServerStatus/master/server/config.json
docker create --name=sss \
--restart=always \
-v /home/ServerStatus/config.json:/ServerStatus/server/config.json \
-p 3561:3561 \
-p 80:80 \
-e "USERNAME=admin" \
-e "PASSWORD=91yun" \
rongdede/serverstatus:server

配置文件地址 :   /home/ServerStatus/config.json   配置方式和原版一样 .

用户名 :admin  可以自行修改

密码 :91yun  可以自行修改

客户端安装

yum -y install epel-release
yum -y install python-pip
yum clean all
yum -y install gcc
yum -y install python-devel
pip install psutil
mkdir -p /home/serverstatus
cd /home/serverstatus
wget https://github.com/91yun/ServerStatus-1/raw/master/clients/client-psutil.py

编辑客户端配置文件 vim client-psutil.py

SERVER = "127.0.0.1" # 改成呢你的服务器地址 
PORT = 3561
USER = "USER" # 改成唯一的客户端用户名,服务器根据这个字段判断是哪台服务器 
PASSWORD = "USER_PASSWORD" # 修改你的密码,和其他客户端可以是相同的 

启动客户端

nohup python /home/serverstatus/client-psutil.py &> /dev/null &
赞(5)
未经允许不得转载:91云(91yun.co) » 又修改了下serverstatus,一个多服务器监控开源项目

留言 35

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #0

    是时候该更新一下了,现在最新的Linux发行版软件库里面的vnstat已经是2.x版本,支持的参数有变化,用这个脚本显示不了流量,另外这个脚本也不支持最新的python3.8版本。

    lalala5年前 (2020-05-02)回复
  2. #0

    服务端用docker部署 是不是还得先装web服务器 然后再部署这个

    wiki6年前 (2018-12-25)回复
    • 不用。docker里面带了nginx

      91yun6年前 (2018-12-28)回复
  3. #0

    vnstat要在server还是client安装?还是两个都要安装?

    josh6年前 (2018-09-23)回复
    • 只需要在client装

      91yun6年前 (2018-09-23)回复
  4. #0

    还有,GFW检测功能有待加强,主要是国内测试节点太少,对于部分运营商在某些出口节点设置的屏蔽、干扰几乎完全检测不到

    lalala6年前 (2018-09-22)回复
    • 干扰是不可能检测到的.另外只是检查普遍意义上的屏蔽.像移动自己搞的就没办法了.这种实时检测的是没办法尽善尽美的.否则耗时太长.

      91yun6年前 (2018-09-22)回复
      • 我觉得测试节点应该可以适当增加点,比如目前ping.pe的中国测试节点已有13个,涵盖了联通、移动、阿里云、腾讯、UCloud等不同ISP/IDC的机房和线路

        lalala6年前 (2018-09-22)回复
        • 机制不一样,这个是每秒提交检测数据,如果1秒内没法完成检测就会造成其他数据出问题。

          91yun6年前 (2018-09-22)回复
  5. #0

    客户端(Debian9/Python 2.7.13)运行client-psutil.py后,显示以下错误:
    (‘Caught Exception:’, ValueError(“invalid literal for int() with base 10: ‘awk: line 2: function gensub never defined'”,))
    在CentOS7下运行此脚本没有这个问题

    lalala6年前 (2018-09-21)回复
    • 注:vnstat已安装并启动成功

      lalala6年前 (2018-09-21)回复
    • sudo apt-get install -y gawk

      91yun6年前 (2018-09-21)回复
      • OK~又发现几个新问题:负载显示值不准,经常是实际负载值的两三倍;网络显示值明显偏高;其中一个VPS流量显示值始终为0B | 0B

        lalala6年前 (2018-09-21)回复
        • 1.负载和什么做的对比?
          2.网络是根据网卡流量计算的,有些偏差是正常的,因为每种显示的网络计算方式的间隔都不一样.
          3.显示0B|0B的原因是你网卡名称不是eth0 , 在client-psutil.py里搜索”vnstat –dumpdb”改成 “vnstat –dumpdb -i 网卡名” 然后kill进程后,重启下这个程序就可以了.

          91yun6年前 (2018-09-21)回复
          • 基准是top命令显示的%Cpu(s) us值;
            我同时也在用doubi的云监控(同样基于ServerStatus),同一个VPS你的示值是他的10倍左右;
            的确,那台VPS网卡名是ens3,按照你说的方法修改脚本重启之后已解决。

            lalala6年前 (2018-09-21)
          • 应该是8倍,因为原来serverstatus显示的是下载速度, 我改成了带宽. 也就是下载速度*8. 因为服务一般都是说带宽,比如100M带宽,200M带宽,带宽比下载速度在服务器上更加直观.

            91yun6年前 (2018-09-21)
          • 那么你的流量显示单位是字节(B)还是比特(b)?如果不同的话最好还是标注下单位,以免被误解

            lalala6年前 (2018-09-21)
          • 带宽肯定是b拉.下载才用B.

            91yun6年前 (2018-09-21)
          • 另外,vnstat统计的流量月初会重置?

            lalala6年前 (2018-09-21)
          • 发现 vnstat 的一个缺点,那就是不能实时反映流量变化,存在一定滞后性

            lalala6年前 (2018-09-21)
          • 还有,既然你的网络带宽是以bps为单位,那就麻烦把数值精度调高一点,不然看起来都是8的倍数感觉怪怪的

            lalala6年前 (2018-09-22)
          • 还有流量显示,如果一律取整,不如干脆不要显示.0

            lalala6年前 (2018-09-22)
          • 并非取整,会显示小数点后两位

            91yun6年前 (2018-09-22)
          • 单位是G的话确实是显示小数点后面两位,M的话只会显示.0M,另外如果小于1M的话只会显示0B,有点奇怪

            lalala6年前 (2018-09-22)
          • 估计是bug,我自己用的倒是正常的,回头我看看

            91yun6年前 (2018-09-22)
          • 我是按照docker官网说明装的18.06.1-ce版,而不是你github里面写的docker-io,这个是否会有影响?

            lalala6年前 (2018-09-22)
          • 我自己的是正常的.显示0B的应该都是网卡名不对.

            91yun6年前 (2018-09-23)
          • 你这显示的单位都是T或G,如果单位是M就会显示xx.0M;显示0B | 0B那是网卡名的问题,而只有一边显示0B那就是vnstat统计的rx/tx流量<1M时的结果

            lalala6年前 (2018-09-24)
  6. #0

    服务端创建docker容器并启动之后,lsof查看发现80/tcp和3561/tcp端口都没有被监听,是为什么呢?

    lalala6年前 (2018-09-21)回复
    • 你确定docker启动了吗? docker ps

      91yun6年前 (2018-09-21)回复
      • 刚才启动错了,docker start的不是sss容器而是IMAGE,现在OK了,多谢,如果能够添加SSL支持就更完美了!

        lalala6年前 (2018-09-21)回复
  7. #0

    http://23.95.192.254/
    用户名:admin
    密码:haha
    博主可以看看,新加坡-1的监控状态就是问题所以,老是一闪一闪的。
    执行python /home/serverstatus/client-psutil.py
    出现如下提示
    You are connecting via: IPv4

    sh: 1: vnstat: not found
    (‘Caught Exception:’, ValueError(“invalid literal for int() with base 10: ‘awk: line 2: function gensub never defined'”,))
    Connecting…
    Authentication successful. Access granted.

    我本善良6年前 (2018-09-09)回复
    • 报错是vnstat没安装成功,流量统计依赖vnstat,你可以手动安装下.

      91yun6年前 (2018-09-10)回复
  8. #0

    客户端是debian连接不起,centos就没问题

    我本善良6年前 (2018-09-09)回复
    • 客户端你可以手动执行下pythong /home/serverstatus/client-psutil.py 看看报什么错误

      91yun6年前 (2018-09-09)回复