minecraft-ondemand自动化运维Watchdog容器原理与实现【免费下载链接】minecraft-ondemandTemplates to deploy a serverless Minecraft Server on demand in AWS项目地址: https://gitcode.com/gh_mirrors/mi/minecraft-ondemandminecraft-ondemand是一个基于AWS构建的无服务器Minecraft服务器解决方案它能根据玩家需求自动启动和关闭服务器大幅降低资源成本。本文将深入解析其核心组件Watchdog容器的工作原理与实现细节帮助你理解如何通过自动化运维提升Minecraft服务器的管理效率。什么是Watchdog容器Watchdog容器是minecraft-ondemand项目的智能守护进程负责监控Minecraft服务器的运行状态、管理资源分配以及实现自动化运维逻辑。它就像一位不知疲倦的管理员24小时监控服务器状态确保资源高效利用。图1AWS架构图展示了Watchdog容器在整个系统中的位置altminecraft-ondemand自动化运维架构Watchdog容器的核心功能Watchdog容器通过minecraft-ecsfargate-watchdog/watchdog.sh脚本实现三大核心功能1. 服务器生命周期管理自动启动检测监控Minecraft服务器端口Java版25565/Bedrock版19132确认服务器是否成功启动自动关闭机制在设定时间内默认20分钟无玩家连接时自动关闭服务器以节省资源启动超时保护若服务器10分钟内未成功启动自动终止任务避免资源浪费2. 连接状态监控实时连接检测每分钟检查一次玩家连接状态活动重置机制新玩家加入时重置关闭倒计时多版本支持同时兼容Minecraft Java版和Bedrock版服务器3. 通知与集成启动通知服务器就绪时通过SNS或Twilio发送通知关闭预警服务器即将关闭前发送提醒DNS自动更新动态更新Route53 DNS记录指向当前服务器IPWatchdog容器的工作原理启动流程环境变量验证检查必要的环境变量如ECS集群名称、服务名称、DNS区域等任务信息获取通过ECS容器元数据获取当前任务ID和网络接口信息IP地址绑定获取公网IP并更新Route53 DNS记录服务器类型检测通过监听端口判断是Java版25565还是Bedrock版19132启动通知发送通过SNS或Twilio API发送服务器就绪通知运行时监控Watchdog采用双阶段监控策略启动阶段监控默认10分钟while [ $CONNECTED -lt 1 ] do echo Waiting for connection, minute $COUNTER out of $STARTUPMIN... # 检查连接逻辑 if [ $COUNTER -gt $STARTUPMIN ] then echo $STARTUPMIN minutes exceeded without a connection, terminating. zero_service fi sleep 60 done运行阶段监控默认20分钟while [ $COUNTER -le $SHUTDOWNMIN ] do # 检查连接逻辑 if [ $CONNECTIONS -lt 1 ] then COUNTER$(($COUNTER 1)) # 无连接时增加计数器 else COUNTER0 # 有连接时重置计数器 fi sleep 60 done资源释放机制当检测到指定时间内无玩家活动时Watchdog执行资源清理function zero_service () { send_notification shutdown echo Setting desired task count to zero. aws ecs update-service --cluster $CLUSTER --service $SERVICE --desired-count 0 exit 0 }Watchdog容器的实现细节Docker镜像构建Watchdog容器基于Amazon AWS CLI镜像构建通过minecraft-ecsfargate-watchdog/Dockerfile定义FROM amazon/aws-cli RUN yum install -y net-tools jq nmap-ncat \ yum clean all COPY ./watchdog.sh . ENTRYPOINT [./watchdog.sh]镜像包含以下关键工具net-tools提供网络状态检测工具如netstatjq处理JSON格式数据nmap-ncat提供网络连接测试功能环境变量配置Watchdog容器依赖以下环境变量配置部分为必填项变量名用途是否必填默认值CLUSTERECS集群名称是-SERVICEECS服务名称是-SERVERNAMERoute53 A记录名称是-DNSZONERoute53托管区域ID是-STARTUPMIN启动等待时间(分钟)否10SHUTDOWNMIN无活动关闭时间(分钟)否20SNSTOPICSNS通知主题ARN否-TWILIO*Twilio API相关配置否-多版本支持实现Watchdog通过不同端口和协议检测Minecraft服务器版本Java版检测netstat -atn | grep :25565 | grep LISTEN EDITIONjava breakBedrock版检测netstat -aun | grep :19132 EDITIONbedrock break对于Bedrock版Watchdog还实现了专用的ping协议BEDROCKPING$PINGA$PINGB$PINGC$PINGD # 构造Bedrock协议特定的ping包 CONNECTIONS$((echo -en $BEDROCKPING sleep 1) | ncat -w 1 -u 127.0.0.1 19132 | cut -c34- | awk -F\; { print $5 })如何使用Watchdog容器要在自己的Minecraft on-demand服务器中使用Watchdog容器只需克隆仓库git clone https://gitcode.com/gh_mirrors/mi/minecraft-ondemand根据需要修改minecraft-ecsfargate-watchdog/watchdog.sh中的配置参数通过CDK部署整个架构cd cdk npm install cdk deployWatchdog容器将自动集成到整个AWS架构中无需额外配置。总结Watchdog容器是minecraft-ondemand项目实现自动化运维的核心组件通过智能监控和资源管理有效解决了Minecraft服务器长期运行导致的资源浪费问题。其设计理念可以应用到各种需要按需分配资源的场景中为无服务器架构提供了实用的运维模式。通过本文的解析你应该对Watchdog容器的工作原理和实现细节有了深入了解。如需进一步定制可以查看项目中的cdk/lib/minecraft-stack.ts文件了解如何将Watchdog容器集成到整个AWS架构中。【免费下载链接】minecraft-ondemandTemplates to deploy a serverless Minecraft Server on demand in AWS项目地址: https://gitcode.com/gh_mirrors/mi/minecraft-ondemand创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
minecraft-ondemand自动化运维:Watchdog容器原理与实现
minecraft-ondemand自动化运维Watchdog容器原理与实现【免费下载链接】minecraft-ondemandTemplates to deploy a serverless Minecraft Server on demand in AWS项目地址: https://gitcode.com/gh_mirrors/mi/minecraft-ondemandminecraft-ondemand是一个基于AWS构建的无服务器Minecraft服务器解决方案它能根据玩家需求自动启动和关闭服务器大幅降低资源成本。本文将深入解析其核心组件Watchdog容器的工作原理与实现细节帮助你理解如何通过自动化运维提升Minecraft服务器的管理效率。什么是Watchdog容器Watchdog容器是minecraft-ondemand项目的智能守护进程负责监控Minecraft服务器的运行状态、管理资源分配以及实现自动化运维逻辑。它就像一位不知疲倦的管理员24小时监控服务器状态确保资源高效利用。图1AWS架构图展示了Watchdog容器在整个系统中的位置altminecraft-ondemand自动化运维架构Watchdog容器的核心功能Watchdog容器通过minecraft-ecsfargate-watchdog/watchdog.sh脚本实现三大核心功能1. 服务器生命周期管理自动启动检测监控Minecraft服务器端口Java版25565/Bedrock版19132确认服务器是否成功启动自动关闭机制在设定时间内默认20分钟无玩家连接时自动关闭服务器以节省资源启动超时保护若服务器10分钟内未成功启动自动终止任务避免资源浪费2. 连接状态监控实时连接检测每分钟检查一次玩家连接状态活动重置机制新玩家加入时重置关闭倒计时多版本支持同时兼容Minecraft Java版和Bedrock版服务器3. 通知与集成启动通知服务器就绪时通过SNS或Twilio发送通知关闭预警服务器即将关闭前发送提醒DNS自动更新动态更新Route53 DNS记录指向当前服务器IPWatchdog容器的工作原理启动流程环境变量验证检查必要的环境变量如ECS集群名称、服务名称、DNS区域等任务信息获取通过ECS容器元数据获取当前任务ID和网络接口信息IP地址绑定获取公网IP并更新Route53 DNS记录服务器类型检测通过监听端口判断是Java版25565还是Bedrock版19132启动通知发送通过SNS或Twilio API发送服务器就绪通知运行时监控Watchdog采用双阶段监控策略启动阶段监控默认10分钟while [ $CONNECTED -lt 1 ] do echo Waiting for connection, minute $COUNTER out of $STARTUPMIN... # 检查连接逻辑 if [ $COUNTER -gt $STARTUPMIN ] then echo $STARTUPMIN minutes exceeded without a connection, terminating. zero_service fi sleep 60 done运行阶段监控默认20分钟while [ $COUNTER -le $SHUTDOWNMIN ] do # 检查连接逻辑 if [ $CONNECTIONS -lt 1 ] then COUNTER$(($COUNTER 1)) # 无连接时增加计数器 else COUNTER0 # 有连接时重置计数器 fi sleep 60 done资源释放机制当检测到指定时间内无玩家活动时Watchdog执行资源清理function zero_service () { send_notification shutdown echo Setting desired task count to zero. aws ecs update-service --cluster $CLUSTER --service $SERVICE --desired-count 0 exit 0 }Watchdog容器的实现细节Docker镜像构建Watchdog容器基于Amazon AWS CLI镜像构建通过minecraft-ecsfargate-watchdog/Dockerfile定义FROM amazon/aws-cli RUN yum install -y net-tools jq nmap-ncat \ yum clean all COPY ./watchdog.sh . ENTRYPOINT [./watchdog.sh]镜像包含以下关键工具net-tools提供网络状态检测工具如netstatjq处理JSON格式数据nmap-ncat提供网络连接测试功能环境变量配置Watchdog容器依赖以下环境变量配置部分为必填项变量名用途是否必填默认值CLUSTERECS集群名称是-SERVICEECS服务名称是-SERVERNAMERoute53 A记录名称是-DNSZONERoute53托管区域ID是-STARTUPMIN启动等待时间(分钟)否10SHUTDOWNMIN无活动关闭时间(分钟)否20SNSTOPICSNS通知主题ARN否-TWILIO*Twilio API相关配置否-多版本支持实现Watchdog通过不同端口和协议检测Minecraft服务器版本Java版检测netstat -atn | grep :25565 | grep LISTEN EDITIONjava breakBedrock版检测netstat -aun | grep :19132 EDITIONbedrock break对于Bedrock版Watchdog还实现了专用的ping协议BEDROCKPING$PINGA$PINGB$PINGC$PINGD # 构造Bedrock协议特定的ping包 CONNECTIONS$((echo -en $BEDROCKPING sleep 1) | ncat -w 1 -u 127.0.0.1 19132 | cut -c34- | awk -F\; { print $5 })如何使用Watchdog容器要在自己的Minecraft on-demand服务器中使用Watchdog容器只需克隆仓库git clone https://gitcode.com/gh_mirrors/mi/minecraft-ondemand根据需要修改minecraft-ecsfargate-watchdog/watchdog.sh中的配置参数通过CDK部署整个架构cd cdk npm install cdk deployWatchdog容器将自动集成到整个AWS架构中无需额外配置。总结Watchdog容器是minecraft-ondemand项目实现自动化运维的核心组件通过智能监控和资源管理有效解决了Minecraft服务器长期运行导致的资源浪费问题。其设计理念可以应用到各种需要按需分配资源的场景中为无服务器架构提供了实用的运维模式。通过本文的解析你应该对Watchdog容器的工作原理和实现细节有了深入了解。如需进一步定制可以查看项目中的cdk/lib/minecraft-stack.ts文件了解如何将Watchdog容器集成到整个AWS架构中。【免费下载链接】minecraft-ondemandTemplates to deploy a serverless Minecraft Server on demand in AWS项目地址: https://gitcode.com/gh_mirrors/mi/minecraft-ondemand创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考