Ubuntu 上 Jenkins 项目进度监控实践
一 核心监控方式与关键指标
- 使用 Jenkins Web 界面查看每个 Job 的构建历史、控制台日志、结果与耗时,直观掌握进度与失败原因。
- 通过 Jenkins REST API 拉取构建状态与结果,便于集成到自研看板或自动化流程:
示例:curl -u 用户名:密码 http://<JENKINS_URL>/job/<JOB_NAME>/lastBuild/api/json
- 借助 插件增强可视化与告警:如 Email Extension 与 Slack Notification 发送构建结果通知;Monitoring(JavaMelody) 生成包含 CPU、系统负载、内存、HTTP 响应时间 的 HTML 报告;节点磁盘空间监控插件在磁盘低于阈值时告警。
- 引入 Prometheus + Grafana 做指标可视化与长期趋势分析,配合 Alertmanager 配置告警规则(邮件、短信等)。
- 使用 Zabbix 等第三方监控平台,通过插件或监控项采集 Jenkins 节点状态、磁盘空间 等。
- 通过 Jenkins-monitor 等工具对 Jenkins 集群进行状态与性能监控。
二 快速落地步骤
- 插件安装与配置
- 进入 Manage Jenkins → Manage Plugins,安装:Monitoring(JavaMelody)、Prometheus 插件、Email Extension、Slack Notification、节点磁盘空间监控。
- 安装完成后,在 Manage Jenkins → Configure System 按需配置 SMTP(邮件)与 Slack Webhook(通知)。
- Prometheus 插件启用后,Jenkins 会暴露指标端点,供 Prometheus 抓取。
- Prometheus + Grafana 可视化
- 在 Prometheus 配置抓取任务(target)指向 Jenkins 指标端点。
- 在 Grafana 导入或创建仪表板,展示 构建成功率、构建时长、队列长度、节点资源 等关键指标。
- 告警配置
- 在 Prometheus 设置告警规则(如:构建失败率升高、节点磁盘不足)。
- 使用 Alertmanager 将告警路由到 邮件、企业微信、钉钉或短信 等渠道。
- 远程与安全访问
- 如需对外访问,建议配置 Nginx 反向代理 + SSL。
- 开放防火墙端口(如 8080 或代理端口),并限制可访问 IP。
三 常用命令与 API 示例
- 获取某任务最新一次构建信息(JSON):
curl -u <USER>:<TOKEN> http://<JENKINS_URL>/job/<JOB_NAME>/lastBuild/api/json
将 <TOKEN> 替换为用户的 API Token(在用户配置中生成),避免明文密码。
- 批量或自动化管理插件(Jenkins CLI):
安装插件:java -jar jenkins-cli.jar -s http://<JENKINS_URL>/ install-plugin <PLUGIN_NAME>
更新插件:java -jar jenkins-cli.jar -s http://<JENKINS_URL>/ update-plugin <PLUGIN_NAME>
卸载插件:java -jar jenkins-cli.jar -s http://<JENKINS_URL>/ uninstall-plugin <PLUGIN_NAME>
- 远程安全访问建议:启用 Nginx + HTTPS,仅放行可信 IP 访问 8080/代理端口。
四 看板与告警建议
- 看板指标与展示
| 维度 |
关键指标 |
推荐展示 |
| 构建健康 |
成功率、失败率、不稳定率 |
Grafana 趋势面板 |
| 效率 |
平均构建时长、队列等待时长 |
统计面板 |
| 资源 |
CPU、内存、磁盘空间、HTTP 响应时间 |
JavaMelody/Prometheus 面板 |
| 环境 |
节点在线/离线、执行器使用率 |
节点状态面板 |
- 告警策略
- 构建类:构建 失败、不稳定、长时间卡住(如超过阈值)。
- 资源类:磁盘空间不足、节点离线、CPU/内存异常。
- 渠道:邮件、Slack、企业微信、钉钉或短信,按团队值班策略路由。
- 远程与合规
- 对外暴露使用 反向代理 + SSL,并限制 IP 白名单;API 调用优先使用 API Token 而非明文密码。