温馨提示×

Linux下Jenkins如何监控

小樊
35
2025-12-20 04:10:02
栏目: 智能运维

Linux下Jenkins监控实践

一 监控体系总览

  • 建议采用分层监控:系统层用Node Exporter采集CPU、内存、磁盘、网络等主机指标;应用层用Jenkins Prometheus Metrics Plugin暴露Job、构建、节点、队列、Executor等CI/CD指标;可视化与告警用Grafana + Prometheus Alertmanager;构建结果通知用Email Extension、Slack Notification等插件。这样既能看到机器健康,也能衡量流水线效率与稳定性。

二 快速落地步骤 Prometheus Grafana

  • 安装插件:在Jenkins“插件管理”安装Prometheus Metrics Plugin,安装后Jenkins会在**/prometheus**路径暴露指标,例如:http://<jenkins_host>:8080/prometheus
  • 配置抓取:在Prometheus的prometheus.yml增加Job(示例抓取间隔5m,可按需调整):
    • job_name: ‘jenkins’ scrape_interval: 5m scrape_timeout: 3m static_configs:
      • targets: [‘jenkins.example.com’] metrics_path: /prometheus
  • 常用告警示例(PromQL):节点离线告警
    • alert: JenkinsNodeOffline expr: default_jenkins_nodes_online == 0 for: 2m labels: severity: warning annotations: summary: “Jenkins 节点离线” description: “Jenkins 节点 {{ $labels.node }} 已离线超过 2 分钟”
  • Grafana展示:添加Prometheus数据源,导入或自建面板;如需展示节点在线状态的最新值,可用查询:max by (node) (default_jenkins_nodes_online),面板选择Table + Instant模式便于查看最新状态。

三 主机与应用指标对照

维度 指标示例 采集方式 主要用途
主机资源 CPU、内存、磁盘IO、网络 Node Exporter :9100/metrics 发现宿主机瓶颈、容量规划
Jenkins节点 default_jenkins_nodes_online(1在线/0离线) Jenkins /prometheus 及时发现Agent掉线
队列与执行器 Queue长度、Executor使用情况 Jenkins /prometheus 判断是否需要扩容构建资源
构建健康 构建成功率、构建耗时、失败趋势 Jenkins /prometheus 定位不稳定测试或问题代码
说明:Node Exporter与应用解耦,专注系统层;Jenkins Prometheus插件运行在JVM内,专注CI/CD业务层,两者互补。

四 告警与通知配置

  • 构建结果通知:在Jenkins中安装Email ExtensionSlack Notification等插件,按“失败/不稳定/恢复”等状态触发邮件或Slack消息,适合团队即时响应构建异常。
  • 指标告警:使用Prometheus + Alertmanager对关键指标(如节点离线、队列积压、构建失败率突增)配置分级告警,结合路由与抑制减少告警风暴,保障SRE可观测性。

五 进程守护与应急

  • 简单自愈脚本:通过Shell定时检查jenkins进程,若进程不存在则自动启动并记录时间,示例循环间隔60s;用于临时兜底,生产环境建议配合systemd或专业的进程管理/容器编排方案使用。
  • 系统级监控补充:在Linux上启用sysstat(如sar)收集历史性能数据,用于容量分析与问题回溯,与Jenkins指标结合能更快定位根因。

0