温馨提示×

Linux下Jenkins怎样监控任务

小樊
37
2025-11-22 13:31:30
栏目: 智能运维

Linux下Jenkins任务监控实践

一 监控目标与总体架构

  • 监控对象与指标
    • 任务维度:构建状态(SUCCESS/FAILURE/ABORTED)、持续时间队列等待时间、阶段耗时、失败原因与回溯。
    • 系统维度:Jenkins Master/节点CPU、内存、磁盘IO、网络,以及HTTP响应时间当前请求数线程数JVM指标。
  • 推荐架构
    • 平台内置视图与告警(快速上手) → 指标时序化(Prometheus + Grafana) → 日志与链路(Loki/Tempo) → 命令行与API巡检(日常核查与自动化)。

二 内置与插件监控

  • 控制台与构建历史
    • Manage Jenkins → Monitoring of Jenkins master 查看 JavaMelody 仪表盘(内存、CPU、HTTP 响应时间、当前请求数等),用于快速定位 Master 性能瓶颈。
    • 在任务页面查看 构建历史控制台日志测试结果与失败堆栈,适合单次任务的细粒度排查。
  • 通知与告警插件
    • Email Extension Plugin:自定义邮件主题/内容,按结果(失败、不稳定、恢复)触发。
    • Slack Notification Plugin:推送构建状态到 Slack 频道,便于团队即时响应。
  • 任务结果持久化与趋势
    • HTML Publisher Plugin:发布测试报告/覆盖率报告到任务页面,形成可视化趋势。
    • InfluxDB Plugin:将构建与作业指标写入 InfluxDB,配合 Grafana 展示构建时长、成功率趋势等。

三 指标与日志的可观测性方案

  • Prometheus + Grafana
    • 在 Jenkins 安装 Prometheus metrics 插件,暴露 /prometheus 指标端点。
    • Prometheus 配置抓取:
      • job_name: ‘jenkins’ metrics_path: ‘/prometheus’ static_configs:
        • targets: [‘<jenkins_ip>:<jenkins_port>’]
    • Grafana 添加 Prometheus 数据源,导入 Jenkins 面板模板(如 ID 9964)快速获得概览与趋势。
  • InfluxDB + Grafana
    • 部署 InfluxDB,在 Jenkins 安装 InfluxDB Plugin,将作业与构建结果写入 InfluxDB;Grafana 配置 InfluxDB 数据源并构建趋势与对比面板。
  • 日志与链路追踪
    • 使用 Loki 聚合构建日志,配合 Grafana 做关键字/错误码检索与可视化。
    • 使用 Tempo 采集执行链路,结合 Grafana 实现跨服务/阶段的调用关系追踪。

四 命令行与API巡检

  • 快速查看任务状态
    • 使用 curl 获取任务最新构建结果:
      • curl -u : http://<jenkins_ip>:/job/<job_name>/lastBuild/api/json
    • 使用 jenkins-cli.jar 查看控制台日志:
      • java -jar jenkins-cli.jar -s http://<jenkins_url> console <job_name>/lastBuild
  • 自动化巡检脚本思路
    • 定期调用 API 获取最近 N 次构建结果,统计 失败率/平均耗时,当超过阈值时调用 Webhook 或邮件网关触发告警。

五 落地配置与告警示例

  • Prometheus 抓取最小配置
    • scrape_configs:
      • job_name: ‘jenkins’ metrics_path: ‘/prometheus’ static_configs:
        • targets: [‘192.168.1.10:8080’]
  • Grafana 面板
    • 数据源选择 Prometheus,导入 Jenkins 仪表盘模板(ID 9964),覆盖构建健康、节点资源、HTTP 性能等核心面板。
  • 邮件告警示例
    • 安装 Email Extension Plugin,在“构建后操作”添加 Editable Email Notification:
      • 触发条件:仅当 构建失败状态从失败变为成功(恢复)
      • 高级设置:自定义主题与内容,包含 构建编号、持续时间、变更集、控制台链接,并抄送团队。
  • 节点与系统巡检
    • 在节点上定期执行 top/htop、iostat、iftop/nethogs、sysstat,将资源异常与构建失败关联分析,避免单点资源瓶颈影响任务稳定性。

0