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

如何从journald日志判断Jenkins任务是否在控制器执行器上运行?

从Jenkins控制器的journald日志判断任务是否在本地执行器运行

1. 筛选Jenkins服务日志

首先用journalctl定位Jenkins的系统日志:

# 查看所有Jenkins日志
journalctl -u jenkins.service

# 按时间范围过滤(比如最近7天)
journalctl -u jenkins.service --since "7 days ago"

# 实时跟踪日志
journalctl -u jenkins.service -f

2. 识别本地执行的关键日志特征

任务在控制器执行器上启动时,日志会明确标注执行节点信息,核心关键字是控制器的节点名称(默认多为master或Jenkins,可在Jenkins「管理节点」页面确认):

  • 典型日志行:YYYY-MM-DD HH:MM:SS INFO org.jenkinsci.plugins.workflow.job.WorkflowRun#execute: Running on Jenkins in /var/lib/jenkins/workspace/MyPipeline
  • 或更简洁的格式:[YYYY-MM-DD HH:MM:SS] Running on [控制器节点名] in [工作空间路径]

只要日志里的节点名称和控制器节点一致,就说明该任务是在控制器本地执行器上运行的。

3. 批量统计历史执行频率

如果要统计历史上任务在控制器执行的次数或频率,可以用文本处理工具批量分析日志:

  • 提取所有控制器执行的任务记录:
journalctl -u jenkins.service | grep "Running on [控制器节点名] in"
  • 统计每个任务的执行次数:
journalctl -u jenkins.service | grep "Running on [控制器节点名] in" | awk -F '/workspace/' '{print $2}' | cut -d '/' -f 1 | sort | uniq -c
  • 按日期统计每日执行次数:
journalctl -u jenkins.service | grep "Running on [控制器节点名] in" | awk '{print $1, $2}' | sort | uniq -c

4. 适配自定义日志格式

如果Jenkins配置了自定义日志输出(比如通过日志插件修改格式),可以查找包含Executing on node或Node: [节点名]的日志行,核心逻辑依然是匹配控制器的节点名称。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 20:24:55