Debian Jenkins如何监控系统
小樊
35
2025-11-29 05:20:40
Debian 上监控 Jenkins 的完整方案
一 监控目标与总体架构
- 监控对象与关键指标
- JVM 与构建:堆内存/非堆内存、GC 次数与时间、线程数、构建队列长度、构建时长与成功率。
- 操作系统:CPU、内存、磁盘空间(尤其是 JENKINS_HOME 所在分区)、I/O、网络。
- 服务可用性:Jenkins 进程存活、端口 8080 可达、HTTP 响应时间、节点在线状态。
- 推荐架构
- 系统层:Debian 自带工具(如 systemd、top、free、df、ss)做即时排查;长期趋势建议接入时序监控。
- Jenkins 层:安装 Monitoring 插件(JavaMelody) 获取 JVM/HTTP/请求维度的可视化;安装 Prometheus 插件暴露 /prometheus 指标端点。
- 可视化与告警:Prometheus + Grafana 展示与告警;构建结果通知用 Email Extension 等插件;如需集群/外部可视化可用 Jenkins-monitor。
二 快速上手 系统与服务层检查
- 服务状态与端口
- 检查服务:sudo systemctl status jenkins
- 启动/自启:sudo systemctl start jenkins;sudo systemctl enable jenkins
- 端口监听:ss -tuln | grep 8080 或 netstat -tuln | grep 8080
- 资源与磁盘
- 实时资源:top -p $(pgrep -f jenkins);free -h
- 磁盘空间:df -h(重点看 JENKINS_HOME 所在分区)
- Web 与 CLI 可用性
- Web:访问 http://:8080 观察是否可登录与加载
- CLI:java -jar jenkins-cli.jar -s http://localhost:8080 console 或 jenkins-cli -s http://:8080/ -auth user:token agent list
- 节点在线状态
- 通过 Jenkins API 获取节点信息(如 /computer/api/json),判断 offline/online 状态。
三 Jenkins 层监控与可视化
- Monitoring 插件(JavaMelody)
- 安装后在 系统管理 → 监控 Jenkins 主节点 查看 CPU、内存、系统负载、HTTP 平均响应时间、当前并发请求数 等,适合快速体检与小型团队。
- Prometheus 插件 + Grafana
- 在 Jenkins 安装 Prometheus 插件,暴露 /prometheus 指标端点;Prometheus 配置抓取:
- scrape_configs:
- job_name: ‘jenkins’
metrics_path: ‘/prometheus’
scheme: http
static_configs:
- targets: [‘<jenkins_ip>:’]
- Grafana 添加 Prometheus 数据源并导入 Jenkins 仪表盘模板(如 ID:9964),即可获得构建队列、执行时长、节点健康等面板。
- 构建与任务监控
- 使用 Prometheus/Grafana 观察构建队列、构建时长、失败率等趋势;结合 Email Extension 在构建失败或状态变更时发送通知。
四 告警与日常巡检
- 告警通道
- 邮件告警:安装 Email Extension 与模板插件,配置失败/不稳定构建、节点离线等触发条件。
- 即时通信:如 Slack Notification 插件,将关键告警推送到团队频道。
- 外部告警引擎:使用 ElastAlert 对日志/指标阈值进行规则化告警。
- 日常巡检清单
- 每日:查看 构建队列、节点在线率、磁盘剩余空间、JVM 堆使用是否异常。
- 每周:清理 旧构建与工件、审查 插件更新、检查 并发构建数与资源配额是否匹配。
- 阈值建议:为 磁盘剩余空间设置阈值(如低于 10% 告警),为 构建时长/队列长度设置环比/同比阈值,提前识别资源瓶颈。