You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 16:50:25