温馨提示×

Debian上Jenkins的监控与告警如何设置

小樊
34
2025-11-15 07:25:26
栏目: 智能运维

Debian上Jenkins的监控与告警设置

一 监控方案总览

  • 系统层:用 systemd 守护进程、Debian 资源工具查看 CPU/内存/磁盘/IO,保障 Jenkins 进程与服务可用性。
  • 应用层:在 Jenkins 内安装插件获取指标与可视化,如 Monitoring(JavaMelody)Prometheus metrics
  • 可视化与告警:用 Prometheus + Grafana 做指标可视化与阈值告警;用 邮件脚本 做作业级事件告警。

二 系统层监控与基础告警

  • 服务可用性
    • 查看状态:sudo systemctl status jenkins
    • 启动/自启:sudo systemctl start jenkins && sudo systemctl enable jenkins
    • 若异常,优先检查日志:sudo journalctl -u jenkins -f
  • 资源与性能
    • CPU/内存/负载:top/htopfree -muptime
    • 磁盘与 IO:df -hiostat -x 1
    • 网络:iftopnethogs
  • 简易可用性脚本(示例)
    • 5 分钟探测 http:///login;非 200 或超时即触发告警(可扩展为企微/钉钉/短信)。

三 应用层监控插件

  • Monitoring 插件(JavaMelody)
    • 功能:提供 内存、CPU、HTTP 响应时间、当前请求数 等维度,开箱即用,适合快速观测。
    • 入口:Manage Jenkins → Manage Plugins 安装 Monitoring;访问 /monitoring 查看仪表盘。
    • 说明:该插件侧重监控展示,不具备内置告警,可结合外部监控系统做阈值告警。
  • Prometheus metrics 插件
    • 功能:在 Jenkins 暴露 /prometheus 指标端点,供 Prometheus 抓取,适合长期趋势与容量规划。
    • 入口:安装 Prometheus metrics 插件后,确认 http:///prometheus 可访问。

四 Prometheus Grafana 监控与告警配置

  • 部署与抓取
    • Prometheus 配置片段(示例):
      • job_name: “jenkins”
      • metrics_path: “/prometheus”
      • scheme: http
      • static_configs:
        • targets: [“<jenkins_ip>:<jenkins_port>”]
    • 重载 Prometheus 配置并检查 Targets 健康。
  • 可视化
    • Grafana 添加 Prometheus 数据源,导入 Jenkins 仪表盘模板(如 ID 9964),查看 构建队列、执行时长、节点状态 等。
  • 告警规则示例(Prometheus)
    • 作业失败激增:
      • ALERT JenkinsJobFailureSpike
      • IF increase(jenkins_job_build_failed_total[5m]) > 0
      • FOR 2m
      • LABELS { severity=“warning” }
      • ANNOTATIONS { summary=“Jenkins 作业失败增加”, description=“最近5分钟失败构建数增加” }
    • 节点离线:
      • ALERT JenkinsNodeOffline
      • IF jenkins_node_offline == 1
      • FOR 1m
      • LABELS { severity=“critical” }
      • ANNOTATIONS { summary=“Jenkins 节点离线”, description=“节点 {{ $labels.node }} 处于离线状态” }
    • 建议将告警接入 Alertmanager,通过 邮件/企业微信/钉钉/Webhook 发送。

五 作业级事件告警

  • 邮件告警
    • 安装 Email ExtensionEmail Extension Template 插件。
    • Manage Jenkins → System 配置 SMTP,在 Job 的 Post-build Actions 使用 “Editable Email Notification” 设置主题、收件人、触发条件(如 Failure/Unstable/Always)。
  • Webhook/脚本告警
    • 在 Job 的 Post-build Actions 使用 “HTTP Request” 或 “Execute system command” 调用企业微信/钉钉机器人 Webhook,或执行自定义脚本推送告警。
  • 命令行与 API 辅助
    • 通过 Jenkins CLIREST API 获取 节点在线状态构建结果 等,作为外部监控/自愈脚本的数据源。

0