首页主机资讯Linux Jenkins如何监控系统状态

Linux Jenkins如何监控系统状态

时间2025-12-22 13:22:03发布访客分类主机资讯浏览1347
导读:Linux 上监控 Jenkins 的可落地方案 一 监控目标与分层 建议将监控分为两层: Jenkins 业务层(Job/构建、队列、Executor、节点在线状态等); 操作系统层(CPU、内存、磁盘 I/O、网络等)。 典型...

Linux 上监控 Jenkins 的可落地方案


一 监控目标与分层

  • 建议将监控分为两层:
    1. Jenkins 业务层(Job/构建、队列、Executor、节点在线状态等);
    2. 操作系统层(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
  • 步骤 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
    • 可用于外部系统做健康检查、状态看板或二次告警。
  • 命令行巡检
    • 在 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
Linux虚拟机如何选择合适的发行版 swagger在ubuntu上的使用限制

游客 回复需填写必要信息