使用云探针ServerStatus网页监控VPS状态

使用的是cppla的中文版ServerStatus,功能比BotoX全面,英文版多年没有更新

环境

  • Ubuntu
  • python 2.7
  • nginx

准备

  • 至少两台VPS

参考

步骤

步骤分为服务端和客户端部署,服务端收集客户端发来的信息并用js显示在网页上。

服务端

也可以使用docker部署,详见项目页

  1. 克隆项目
    • 执行指令
      git clone https://github.com/cppla/ServerStatus.git
  2. 编译项目
    • 执行指令
      cd ServerStatus/server 
      make
  3. 测试运行
    • 在本目录执行指令
      ./sergate

      有绑定端口的信息输出代表成功,失败则检查端口占用。

  4. 编辑服务器信息
    •  编辑ServerStatus/server目录下的config.json文件
      {"servers":
          [
              {
                  "username": "s01", # 设置本条目的用户名,用于连接验证
                  "name": "Mainserver 1", # 设置本条目的名称
                  "type": "Dedicated Server", # 设置本条目的类型(备注)
                  "host": "GenericServerHost123", # 设置本条目的IP地址
                  "location": "Austria", # 设置服务器的物理地址(仅供显示)
                  "password": "some-hard-to-guess-copy-paste-password" # 设置本条目的密码,用于连接验证
              },
                      {
                              ... ...
                      },
          ]
      }
  5. 配置Web界面
    • 复制网页目录到其他目录
      cp -ri ServerStatus/web [your directory]
    • 配置nginx,在 /etc/nginx/conf/ 目录下新建文件 ServerStatus.conf,添加以下内容
      server {
              listen [your port];
      
              root [your web directory];
      
              index index.html index.htm index.nginx-debian.html;
      
              server_name _;
      
              location / {
                      try_files $uri $uri/ =404;
              }
      }
      
    • 测试配置并重新载入nginx
      nginx -t
      nginx -s reload
  6. 将ServerStatus设置为系统服务并开机运行
    • 在 /etc/systemd/system/ 目录下新建 serverstatus.service 文件,添加以下内容
      [Unit]
      Description=ServerStatus Master Server
      After=syslog.target
      After=network.target
      
      [Service]
      Type=simple
      WorkingDirectory=[your serverstatus directory]
      User=root
      Group=root
      ExecStart=[your serverstatus directory] -d [your web directory]
      ExecReload=/bin/kill -HUP $MAINPID
      StandardOutput=syslog
      StandardError=syslog
      SyslogIdentifier=sergate
      
      [Install]
      WantedBy=multi-user.target
    • 启动服务并查看服务状态
      systemctl start serverstatus.service
      systemctl status serverstatus.service

      如果启动成功,进行下一步

    • 设置开机启动
      systemctl enable serverstatus.service
  7. 访问域名或IP+端口查看Web界面
    • 因为没有配置客户端所以所有服务器都在离线状态

客户端

  1. 克隆项目
    git clone https://github.com/cppla/ServerStatus.git
  2. 移出客户端脚本
    • 客户端只需要其中的 client-linux.py,将其移动到其他目录
      mv ServerStatus/client/client-linux.py [your directory]
  3. 配置脚本服务器信息
    • 打开 client-linux.py,修改文件开始的全局变量 SERVER、USER 和 PASSWORD
      # ... ...
      SERVER = "127.0.0.1" # 修改为服务端IP
      USER = "s01" # 修改为config.json中相同的用户名
      
      
      PORT = 35601 # 如果修改了监听端口则修改此项
      PASSWORD = "USER_DEFAULT_PASSWORD" # 修改为config.json中相同的密码
      # ... ...
  4. 将脚本配置为系统服务并设置开机启动
    • 在 /etc/systemd/system/ 目录下新建 serverstatus.service 文件,添加以下内容
      [Unit]
      Description=ServerStatus Client
      After=network.target
      
      [Service]
      Type=simple
      IgnoreSIGPIPE=no
      User=root
      ExecStart=[your directory]/client-linux.py
      
      [Install]
      WantedBy=multi-user.target
      
    • 启动服务并查看运行状态
      systemctl start serverstatus.service
      systemctl status serverstatus.service

      如果成功运行,进行下一步

    • 设置开机启动
      systemctl enable serverstatus.service
  5. 如果成功启动,服务端Web界面可以即时看到服务器状态信息

效果

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据