温馨提示×

centos jenkins部署后如何监控

小樊
45
2026-01-02 09:29:33
栏目: 智能运维

监控目标与总体架构

  • 建议从四个维度建立监控:
    • Jenkins 业务指标:节点在线状态、构建队列长度、Executor 使用率、构建成功率/耗时、失败趋势等。
    • 操作系统资源:CPU、内存、磁盘 I/O、网络、文件句柄等。
    • 日志:实时查看与集中化存储、检索、告警。
    • 告警:基于阈值与异常趋势触发通知(如企业微信、钉钉、邮件)。
  • 架构建议:在 CentOS 上以 Prometheus 采集指标、Grafana 展示面板,Jenkins 侧安装 Prometheus Metrics Plugin 暴露 /prometheus 端点;系统层面用 Node Exporter 采集主机指标;日志用 logrotate 管理并通过 ELK/Splunk 集中;告警在 Prometheus 或 Grafana 中配置。

Jenkins 业务指标监控 Prometheus + Grafana

  • 安装与暴露指标
    • 在 Jenkins 管理界面安装 Prometheus Metrics Plugin,安装完成后自动暴露 http://<jenkins_host>:8080/prometheus
    • 常用指标示例:
      • 节点在线状态:default_jenkins_nodes_online{node="agent1"} 1(1 在线,0 离线)
      • 构建队列长度:jenkins_queue_size
      • Executor 使用:jenkins_executor_usage
      • 构建成功率/耗时:jenkins_job_build_success_ratiojenkins_job_duration_seconds
  • Prometheus 抓取配置
    • prometheus.yml 增加 job:
      • job_name: ‘jenkins’ scrape_interval: 15s static_configs:
        • targets: [‘jenkins.example.com:8080’] metrics_path: /prometheus
  • Grafana 面板与告警
    • 导入 Jenkins 社区面板(如 ID 9964),或自建图表(节点在线、队列、成功率、耗时 P95/P99)。
    • 示例告警规则(节点离线):
      • alert: JenkinsNodeOffline expr: default_jenkins_nodes_online == 0 for: 2m labels: severity: warning annotations: summary: “Jenkins 节点离线” description: “Jenkins 节点 {{ $labels.node }} 已离线超过 2 分钟”。

系统与 JVM 监控

  • 主机层面
    • 部署 Node Exporter(默认端口 9100)采集 CPU、内存、磁盘、网络等,Prometheus 同样以 scrape 方式拉取。
    • 在 CentOS 上可用 sysstat(如 sar)做细粒度性能回溯分析。
  • JVM 层面
    • 调整 JVM 参数(如在 Jenkins 启动脚本或 systemd 环境变量中设置 JAVA_ARGS="-Xmx4096m -Xms4096m"),避免频繁 Full GC 与 OOM。
    • 使用 Java VisualVM / JConsole 远程连接观察堆内存、线程、类加载、GC 情况,辅助定位构建高峰期的性能瓶颈。

日志与告警实践

  • 日志管理与检索
    • 实时查看:sudo tail -f /var/log/jenkins/jenkins.log
    • 日志轮转:在 /etc/logrotate.d/jenkins 配置按日轮转、保留 7 天、压缩旧日志,并在轮转后发送 HUP 信号重载 Jenkins 日志句柄。
    • 集中化:将日志接入 ELK(Elasticsearch/Logstash/Kibana)Splunk,便于检索、可视化与统一告警。
  • 告警渠道
    • 在 Prometheus 配置告警规则后对接 Alertmanager,或在 Grafana 中配置 钉钉/企业微信/邮件 通知;结合业务阈值(如队列积压、节点离线、构建失败率突增)触发。

快速检查清单

监控项 采集方式 关键指标或动作
Jenkins 节点在线 Prometheus + Prometheus Metrics Plugin default_jenkins_nodes_online{node="..."};离线即告警
构建队列与 Executor Prometheus jenkins_queue_sizejenkins_executor_usage;持续高队列提示扩容
构建成功率/耗时 Prometheus jenkins_job_build_success_ratiojenkins_job_duration_seconds;P95/P99 趋势
主机资源 Node Exporter + sysstat CPU/内存/磁盘 IO/网络;异常时联动排查
JVM 健康 JVisualVM/JConsole + 合理 Xmx/Xms 堆内存、GC 次数/时间;避免 OOM 与长时间停顿
日志留存与检索 logrotate + ELK/Splunk 轮转保留 7 天、压缩;关键字/错误堆栈告警
面板与告警 Grafana + Prometheus/Alertmanager 导入 Jenkins 面板;配置节点离线、队列积压等告警规则

0