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

Jenkins EC2 Agent实例创建失败,报404 NOT FOUND错误求助

Jenkins EC2 Plugin 404 Error After SSH Connection (Instance Terminated)

我之前碰到过几乎一模一样的问题,结合你的错误日志和排查经验,这个404错误本质是Agent节点注册失败,导致Jenkins Master无法识别该节点,最终触发实例终止。下面是几个最可能的原因和对应的解决办法:

1. 工作目录权限/存在性问题

从日志里看到启动Agent的命令是:

java -jar /tmp/remoting.jar -workDir /var/lib/jenkins

/var/lib/jenkins是Jenkins Master默认的工作目录,但在你的EC2 Agent实例上,这个目录大概率不存在;就算存在,后续Agent如果切换到非root用户运行,也会没有读写权限。当remoting.jar无法在指定工作目录创建文件时,Agent无法完成注册流程,Master就会认为该节点不存在,访问日志页面时返回404。

解决方法:

  • 在EC2插件配置中,把Agent的工作目录改成Agent实例上已存在且有读写权限的路径,比如/tmp/jenkins-agent;
  • 或者在EC2实例的初始化脚本(User Data)里提前创建目录并设置权限:
    mkdir -p /var/lib/jenkins && chmod 777 /var/lib/jenkins
    

2. Remoting版本与Java/Jenkins版本不兼容

你的Agent实例用的是Java 8(openjdk full version "1.8.0_265"),如果Jenkins Master版本较新,自带的remoting.jar可能不再支持Java 8,导致Agent启动失败。虽然日志显示已经拷贝了remoting.jar,但实际运行时可能抛出兼容性异常,直接中断注册流程。

解决方法:

  • 升级Agent实例的Java版本到Java 11(Jenkins官方推荐的长期支持版本);
  • 在EC2插件的“Advanced”设置里,找到“Remoting jar URL”,填入兼容Java 8的remoting版本链接,比如https://repo.jenkins-ci.org/public/org/jenkins-ci/main/remoting/4.13/remoting-4.13.jar(这个版本明确支持Java 8)。

3. 节点名称包含特殊字符

你的节点名称是EC2 (Jenkins Agent 1) - Jenkins Agent (i-01c45e1be3ca4ab2f),里面包含空格、括号等特殊字符,Jenkins的Stapler框架在解析节点URI时会出现编码冲突,导致无法找到对应的日志页面,同时节点注册也会受影响。

解决方法:

  • 修改EC2插件的“Node Name”模板,用更简洁的命名规则,比如只保留实例ID:jenkins-agent-${INSTANCE_ID},或者用下划线代替空格和特殊字符,避免URI编码出问题。

4. Agent无法反向连接Jenkins Master

虽然SSH连接成功了,但Agent启动后需要反向连接到Jenkins Master的服务端口(默认8080)完成注册。如果Master的安全组没有开放Agent实例所在IP/安全组的访问权限,Agent就无法完成注册,Master会判定节点无效并终止实例,同时访问日志页面返回404。

解决方法:

  • 检查Jenkins Master的安全组规则,确保允许Agent实例所在的安全组访问Master的Jenkins端口(TCP 8080,如果你修改过端口则对应调整);
  • 如果使用JNLP连接模式,还要确保开放50000端口(默认的JNLP代理端口)。

附你的错误日志:

Nov 09, 2020 12:15:58 PM hudson.plugins.ec2.EC2Cloud INFO: The SSH key **** has been successfully checked against the instance console for connections to EC2 (Jenkins Agent 1) - Jenkins Agent (****)
Nov 09, 2020 12:15:58 PM hudson.plugins.ec2.EC2Cloud INFO: Connected via SSH.
Nov 09, 2020 12:15:58 PM hudson.plugins.ec2.EC2Cloud INFO: connect fresh as root
Nov 09, 2020 12:15:58 PM hudson.plugins.ec2.EC2Cloud INFO: Connecting to **** on port ****, with timeout 10000.
Nov 09, 2020 12:15:58 PM hudson.plugins.ec2.EC2Cloud INFO: Connection allowed after the host key has been verified
Nov 09, 2020 12:15:58 PM hudson.plugins.ec2.EC2Cloud INFO: Connected via SSH.
Nov 09, 2020 12:15:58 PM hudson.plugins.ec2.EC2Cloud INFO: Creating tmp directory (/tmp) if it does not exist
Nov 09, 2020 12:16:03 PM hudson.plugins.ec2.EC2Cloud INFO: Verifying: java -fullversion openjdk full version "1.8.0_265-8u265-b01-0ubuntu2~20.04-b01"
Nov 09, 2020 12:16:03 PM hudson.plugins.ec2.EC2Cloud INFO: Verifying: which scp /usr/bin/scp
Nov 09, 2020 12:16:03 PM hudson.plugins.ec2.EC2Cloud INFO: Copying remoting.jar to: /tmp
Nov 09, 2020 12:16:03 PM hudson.plugins.ec2.EC2Cloud INFO: Launching remoting agent (via Trilead SSH2 Connection): java -jar /tmp/remoting.jar -workDir /var/lib/jenkins
HTTP ERROR 404 Not Found
URI: /computer/EC2%20(Jenkins%20Agent%201)%20-%20Jenkins%20Agent%20(i-01c45e1be3ca4ab2f)/logText/progressiveHtml
STATUS: 404
MESSAGE: Not Found
SERVLET: Stapler
Powered by Jetty:// 9.4.30.v20200611

内容的提问来源于stack exchange,提问作者egib

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 20:17:27