Jenkins在Debian上的监控与报警设置
导读:Jenkins 在 Debian 上的监控与报警设置 一 监控架构与采集范围 建议采用分层监控:系统层用 Node Exporter 采集 CPU、内存、磁盘、网络;应用层用 Jenkins Prometheus Metrics Plug...
Jenkins 在 Debian 上的监控与报警设置
一 监控架构与采集范围
- 建议采用分层监控:系统层用 Node Exporter 采集 CPU、内存、磁盘、网络;应用层用 Jenkins Prometheus Metrics Plugin 暴露 /prometheus 端点采集 Job、构建、节点(Agent)、队列、Executor 等业务指标。两者互补,前者看机器健康,后者看 CI/CD 运行状况。Jenkins 插件会在 http://< jenkins_host> :8080/prometheus 提供指标;Node Exporter 默认在 :9100/metrics。在 Prometheus 中分别抓取即可。
二 快速落地步骤
- 系统层指标采集(Debian)
- 安装并启动 Node Exporter(建议作为系统服务常驻):
- 下载解压 Node Exporter,创建用户与 systemd 服务,启动后访问 http://< debian_ip> :9100/metrics 验证。
- 安装并启动 Node Exporter(建议作为系统服务常驻):
- 应用层指标采集(Jenkins)
- 在 Jenkins 管理界面安装 Prometheus Metrics Plugin,确认 http://< jenkins_host> :8080/prometheus 可访问。
- Prometheus 抓取配置
- 在 prometheus.yml 增加两个 job(示例):
- 抓取 Jenkins:
- job_name: ‘jenkins’
- metrics_path: ‘/prometheus’
- static_configs:
- targets: [‘< jenkins_host> :8080’]
- 抓取 Node Exporter:
- job_name: ‘node’
- static_configs:
- targets: [‘< debian_ip> :9100’]
- 抓取 Jenkins:
- 热加载或重启 Prometheus,约 1–2 分钟后在 UI 可见指标。
- 在 prometheus.yml 增加两个 job(示例):
- Grafana 可视化
- 添加 Prometheus 数据源,导入 Jenkins 仪表盘模板(如 ID 9964),即可查看 节点在线状态、构建成功率、构建耗时、队列与 Executor 使用 等面板。
三 报警规则与通知
- Prometheus 侧告警示例
- 节点离线(示例阈值:离线超过 2 分钟):
- alert: JenkinsNodeOffline expr: default_jenkins_nodes_online == 0 for: 2m labels: severity: warning annotations: summary: “Jenkins 节点离线” description: “Jenkins 节点 { { $labels.node } } 已离线超过 2 分钟”
- 队列积压(示例阈值:>
10 持续 5 分钟):
- alert: JenkinsQueueBacklog expr: jenkins_queue_size > 10 for: 5m labels: severity: warning annotations: summary: “Jenkins 队列积压” description: “当前队列长度 { { $value } } ”
- 构建失败率上升(示例:近 1 小时失败率 >
20%):
- alert: JenkinsHighFailureRate
expr: |
sum(rate(jenkins_builds_failed_total[1h]))
/
sum(rate(jenkins_builds_total[1h]))
0.2 for: 5m labels: severity: critical annotations: summary: “Jenkins 构建失败率升高” description: “近 1 小时失败率 { { $value | humanizePercentage } } ”
- alert: JenkinsHighFailureRate
expr: |
sum(rate(jenkins_builds_failed_total[1h]))
/
sum(rate(jenkins_builds_total[1h]))
- 节点离线(示例阈值:离线超过 2 分钟):
- 告警通知渠道
- 企业常用 Email、Slack、企业微信/钉钉 等。Jenkins 侧可通过 Email Extension Plugin 配置 SMTP(如 QQ/企业邮箱 的授权码),在 Job 的构建后动作中按触发条件(如 Failure-Any)发送富文本模板邮件;也可结合 Webhook 推送至 IM 工具。
四 关键指标与面板建议
- 节点健康
- 指标:default_jenkins_nodes_online;用途:快速发现 Agent 掉线 并触发恢复流程。
- 任务执行
- 指标:jenkins_builds_total / jenkins_builds_failed_total / jenkins_build_duration_seconds_sum;用途:统计 成功率、失败趋势、耗时 P95/P99,定位不稳定测试或瓶颈。
- 资源与负载
- 指标:jenkins_queue_size、jenkins_executor_in_use / jenkins_executor_free;用途:判断 是否需要扩容 构建资源或优化并发。
- 系统层
- 指标:node_cpu_seconds_total、node_memory_MemAvailable_bytes、node_filesystem_avail_bytes、node_network_receive_bytes_total;用途:排查 CPU/内存/磁盘/网络 对构建的影响。
五 运维与稳定性要点
- 保持 Jenkins 与插件 及时更新,减少安全与性能隐患;定期 备份配置与插件。
- 合理设置 JVM 堆大小、并发构建数,并定期 清理旧构建与工件,避免 磁盘空间 被占满导致异常。
- 结合 Logwatch/Fail2ban 做系统级日志审计与暴力访问防护,提升整体稳定性与安全性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Jenkins在Debian上的监控与报警设置
本文地址: https://pptw.com/jishu/784840.html
