Jenkins Agent节点实际在线却显示离线问题求助
Jenkins节点在AWS中运行但标记为离线的排查方案
问题背景
在AWS环境中搭建Jenkins主节点,通过两种方式创建构建节点:
- 使用
Amazon EC2 Container Service Cloud插件创建ECS代理模板 - 使用
Amazon EC2插件基于自定义AMI创建节点
执行构建任务时,节点处于AWS运行状态,但Jenkins标记为离线,已确认Security Group开放了Jenkins相关端口,问题仍存在。构建日志显示队列中所有EC2/ECS节点均被标记为离线。
可能的原因及解决步骤
1. 双向网络连通性验证
虽然开放了SG端口,但需确认主节点与代理节点的双向连通:
- 主节点到代理:在主节点执行
telnet <代理节点IP> 50000或nc -zv <代理节点IP> 50000,验证jnlp端口(默认50000,自定义则用对应端口)是否可访问 - 代理到主节点:确认代理节点出站规则允许访问主节点的Jenkins服务端口(默认8080或HTTPS端口),若在私有子网,需检查NAT网关或VPC路由表配置是否正确
2. 代理节点配置错误
- EC2插件节点:
- 检查AMI是否预装兼容版本的Java环境,Jenkins代理依赖Java运行时
- 确认节点启动脚本中,主节点URL配置正确(需用代理可访问的地址,如私有IP或ELB地址,不能用localhost)
- 查看代理节点日志(如
/var/log/jenkins/路径),排查是否有连接超时、认证失败等报错
- ECS插件节点:
- 确认ECS任务定义的代理镜像包含正确Java版本和启动脚本
- 检查任务环境变量(
JENKINS_URL、JENKINS_SECRET、JENKINS_AGENT_NAME)是否与主节点配置一致 - 查看CloudWatch日志,确认代理是否尝试连接主节点,是否存在权限或网络错误
3. 主节点安全与权限配置
- 检查主节点全局安全配置,若启用“代理到主节点的安全连接”,需确保代理使用正确密钥/凭证
- 验证EC2/ECS插件使用的IAM角色权限:EC2插件需具备实例启停、描述权限;ECS插件需具备集群、任务管理权限
- 若主节点使用反向代理(如Nginx),需确保配置支持WebSocket和JNLP协议,否则代理无法维持连接
4. 标签与任务调度匹配问题
从日志中‘Jenkins’ is reserved for jobs with matching label expression提示,需确认:
- 构建任务的标签表达式是否与节点标签匹配,比如任务要求
jenkins-agent标签,但节点未配置 - 主节点是否被设置为“仅匹配标签的任务可用”,导致普通任务无法调度到主节点,同时代理节点离线引发任务阻塞
5. AWS资源限制排查
- 通过CloudWatch监控代理节点的CPU/内存使用率,确认是否因资源耗尽导致代理进程崩溃
- 检查ECS集群资源配额,若CPU/内存不足,代理任务会处于Pending状态,被Jenkins标记为离线
- 验证EC2节点实例角色权限,确认是否能访问主节点所在的私有子网或相关AWS服务
构建日志参考
> git checkout -f a2198a83470ed2e35fb4fa92ca04897b5e013d11 # timeout=10 Commit message: "Makefile edited online with Bitbucket" > git rev-list --no-walk a2198a83470ed2e35fb4fa92ca04897b5e013d11 # timeout=10 Triggering BO-App » Build » default Configuration BO-App » Build » default is still in the queue: ‘Jenkins’ is reserved for jobs with matching label expression ‘i-000eb8a582ba930fa’ is offline ‘i-01ada2700b0f561a1’ is offline ‘i-03f125f6ecdc82864’ is offline ‘i-0b33e8f0005807560’ is offline ‘i-0badf8ba4000b4a82’ is offline Configuration BO-App » Build » default is still in the queue: ‘EC2 (jenkins-ec2-agent) - jenkins-ec2-agent (sir-qq96c1sq)’ is offline ‘Jenkins’ is reserved for jobs with matching label expression ‘i-000eb8a582ba930fa’ is offline ‘i-01ada2700b0f561a1’ is offline ‘i-03f125f6ecdc82864’ is offline ‘i-0b33e8f0005807560’ is offline ‘i-0badf8ba4000b4a82’ is offline Configuration BO-App » Build » default is still in the queue: ‘EC2 (jenkins-ec2-agent) - jenkins-ec2-agent (sir-qq96c1sq)’ is offline ‘Jenkins’ is reserved for jobs with matching label expression ‘i-01ada2700b0f561a1’ is offline ‘i-03f125f6ecdc82864’ is offline ‘i-0b33e8f0005807560’ is offline ‘i-0badf8ba4000b4a82’ is offline Configuration BO-App » Build » default is still in the queue: ‘EC2 (jenkins-ec2-agent) - jenkins-ec2-agent (sir-qq96c1sq)’ is offline ‘Jenkins’ is reserved for jobs with matching label expression ‘i-03f125f6ecdc82864’ is offline ‘i-0b33e8f0005807560’ is offline ‘i-0badf8ba4000b4a82’ is offline Configuration BO-App » Build » default is still in the queue: ‘EC2 (jenkins-ec2-agent) - jenkins-ec2-agent (sir-qq96c1sq)’ is offline ‘Jenkins’ is reserved for jobs with matching label expression ‘i-0b33e8f0005807560’ is offline ‘i-0badf8ba4000b4a82’ is offline Configuration BO-App » Build » default is still in the queue: ‘EC2 (jenkins-ec2-agent) - jenkins-ec2-agent (sir-qq96c1sq)’ is offline ‘Jenkins’ is reserved for jobs with matching label expression ‘i-0badf8ba4000b4a82’ is offline Configuration BO-App » Build » default is still in the queue: ‘EC2 (jenkins-ec2-agent) - jenkins-ec2-agent (sir-qq96c1sq)’ is offline ‘Jenkins’ is reserved for jobs with matching label expression Configuration BO-App » Build » default is still in the queue: ‘Jenkins’ is reserved for jobs with matching label expression Configuration BO-App » Build » default is still in the queue: ‘EC2 (jenkins-ec2-agent) - jenkins-ec2-agent (sir-8qvee66n)’ is offline ‘Jenkins’ is reserved for jobs with matching label expression Configuration BO-App » Build » default is still in the queue: ‘EC2 (jenkins-ec2-agent) - jenkins-ec2-agent (sir-8qvee66n)’ is offline ‘Jenkins’ is reserved for jobs with matching label expression ‘i-0349259e6fbff9789’ is offline BO-App » Build » default completed with result FAILURE Finished: FAILURE
内容的提问来源于stack exchange,提问作者yossibmoha
相关产品推荐
相关产品推荐

