Jenkins在Debian上的监控与告警如何设置
小樊
44
2025-12-03 03:33:00
Jenkins在Debian上的监控与告警设置
一 监控方案总览
- 系统层:用 systemd 守护进程与 sysstat 采集主机资源,配合脚本或外部监控系统做存活与性能阈值告警。
- 应用层:在 Jenkins 内安装 Monitoring(JavaMelody) 插件查看 CPU、内存、HTTP 响应时间、当前请求数 等;或使用 Prometheus 插件暴露 /prometheus 指标,由 Prometheus + Grafana 做可视化与告警。
- 任务层:通过 Jenkins REST API 获取 Job/节点 状态,结合定时任务或外部告警引擎(如脚本、企业微信/钉钉机器人)触发通知。
二 快速落地步骤
- 系统与服务监控
- 确认服务存活与自启:sudo systemctl status jenkins;sudo systemctl enable jenkins;sudo systemctl start jenkins。
- 采集系统指标:在 Debian 安装并启用 sysstat(如 apt install sysstat;确认 /etc/default/sysstat 中 ENABLED=true),用 sar/top 等查看 CPU、内存、I/O。
- 简单可用性探测:curl -I http:///login 或调用 Jenkins API(如 /job//lastBuild/api/json)判断返回码是否为 200。
- 应用层监控
- JavaMelody:在 Jenkins 管理端安装 Monitoring 插件,访问 “Manage Jenkins → Monitoring of Jenkins master” 查看 CPU、内存、HTTP 响应时间、请求数 等图表(该插件侧重监控展示,不负责阈值告警)。
- Prometheus:在 Jenkins 安装 Prometheus metrics 插件,Jenkins 会暴露 /prometheus 指标端点;在 Prometheus 配置 scrape(示例见下文),Grafana 添加 Prometheus 数据源并导入 Jenkins 面板(如 ID 9964)。
三 告警配置
- 邮件告警(内置 + 扩展)
- 安装插件:Email Extension 与 Email Extension Template。
- 在 “Manage Jenkins → Configure System” 配置 SMTP(服务器、端口、SSL/TLS、发件人、授权码/密码),可用“Test configuration by sending test e-mail”验证。
- 在 Job 的 “Post-build Actions → Editable Email Notification” 设置收件人、主题、内容模板与触发条件(如 Failure-Any、Unstable、Success 等),支持变量如 $PROJECT_NAME、 $BUILD_NUMBER、 $BUILD_STATUS、 $BUILD_URL。
- 即时通讯与Webhook
- Slack:安装 Slack 插件,在系统配置填入团队域名与 Token,在 Job 中添加 “Slack Notifications” 并选择频道与触发事件。
- 企业微信/钉钉:安装对应通知插件,创建群机器人获取 Webhook,在系统或 Job 中配置并设定触发条件,实现构建结果推送。
四 Prometheus与Grafana配置示例
- Prometheus 抓取 Jenkins 指标(prometheus.yml 片段)
- 基本抓取:
- job_name: ‘jenkins’
metrics_path: ‘/prometheus’
static_configs:
- targets: [‘<jenkins_ip>:<jenkins_port>’]
- 如需鉴权(Bearer Token):
- job_name: ‘jenkins-auth’
metrics_path: ‘/prometheus’
bearer_token: ‘<your_jenkins_api_token>’
static_configs:
- targets: [‘<jenkins_ip>:<jenkins_port>’]
- 配置完成后热加载或重启 Prometheus,确认 Targets 健康。
- Grafana 可视化
- 添加 Prometheus 数据源(URL 指向 Prometheus)。
- 导入 Jenkins 仪表盘模板(如 9964),查看 构建队列、执行时长、节点在线数、HTTP 请求与响应时间 等关键指标。
五 实用脚本与排错要点
- 节点与构建状态巡检脚本(Python 示例)
- 使用 requests 调用 Jenkins API 检查 节点在线 与 最近一次构建结果,异常时调用通知函数(邮件/企业微信/钉钉)。
- 建议以 systemd 服务或 cron 定时运行(如每 5 分钟),并记录日志以便审计。
- 常见问题排查
- 无法访问 /prometheus:确认插件已启用、Jenkins URL 与端口正确、反向代理/防火墙放行、以及是否需要 Bearer Token。
- 邮件发送失败:核对 SMTP 服务器/端口/SSL/TLS、发件人一致性、授权码是否正确,并用“Test”按钮验证。
- Prometheus 采集失败:检查 targets 状态、网络连通性、认证信息及 metrics_path 是否为 /prometheus。