Skip to content

这是一个功能全面的Minecraft服务器状态监控系统,允许用户实时监控多个Minecraft服务器的状态信息,并提供丰富的管理和数据可视化功能。

License

Notifications You must be signed in to change notification settings

PurpleMonkeyMC/Minecraft-Server-Status

 
 

Repository files navigation

Minecraft服务器状态监控网站

这是一个功能全面的Minecraft服务器状态监控系统,允许用户实时监控多个Minecraft服务器的状态信息,并提供丰富的管理和数据可视化功能。

功能特点

基础监控功能

  • 实时显示Minecraft服务器状态卡片
  • 包含服务器图标、在线状态、在线人数、版本和MOTD
  • 支持多种排序方式(按权重、ID、名称等)
  • 响应式设计,适配不同屏幕尺寸

高级功能

  • 在线人数历史记录:自动记录各服务器在线人数变化
  • 数据可视化图表:直观展示在线人数历史趋势
  • 数据优化存储:智能记录算法,相同人数只更新时间戳,减少数据库存储
  • 服务器类型支持:支持Java版/基岩版 服务器
  • 自定义显示设置:可控制是否显示特定服务器的历史记录

管理功能

  • 管理员后台管理界面
  • 添加、编辑和删除服务器
  • 设置服务器排序权重
  • 查看API调用日志
  • 系统安装自动检测与重定向

系统要求

服务器环境

  • PHP 7.0+
  • MySQL 5.6+
  • cURL扩展
  • 支持MySQLi扩展

安装指南

系统已实现全自动化安装流程,您只需按照以下步骤操作: 打包塞进你的web服务器中

  1. 首次访问:在浏览器中打开网站根目录(如 http://localhost/MC-Server-status/)
  2. 自动跳转:系统会自动检测是否已安装,未安装时将跳转到安装设置页面
  3. 填写配置信息
    • 数据库配置:填写数据库主机、用户名、密码和数据库名称
    • 管理员账户配置:设置管理员用户名和密码
    • 网站配置:设置网站标题
  4. 完成安装:点击"完成安装"按钮提交表单
  5. 自动跳转:安装成功后,系统会自动创建已安装标记文件,并跳转到监控页面

安装注意事项

  • 安装过程中会自动创建必要的数据库表和初始管理员账户
  • 安装完成后,系统会创建installed.lock文件作为已安装标记
  • 如果需要重新安装,请手动删除installed.lock文件
  • 安装后请及时修改管理员密码,确保系统安全
  • 确保服务器上的PHP有权限写入配置文件和创建已安装标记文件

使用说明

管理员操作

  1. 登录后台:点击网站右上角的"管理员登录"链接
  2. 添加服务器:在后台页面填写服务器名称、地址和服务器类型,设置排序权重
  3. 编辑服务器:点击服务器列表中的"编辑"按钮修改服务器信息
  4. 删除服务器:点击服务器列表中的"删除"按钮删除服务器
  5. 设置历史记录显示:可控制是否显示特定服务器的在线人数历史记录
  6. 退出登录:点击后台页面右上角的"退出登录"按钮

查看服务器状态

  • 首页会显示所有已添加服务器的状态卡片
  • 卡片显示服务器图标、名称、地址、在线状态、在线人数、版本和MOTD
  • 支持查看各服务器的在线人数历史记录图表
  • 鼠标悬停在卡片上会有轻微的上浮效果

在线人数记录机制

  • 系统会自动记录服务器在线人数变化
  • 智能优化存储:当在线人数与上次记录相同时,系统会自动更新记录时间,而不是创建新记录
  • 此优化大幅减少数据库存储空间并提高查询效率
  • 历史数据会以图表形式直观展示

文件说明

  • install.php:安装设置页面,包含数据库连接和管理员账户设置表单
  • installed.lock:系统自动创建的已安装标记文件
  • db.php:数据库连接和操作类,包含所有数据库操作方法
  • config.php:系统配置文件,存储数据库连接信息等
  • admin.php:管理员后台管理页面
  • index.php:服务器监控主页面
  • player_history_chart.php:在线人数历史图表页面
  • get_player_data.php:提供历史数据的API接口
  • view_logs.php:查看系统日志页面
  • 所有页面文件都已添加安装状态检查逻辑,未安装时会自动重定向到安装页面

技术实现

数据优化技术

系统采用了智能的数据记录优化技术,当连续监测到相同的在线人数时,只会更新最后一条记录的时间戳,而不是创建新的记录。这种方式:

  • 可减少90%以上的冗余数据
  • 提高数据库查询效率
  • 降低存储空间占用
  • 不影响图表展示的准确性

数据库表结构

  • servers:存储服务器基本信息,包含显示/隐藏历史记录的控制字段
  • player_history:存储优化后的在线人数历史数据

常见问题

  1. 服务器地址不包含端口怎么办?

    • 系统默认使用25565端口,无需额外设置
  2. 如何重新安装系统?

    • 手动删除installed.lock文件后,重新访问网站即可
  3. 如何调整服务器显示顺序?

    • 在管理员后台编辑服务器时设置排序权重,数字越大显示越靠前
  4. 为什么有些服务器没有历史记录图表?

    • 请确保在管理员后台开启了该服务器的历史记录显示功能
  5. 历史数据是如何存储的?

    • 系统采用智能优化存储,相同人数只更新时间戳,详情请参考"在线人数记录机制"部分
  6. 数据库中没有记录在线人数是为什么?

    • 网站程序无法主动调用API去记录人数,只有有人访问网站时才会被动地获取数据并记录
    • 可以使用Python程序每隔5分钟访问一次网站来解决这个问题,对应的程序已上传到仓储中 main.py
    import requests
    import time
    from datetime import datetime
    
    def check_server_status(url):
        try:
            response = requests.get(url)
            # 获取当前时间
            current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
            # 打印访问时间和状态码
            print(f"{current_time} - 访问 {url} - 状态码: {response.status_code}")
        except requests.exceptions.RequestException as e:
            # 如果请求失败,打印错误信息
            current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
            print(f"{current_time} - 请求失败 - 错误: {e}")
    
    def main():
        url = "http://9gn5if.mcfuns.cn/"  # 替换为你的网站URL
        interval = 300  # 5分钟的秒数
        while True:
            check_server_status(url)
            time.sleep(interval)
    
    if __name__ == "__main__":
        main()

更新日志

最近更新

  • 实现了智能的在线人数记录优化机制
  • 增加了服务器类型选择功能
  • 完善了安装流程,实现全自动安装
  • 添加了服务器排序权重功能
  • 增加了历史记录显示/隐藏控制
  • 优化了数据库查询性能
  • 图表中可以显示在线玩家列表
  • 请求api并行,减少页面加载所需时间
  • 优化log的读取和存储逻辑

自建api

参考项目 https://github.com/Relief156/McMotd-API 其中有使用方法,将对应的api地址填写在配置文件中即可

鸣谢

如有任何问题或建议,请联系开发者。

About

这是一个功能全面的Minecraft服务器状态监控系统,允许用户实时监控多个Minecraft服务器的状态信息,并提供丰富的管理和数据可视化功能。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 91.7%
  • JavaScript 8.0%
  • Python 0.3%