首页主机资讯Jenkins Linux版如何监控任务状态

Jenkins Linux版如何监控任务状态

时间2025-12-08 08:01:04发布访客分类主机资讯浏览533
导读:Jenkins Linux 版监控任务状态的实用方案 一 内置与插件方式 使用 Monitoring 插件(JavaMelody) 查看 Jenkins Master/Agent 的 CPU、内存、HTTP 响应时间、当前请求数 等,适合...

Jenkins Linux 版监控任务状态的实用方案

一 内置与插件方式

  • 使用 Monitoring 插件(JavaMelody) 查看 Jenkins Master/AgentCPU、内存、HTTP 响应时间、当前请求数 等,适合快速体检与容量评估;该插件以仪表盘形式展示,便于定位性能瓶颈。
  • 使用 Prometheus Metrics 插件 暴露 /prometheus 指标端点,获取 Job、构建、节点(Agent)、队列、Executor 等 CI/CD 业务指标,便于做趋势分析与容量规划。
  • 使用 Email Extension / Slack Notification 等通知类插件,在任务 成功、失败、不稳定、中止 等状态触发 邮件/企业微信/Slack 告警,适合即时通知到团队。

二 Prometheus Grafana 监控与告警示例

  • 安装与暴露指标:在 Manage Jenkins → Plugins 安装 Prometheus Metrics Plugin,Jenkins 将在 http://:8080/prometheus 暴露指标。
  • Prometheus 拉取配置示例:
    scrape_configs:
      - job_name: 'jenkins'
        metrics_path: '/prometheus'
        static_configs:
          - targets: ['<
        jenkins_host>
    :8080']
    
  • 常用告警规则示例(节点离线):
    - alert: JenkinsNodeOffline
      expr: default_jenkins_nodes_online == 0
      for: 2m
      labels:
        severity: warning
      annotations:
        summary: "Jenkins 节点离线"
        description: "Jenkins 节点 {
    {
     $labels.node }
    }
         已离线超过 2 分钟"
    
  • 可视化:在 Grafana 配置 Prometheus 数据源并导入 Jenkins 仪表盘模板(ID: 9964),即可查看 构建成功率、构建耗时、队列长度、Executor 使用率、节点在线状态 等面板。

三 Linux Shell 与 API 轮询监控

  • 获取最新一次构建结果(JSON):
    curl -s -u <
        user>
        :<
        token>
         \
      http://<
        jenkins>
        /job/<
        job_name>
        /lastBuild/api/json | jq -r '.result'
    
    常见结果:SUCCESS、UNSTABLE、FAILURE、ABORTED、NOT_BUILT、null(构建中)。
  • 实时等待构建结束并判定结果(示例):
    #!/usr/bin/env bash
    set -euo pipefail
    JENKINS_URL="http://<
        jenkins>
        "
    JOB="<
        job_name>
        "
    USER="<
        user>
        "
    TOKEN="<
        api_token>
        "
    
    # 触发构建(可选)
    # curl -X POST -u "$USER:$TOKEN" "$JENKINS_URL/job/$JOB/build"
    
    # 获取最新构建号
    BUILD=$(curl -s -u "$USER:$TOKEN" \
      "$JENKINS_URL/job/$JOB/lastBuild/api/json" | jq -r '.number')
    
    echo "Watching build #$BUILD"
    
    while true;
         do
      RESULT=$(curl -s -u "$USER:$TOKEN" \
        "$JENKINS_URL/job/$JOB/$BUILD/api/json" | jq -r '.result')
      if [[ "$RESULT" != "null" ]];
         then
        echo "Build #$BUILD finished with result: $RESULT"
        case "$RESULT" in
          SUCCESS)   exit 0 ;
        ;
        
          UNSTABLE)  exit 1 ;
        ;
        
          FAILURE|ABORTED) exit 2 ;
        ;
        
          *)         exit 3 ;
        ;
        
        esac
      fi
      sleep 5
    done
    
  • 说明:将 : 替换为 API Token(推荐)或密码;如 Jenkins 启用了 CSRF,需先获取 crumb 并在请求头中携带。上述方式适合 Shell/CI 脚本 内做门禁或联动部署。

四 构建后动作根据状态执行逻辑

  • 安装 PostBuildScript 插件,在 构建后操作 中选择 Execute scripts,可读取当前构建状态(如 SUCCESS、FAILURE、ABORTED、UNSTABLE),据此执行不同命令,例如:
    • 仅在 失败/中止 时执行全量清理与重拉依赖;
    • 成功 时执行部署或归档;
    • 不稳定 时仅做通知或跳过部分步骤。
  • 适用场景:减少不必要的重复构建、失败快速回滚、按状态分流后续流程。

五 实践建议

  • 组合监控:用 Prometheus Grafana趋势与容量(成功率、耗时、队列、节点健康),用 邮件/Slack即时告警,用 Shell API自动化门禁与联动
  • 安全与权限:优先使用 API Token 而非明文密码;为监控账号授予 最小权限(Job/Read、View/Read 等)。
  • 稳定性:为 Prometheus 抓取脚本轮询 设置合理间隔(如 5–15 秒),避免对 Jenkins Master 造成额外压力。
  • 可视化与基线:在 Grafana 建立 构建健康度节点在线率基线面板,并设置 告警阈值升级/扩容 的触发条件。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Jenkins Linux版如何监控任务状态
本文地址: https://pptw.com/jishu/765551.html
centos extract配置有哪些要点 Linux Jenkins如何管理团队协作

游客 回复需填写必要信息