[/MD]
[MD]# Minecraft服务器状态监控网站 这是一个功能全面的Minecraft服务器状态监控系统,允许用户实时监控多个Minecraft服务器的状态信息,并提供丰富的管理和数据可视化功能。 本项目为二次开发,原作者信息在本页底部。本项目遵循原项目开源协议Apache 2.0,您可以在遵守协议的前提下自由使用、修改和分发本项目的代码。 为区分原有项目功能,本项目新增功能带有-NG标识。作者:良医☭南瓜 联系:[EMAIL]2907613263@qq.com[/EMAIL] ## 功能特点 ### 基础监控功能 - 实时显示Minecraft服务器状态卡片 - 包含服务器图标、在线状态、在线人数、版本和MOTD - 支持多种排序方式(按权重、ID、名称等) - 响应式设计,适配不同屏幕尺寸 ### 高级功能 - **在线人数历史记录**:自动记录各服务器在线人数变化 - **数据可视化图表**:直观展示在线人数历史趋势 - **数据优化存储**:智能记录算法,相同人数只更新时间戳,减少数据库存储 - **服务器类型支持**:支持Java版/基岩版 服务器 - **自定义显示设置**:可控制是否显示特定服务器的历史记录 - **增加数据刷新**:每10s自动刷新一次服务器数据,可自主开关显示当前刷新状态(运行/暂停)-NG - **增加人数变动高可看**:显示当前刷新对比上次数据的变动 -NG - **服务器卡片优化**:修改原有项目的同步获取,改为异步优化网站访问速度 -NG - **将外部JS库改为本地加载**:提高可靠性和访问速度(原1.3s优化到1.1s) -NG ### 管理功能 - 管理员后台管理界面 - 添加、编辑和删除服务器 - 设置服务器排序权重 - 查看API调用日志 - 系统安装自动检测与重定向 ## 系统要求 ### 服务器环境 - PHP 7.0+ 不可大于8.0,否则会有报错 - MySQL 5.6+ - cURL扩展 - 支持MySQLi扩展 ## 安装指南 系统已实现**全自动化安装**流程,您只需按照以下步骤操作: 打包塞进你的web服务器中 1. **首次访问**:在浏览器中打开网站根目录(如 [URL]http://localhost/MC-Server-status/)[/URL] 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` ```python 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 = "[URL]http://9gn5if.mcfuns.cn/[/URL]" # 替换为你的网站URL interval = 300 # 5分钟的秒数 while True: check_server_status(url) time.sleep(interval) if __name__ == "__main__": main() ``` ## 更新日志 ### 最近更新 - 暂无 ### 自建api 参考项目 [URL]https://github.com/Relief156/McMotd-API[/URL] 其中有使用方法,将对应的api地址填写在配置文件中即可 ## 鸣谢 - **Minecraft Server Status API**:提供基岩版API支持,[Minecraft Server Status API](https://api.mcsrvstat.us/) - **Relief156**:二次开发,[原项目地址](https://github.com/Relief156/Minecraft-Server-Status/) 如有任何问题或建议,请联系开发者。[/MD]
[MD]# Minecraft服务器状态监控网站 这是一个功能全面的Minecraft服务器状态监控系统,允许用户实时监控多个Minecraft服务器的状态信息,并提供丰富的管理和数据可视化功能。 本项目为二次开发,原作者信息在本页底部。本项目遵循原项目开源协议Apache 2.0,您可以在遵守协议的前提下自由使用、修改和分发本项目的代码。 为区分原有项目功能,本项目新增功能带有-NG标识。作者:良医☭南瓜 联系:[EMAIL]2907613263@qq.com[/EMAIL] ## 功能特点 ### 基础监控功能 - 实时显示Minecraft服务器状态卡片 - 包含服务器图标、在线状态、在线人数、版本和MOTD - 支持多种排序方式(按权重、ID、名称等) - 响应式设计,适配不同屏幕尺寸 ### 高级功能 - **在线人数历史记录**:自动记录各服务器在线人数变化 - **数据可视化图表**:直观展示在线人数历史趋势 - **数据优化存储**:智能记录算法,相同人数只更新时间戳,减少数据库存储 - **服务器类型支持**:支持Java版/基岩版 服务器 - **自定义显示设置**:可控制是否显示特定服务器的历史记录 - **增加数据刷新**:每10s自动刷新一次服务器数据,可自主开关显示当前刷新状态(运行/暂停)-NG - **增加人数变动高可看**:显示当前刷新对比上次数据的变动 -NG - **服务器卡片优化**:修改原有项目的同步获取,改为异步优化网站访问速度 -NG - **将外部JS库改为本地加载**:提高可靠性和访问速度(原1.3s优化到1.1s) -NG ### 管理功能 - 管理员后台管理界面 - 添加、编辑和删除服务器 - 设置服务器排序权重 - 查看API调用日志 - 系统安装自动检测与重定向 ## 系统要求 ### 服务器环境 - PHP 7.0+ 不可大于8.0,否则会有报错 - MySQL 5.6+ - cURL扩展 - 支持MySQLi扩展 ## 安装指南 系统已实现**全自动化安装**流程,您只需按照以下步骤操作: 打包塞进你的web服务器中 1. **首次访问**:在浏览器中打开网站根目录(如 [URL]http://localhost/MC-Server-status/)[/URL] 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` ```python 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 = "[URL]http://9gn5if.mcfuns.cn/[/URL]" # 替换为你的网站URL interval = 300 # 5分钟的秒数 while True: check_server_status(url) time.sleep(interval) if __name__ == "__main__": main() ``` ## 更新日志 ### 最近更新 - 暂无 ### 自建api 参考项目 [URL]https://github.com/Relief156/McMotd-API[/URL] 其中有使用方法,将对应的api地址填写在配置文件中即可 ## 鸣谢 - **Minecraft Server Status API**:提供基岩版API支持,[Minecraft Server Status API](https://api.mcsrvstat.us/) - **Relief156**:二次开发,[原项目地址](https://github.com/Relief156/Minecraft-Server-Status/) 如有任何问题或建议,请联系开发者。[/MD]