Linux Jenkins如何监控系统状态
导读:Linux 上监控 Jenkins 的可落地方案 一 监控目标与分层 建议将监控分为两层: Jenkins 业务层(Job/构建、队列、Executor、节点在线状态等); 操作系统层(CPU、内存、磁盘 I/O、网络等)。 典型...
Linux 上监控 Jenkins 的可落地方案
一 监控目标与分层
- 建议将监控分为两层:
- Jenkins 业务层(Job/构建、队列、Executor、节点在线状态等);
- 操作系统层(CPU、内存、磁盘 I/O、网络等)。
- 典型关注点:
- 节点健康:是否有 Agent 离线、Executor 是否耗尽;
- 队列与吞吐:构建排队时长、失败趋势、构建耗时 P95/P99;
- 资源瓶颈:Master/Agent 的 CPU/内存/磁盘/网络 使用是否异常。
- 方案选型建议:
- 业务层用 Prometheus + Grafana(配合 Jenkins Prometheus 插件);
- 系统层用 Node Exporter 采集主机指标;
- 快速自检用 Monitoring(JavaMelody)插件 与 Jenkins REST API。
- 指标示例:
- 节点在线状态:
default_jenkins_nodes_online{ node="agent1"} 1(1=在线,0=离线); - 用途:节点掉线告警、构建健康度、资源与队列趋势分析。
- 节点在线状态:
二 方案一 Prometheus + Grafana 监控 Jenkins 业务层
- 步骤 1 安装插件
- 在 Manage Jenkins → Plugins 安装 Prometheus Metrics Plugin。安装后 Jenkins 会在 /prometheus 暴露指标端点(如:http://:8080/prometheus)。
- 步骤 2 配置 Prometheus 抓取
- 在 prometheus.yml 增加 Job(示例为每 5 分钟抓取一次):
- job_name: 'jenkins' scrape_interval: 5m scrape_timeout: 3m static_configs: - targets: - jenkins.example.com:8080 metrics_path: /prometheus - 如在 Kubernetes 内,targets 可用服务名:
jenkins.jenkins.svc.cluster.local:8080。
- 在 prometheus.yml 增加 Job(示例为每 5 分钟抓取一次):
- 步骤 3 Grafana 可视化
- 添加 Prometheus 数据源,导入 Jenkins 相关面板(可自建或使用社区面板)。
- 节点在线状态示例查询:
- 最新在线状态:
max by (node) (default_jenkins_nodes_online)(Table/Instant 视图便于看最新值)。
- 最新在线状态:
- 步骤 4 常用告警规则
- 节点离线(示例):
- alert: JenkinsNodeOffline expr: default_jenkins_nodes_online == 0 for: 2m labels: severity: warning annotations: summary: "Jenkins 节点离线" description: "Jenkins 节点 { { $labels.node } } 已离线超过 2 分钟" - 可扩展:构建失败率上升、队列积压、构建耗时异常等。
- 节点离线(示例):
三 方案二 主机与 JVM 层监控
- 主机层(Linux 资源)
- 部署 Node Exporter(默认端口 9100),采集 CPU、内存、磁盘、网络 等系统指标;
- 与 Jenkins 指标分离:Node Exporter 关注“机器”,Jenkins 插件关注“CI/CD 业务”。
- JVM 与应用层(Master 进程)
- 安装 Monitoring 插件(JavaMelody),在 Manage Jenkins → Monitoring of Jenkins master 查看 内存、CPU、HTTP 响应时间、当前请求数 等;
- 适合快速洞察 Master 负载与健康,但不提供强大的告警能力。
四 快速自检与 API 集成
- REST API 获取状态
- 获取某 Job 最新构建结果:
curl -u 用户名:密码 http://< jenkins> :8080/job/< job_name> /lastBuild/api/json - 可用于外部系统做健康检查、状态看板或二次告警。
- 获取某 Job 最新构建结果:
- 命令行巡检
- 在 Master/Agent 上用 top/htop、iostat、iftop/nethogs 等排查资源瓶颈;
- 在 Jenkins 任务中以 Shell 执行
top、free、df等命令收集系统信息,做趋势记录或阈值判断。
五 告警与通知实践
- 在 Prometheus 中配置 节点离线、队列积压、构建失败率上升 等告警规则,结合 Alertmanager 发送到企业微信/钉钉/邮件。
- 在 Jenkins 内使用 Email Extension 等插件做构建结果通知与日报;
- 如需更丰富的可视化与统一告警视图,可引入 Grafana 展示与 ElastAlert 等日志告警工具联动。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux Jenkins如何监控系统状态
本文地址: https://pptw.com/jishu/777309.html
