Jenkins:从属节点上的日志文件位置?

Jenkins: Logfile location on slave nodes?

我有一个通过 JNLP 连接的 jenkins 主从设置。一切正常,除了我在从节点上找不到任何日志。在“$JENKINS-HOME/logs/slaves”主节点上有日志,但在从节点上none。

能不能告诉我日志在哪条路径上,或者从节点上有没有日志?

非常感谢!

Q

Jenkins 仅将所有日志存储在 master 上,这就是为什么您在节点上找不到任何日志的原因。

它们大多是通过TCP传输给Master的。 例如,当一个步骤开始时,像一个 shell 任务,会这样做

  1. 调用您的 shell 内容
# your script will be transform into a script file
script.sh > jenkins-log.txt
# running...
# after running
echo $? > jenkins-result.txt
  1. 在运行进程中,数据将通过TCP传输(拉或推)
jenkins-log.txt -> Filestream -> RemoteStream -> Master

而在 master 中,你会看到类似的单个日志

jobs/xxx/branch/master/<id>/log
  1. 作业完成后,master 会发送命令清理代理中的临时目录,因此您看不到任何日志。

还有一点,在我们公司,我们面临着像DDOS一样向Master发送过多日志的问题,所以一个简单的解决方法是在shell

尾部限制

xxx | tail -c 512k 

或者通过head命令限制大小

xxx | (head -n 1000;dd status=none of=/dev/null)

在 Windows,从站将错误日志存储在与 slave.jar 文件相同的文件夹中。 报告如下:

Dec 19, 2018 2:38:14 PM hudson.remoting.Engine waitForServerToBack

"INFO: Failed to connect to the master. Will retry again".

该消息将永远不会出现上传到 Master。

我希望在其他从站上看到类似的日志文件。