在 CentOS 上监控 Jenkins 任务的实用方案
一 监控方案总览
- 使用 Jenkins 内置插件:如 Monitoring 插件(JavaMelody) 查看 CPU、内存、HTTP 响应时间、当前请求数 等;配合 Performance Plugin 查看构建耗时、失败率等趋势。
- 使用 Prometheus + Grafana:在 Jenkins 安装 Prometheus metrics 插件 暴露 /prometheus 指标端点,Prometheus 拉取数据,Grafana 展示与告警。
- 使用 InfluxDB + Grafana:通过 InfluxDB 插件 写入构建与作业指标,Grafana 做可视化与阈值告警。
- 使用 Jenkins REST API 与 CLI:脚本化拉取 构建状态、控制台日志、节点在线状态,用于外部监控与自动化处理。
- 使用 系统级监控:在 CentOS 上用 top/htop、iostat、iftop/nethogs 观察资源瓶颈,结合日志定位问题。
二 快速落地步骤
-
插件方式(适合开箱即用)
- 在 Manage Jenkins → Plugins 安装:
- Monitoring 插件(内置 JavaMelody,提供 Master 资源与健康仪表盘)
- Performance Plugin(构建时长、失败趋势等)
- Prometheus metrics 插件(暴露 /prometheus 指标)
- InfluxDB 插件(写入构建结果到 InfluxDB)
- 打开 Manage Jenkins → Monitoring of Jenkins master 查看资源与请求图表;在 Jenkins 主页 → Manage → System 配置 InfluxDB 地址与库名。
- 在 Grafana 添加数据源(Prometheus/InfluxDB),导入 Jenkins 仪表盘模板(如 9964),即可可视化任务与健康状态。
-
时序与可视化方式(适合长期观测与告警)
- 在 Jenkins 启用 Prometheus metrics 插件,确认可访问 http:///prometheus。
- 在 Prometheus 配置抓取任务:
- job_name: ‘jenkins’
- metrics_path: ‘/prometheus’
- static_configs: targets: [‘<jenkins_ip>:<jenkins_port>’]
- 在 Grafana 添加 Prometheus 数据源,导入 Jenkins 监控面板(如模板 9964),配置阈值与告警规则。
-
脚本与外部集成(适合自动化与对接现有告警平台)
- 使用 REST API 获取任务状态:
curl -u : http:///job/<job_name>/lastBuild/api/json
- 使用 Jenkins CLI 查看控制台日志:
java -jar jenkins-cli.jar -s http:/// console <job_name>/<build_number>
- 将返回结果与阈值判断结合,推送至企业微信/钉钉/Slack 或 Zabbix、Alertmanager 等告警系统。
三 告警与通知配置
- 在 Jenkins 内使用 Email Extension Plugin、Slack Notification Plugin 等,在 构建后步骤 配置失败/不稳定/成功时的通知策略与收件人/频道。
- 在 Prometheus + Alertmanager 或 Grafana 中配置告警规则(如:构建失败率、队列积压、节点离线、响应时间异常),通过 邮件/企业微信/钉钉/Webhook 发送。
四 性能瓶颈排查要点
- 资源与日志:用 top/htop、iostat、iftop/nethogs 观察 CPU、内存、磁盘 I/O、网络;查看 /var/log/jenkins/jenkins.log 与构建日志定位长时步骤与异常。
- 配置与队列:审查 /etc/sysconfig/jenkins 或 /etc/default/jenkins 中的 JVM 参数、执行器数量、线程池;关注 队列大小 与 构建并发,避免资源争用。
- 插件与构建:精简不必要的插件,分析构建流程(可用 Build Time Analyzer),优化脚本与依赖;必要时做 负载测试 验证扩容效果。