Jenkins Linux版如何监控任务状态
导读:Jenkins Linux 版监控任务状态的实用方案 一 内置与插件方式 使用 Monitoring 插件(JavaMelody) 查看 Jenkins Master/Agent 的 CPU、内存、HTTP 响应时间、当前请求数 等,适合...
Jenkins Linux 版监控任务状态的实用方案
一 内置与插件方式
- 使用 Monitoring 插件(JavaMelody) 查看 Jenkins Master/Agent 的 CPU、内存、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):
常见结果:SUCCESS、UNSTABLE、FAILURE、ABORTED、NOT_BUILT、null(构建中)。curl -s -u < user> :< token> \ http://< jenkins> /job/< job_name> /lastBuild/api/json | jq -r '.result' - 实时等待构建结束并判定结果(示例):
#!/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
