温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Jenkins如何做日志收集

发布时间:2026-09-05 00:23:00 来源:亿速云 阅读:88 作者:小樊 栏目:系统运维

在 Jenkins 中实现日志收集,通常可以从 Jenkins 自身日志、Job 构建日志、节点日志、以及集中化收集 几个层面来做。下面按常见方案由浅入深说明。


一、Jenkins 自带日志能力(基础)

1. 系统日志

  • 路径:Manage Jenkins → System Log
  • 可查看 Jenkins 主进程日志
  • 可自定义 Log Recorder(按包名过滤)

示例:

  • hudson.model → 构建相关
  • org.jenkinsci → 插件相关

2. Job 构建日志

  • 每个 Job 在:
$JENKINS_HOME/jobs/<job>/builds/<build>/log
  • 控制台输出即来源于此

二、构建日志收集(最常用)

方案 1:直接保留在 Jenkins

  • 优点:简单
  • 缺点:磁盘占用大、难检索

适合:

  • 小团队
  • 构建频率低

方案 2:构建后归档日志

在 Pipeline 中:

post {
    always {
        archiveArtifacts artifacts: '**/build.log', allowEmptyArchive: true
    }
}

或:

post {
    always {
        junit '**/test-*.xml'
    }
}

方案 3:日志写入文件并收集

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'make > build.log 2>&1'
            }
        }
    }
    post {
        always {
            archiveArtifacts 'build.log'
        }
    }
}

三、集中式日志收集(推荐)

1. ELK / EFK 方案(最主流)

架构

Jenkins
  ↓ (filebeat / fluentd)
Elasticsearch
  ↓
Kibana

收集内容

  • $JENKINS_HOME/logs/*.log
  • jobs/*/builds/*/log
  • 节点 agent 日志

Filebeat 示例

filebeat.inputs:
- type: log
  paths:
    - /var/lib/jenkins/jobs/*/builds/*/log
output.elasticsearch:
  hosts: ["http://es:9200"]

2. Loki + Grafana(轻量级)

适合:

  • 日志量大
  • 不想维护 ES

组件

  • Promtail
  • Loki
  • Grafana

特点

  • 按 label 查询(job、node、build)
  • 成本低

3. 使用 Jenkins 插件

常用插件

  • Log Storage Plugin
  • Elasticsearch Plugin
  • Splunk Plugin
  • Datadog Plugin

示例(Splunk):

Manage Jenkins → Configure System → Splunk

四、节点(Agent)日志收集

Agent 日志位置:

$AGENT_HOME/agent.log

建议:

  • 容器化 agent → 输出到 stdout
  • 物理机 agent → filebeat 收集

五、生产环境推荐组合

✅ 推荐方案

  • Jenkins Pipeline 输出结构化日志
  • Filebeat / Promtail 收集
  • Elasticsearch / Loki 存储
  • Kibana / Grafana 展示

✅ 关键点

  • 给日志加 job, build, node 标签
  • 定期清理 $JENKINS_HOME
  • 构建日志不要无限保留

如果你愿意,我可以:

  • 给你一个 完整 Jenkins + Loki 示例
  • 或针对 K8s / Docker Jenkins 给方案
  • 或帮你设计 日志保留策略

你现在的 Jenkins 是 单机 / K8s / Docker?

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手