centos jenkins监控与告警设置
导读:CentOS 上搭建 Jenkins 监控与告警的实用方案 一 监控体系总览与准备 监控目标分层 基础设施:CPU、内存、磁盘 IO、网络、系统负载(Node Exporter → Prometheus)。 Jenkins 进程与 J...
CentOS 上搭建 Jenkins 监控与告警的实用方案
一 监控体系总览与准备
- 监控目标分层
- 基础设施:CPU、内存、磁盘 IO、网络、系统负载(Node Exporter → Prometheus)。
- Jenkins 进程与 JVM:JVM 堆/非堆、GC、线程、HTTP 请求耗时(Jenkins Prometheus 插件)。
- 业务与流水线:Job 排队、构建时长、失败率、不稳定率(Prometheus/Grafana 或 InfluxDB/Grafana)。
- 日志:实时检索与告警(Filebeat/Logstash → Elasticsearch/Kibana 或 Splunk)。
- 准备与权限
- 建议以 Jenkins 专用系统用户运行,开启 Jenkins URL 与 API 访问;必要时为监控与告警创建 只读/凭证。
- 防火墙放行 Jenkins 8080 与 Prometheus 9090 等端口(如启用防火墙)。
二 系统与应用日志监控
- 实时查看与检索
- Jenkins 应用日志:tail -f /var/log/jenkins/jenkins.log;配合 grep/less 检索关键字(如 “ERROR”“OutOfMemoryError”)。
- Web 端日志:Manage Jenkins → System Log,可按日志级别与类型浏览。
- 日志轮转与保留
- 在 /etc/logrotate.d/jenkins 创建配置,示例:
/var/log/jenkins/*.log { daily rotate 7 compress missingok notifempty create 0644 jenkins jenkins sharedscripts postrotate if [ -f /var/run/jenkins/jenkins.pid ]; then kill -HUP $(cat /var/run/jenkins/jenkins.pid) fi endscript } - 说明:按日轮转、保留 7 天、压缩旧日志,并通过 SIGHUP 通知 Jenkins 重新打开日志文件。
- 在 /etc/logrotate.d/jenkins 创建配置,示例:
- 集中式日志与告警
- 将 /var/log/jenkins/ 接入 ELK(Elasticsearch/Logstash/Kibana) 或 Splunk,便于统一检索、可视化与基于日志的告警规则(如错误关键字频发)。
三 指标监控 Prometheus Grafana 与 JavaMelody
- Prometheus + Grafana(推荐)
- Jenkins 插件:安装 Prometheus metrics 插件,暴露 /prometheus 指标端点。
- Prometheus 抓取示例(prometheus.yml):
scrape_configs: - job_name: 'jenkins' metrics_path: '/prometheus' static_configs: - targets: ['< jenkins_ip> :8080'] - Grafana:添加 Prometheus 数据源,导入 Jenkins 仪表板模板(如 ID 9964),即可查看构建队列、构建时长、节点状态、HTTP 响应时间等。
- JavaMelody(轻量内置可视化)
- 安装 Monitoring 插件(JavaMelody),在 Manage Jenkins 可见 Monitoring of Jenkins master 仪表盘,覆盖 CPU、内存、HTTP 响应时间、当前请求数 等;适合快速上手与单机观测。
- InfluxDB + Grafana(可选)
- 安装 InfluxDB 与 Jenkins InfluxDB 插件,将 Job 与构建结果写入 InfluxDB,再由 Grafana 展示趋势与对比分析。
四 告警通道与触发规则
- 邮件告警(Email Extension)
- 插件:Email Extension Plugin(可配合模板插件)。
- 系统配置:Manage Jenkins → Configure System → Extended E-mail Notification,配置 SMTP、端口、SSL/TLS、发件人;使用“Test configuration by sending test e-mail”验证。
- 任务配置:Post-build Actions → Editable Email Notification,设置收件人、主题/内容模板、触发条件(如 Failure - Any、Unstable、Success、回归稳定等)。
- 内容变量:常用 $BUILD_NUMBER、$BUILD_STATUS、$BUILD_URL、$PROJECT_NAME、$CONSOLE_OUTPUT 等,支持 HTML 与附件。
- 即时通信与短信
- Slack:安装 Slack Notification 插件,配置团队域名与 Token,在任务中按事件推送至指定频道。
- 企业微信:安装企业微信通知插件,配置 CorpID/AppID/Secret,在任务中选择接收人与触发条件。
- 短信:按服务商集成(插件或 API),在系统配置与任务中设置号码与触发条件。
- Prometheus 侧告警(可选)
- 在 Prometheus 配置 Alertmanager,对关键指标设置阈值与路由(如:构建队列过长、节点离线、HTTP 5xx 增多、JVM Full GC 频繁等),通过 邮件/企业微信/Slack/Webhook 发送告警。
五 快速落地清单
- 基础与日志
- 确认 Jenkins 8080 访问与日志路径 /var/log/jenkins/jenkins.log 可读取。
- 部署 logrotate 策略,保证日志按日轮转与压缩,避免磁盘被占满。
- 指标与可视化
- 安装 Prometheus metrics 插件,在 Prometheus 中添加抓取任务,Grafana 导入 9964 仪表板并验证指标采集。
- 告警
- 配置 SMTP 邮件并在关键任务上启用 Editable Email Notification(至少包含 Failure/Unstable 触发)。
- 按需启用 Slack/企业微信/短信 通知,覆盖值班与研发群组。
- 巡检与优化
- 每周巡检:构建失败率、平均构建时长、节点在线率、磁盘与 JVM 使用趋势;结合日志与指标定位瓶颈并优化流水线/资源。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos jenkins监控与告警设置
本文地址: https://pptw.com/jishu/754338.html
