整体思路
- 在 CentOS 上监控 Jenkins 资源,建议采用“主机层 + Jenkins 层 + 可视化告警层”的三层方案:
- 主机层:采集 CPU、内存、磁盘 I/O、网络 等系统指标。
- Jenkins 层:采集 JVM、构建队列、执行器、构建时长/失败率 等业务指标。
- 可视化告警层:用 Grafana 展示,配合 Prometheus/InfluxDB 存储,设置阈值告警。
方案一 Prometheus Grafana 监控
- 在 Jenkins 安装并启用 Prometheus metrics 插件,生成访问密钥,暴露 /metrics 端点供采集。
- 在 Prometheus 配置抓取任务,指向 Jenkins 的 metrics URL(含 basic auth 或 API Token)。
- 在 Grafana 导入官方或社区仪表板(如模板 ID 9964),展示节点与 Jenkins 指标。
- 可同时采集主机指标(如 node_exporter),在 Grafana 统一面板展示“主机 + Jenkins”整体视图。
方案二 InfluxDB Grafana 监控
- 在 Jenkins 安装 InfluxDB 插件,配置 InfluxDB 地址、数据库与凭证,将 Job/构建结果/耗时 写入 InfluxDB。
- 在 Grafana 连接 InfluxDB 数据源,使用构建与系统相关面板进行可视化。
- 适合以“构建时序与质量”为核心的可视化与报表需求。
方案三 使用内置与系统监控插件
- 在 Jenkins 安装 Monitoring 插件(亦称 JavaMelody 等同类监控插件),在 Manage Jenkins → Monitoring 查看 JVM、HTTP、线程、会话、构建 等图表,便于快速定位性能问题。
- 在 CentOS 主机使用 top/htop/atop 观察 CPU、内存、磁盘 I/O、网络 使用情况,并定期检查 Jenkins 日志(如 /var/log/jenkins/jenkins.log)与 构建日志,定位异常任务与瓶颈。
关键指标与阈值建议
- 主机层:关注 CPU 负载、可用内存、磁盘使用率与 IOPS、网络带宽与丢包;磁盘空间不足或 I/O 长时间打满,常导致构建卡顿或失败。
- Jenkins 层:关注 JVM 堆使用率与 GC 行为、构建队列长度、执行器利用率、构建时长与失败率;队列长期不为空或执行器满负荷,通常意味着需要扩容或优化构建流程。
- 调优方向:合理设置 JVM 堆(如 -Xmx/-Xms)、限制 并发构建数、清理 历史构建 释放磁盘、必要时 扩展节点或启用分布式构建,可显著提升稳定性与吞吐。
快速落地步骤
- 部署采集:
- 选择其一:部署 Prometheus + Grafana(推荐)或 InfluxDB + Grafana;主机层建议同时部署 node_exporter。
- 配置 Jenkins:
- 安装并启用 Prometheus metrics 插件(或 InfluxDB 插件),完成数据源与凭证配置,确保 /metrics 或写入端点可达。
- 配置可视化与告警:
- Grafana 导入面板(如 9964),创建 CPU/内存/磁盘/构建队列 等阈值告警规则,接入 邮件/企业微信/Slack 等通知渠道。
- 验证与优化:
- 制造一定负载,观察指标是否上报、面板是否展示、告警是否触发;根据趋势调整 JVM、并发、存储与节点 配置。