Monitoring Plugin(JavaMelody) 是Jenkins官方推荐的监控插件,可提供CPU、内存、系统负载、HTTP响应时间、构建队列等基础指标的可视化,适合小型项目快速上手。
安装步骤:
Prometheus 是开源监控系统,Grafana 是数据可视化工具,二者结合可实现Jenkins指标的实时监控、趋势分析与告警。
配置步骤:
prometheus.yml文件(通常位于/etc/prometheus/),添加以下配置(替换your_jenkins_server_ip为Jenkins服务器IP,30009为Jenkins暴露的端口,默认是8080+/prometheus路径):scrape_configs:
- job_name: 'jenkins'
metrics_path: '/prometheus'
scheme: 'http'
static_configs:
- targets: ['your_jenkins_server_ip:8080']
重启Prometheus使配置生效(systemctl restart prometheus);3000,账号admin),进入「Configuration」→「Data Sources」,添加「Prometheus」数据源(URL填写http://localhost:9090,即Prometheus默认地址);Zabbix 是成熟的企业级监控解决方案,支持Jenkins指标的深度监控与自动化告警。
配置步骤:
jenkins_metrics.sh),通过Jenkins Metrics API获取指标(如http://jenkins_ip:8080/metrics?format=json);通过CentOS自带的systemctl命令可快速查看Jenkins服务状态,适合临时排查问题:
systemctl status jenkins # 查看服务运行状态(active表示运行中)
journalctl -u jenkins -f # 实时查看Jenkins日志(排查启动或运行错误)
若需查看Jenkins进程资源占用,可使用top或htop命令(按q退出)。
Email Extension Plugin 是Jenkins常用的邮件通知插件,支持自定义邮件模板、多收件人及触发条件(如构建失败、不稳定)。
配置步骤:
smtp.qq.com(QQ邮箱)或smtp.163.com(163邮箱);465(SSL)或587(TLS);dev-team@example.com);[Jenkins] ${JOB_NAME} - Build #${BUILD_NUMBER} - ${BUILD_STATUS})与内容(如构建日志摘要)。Slack/微信插件 可实现构建结果的实时推送,适合团队协作场景。
${JOB_NAME} 构建失败,详情:${BUILD_URL})。${JOB_NAME} 构建不稳定,请及时处理)。若使用Prometheus监控,可通过Alertmanager实现复杂告警规则(如多条件组合、静默时段)及多渠道通知(邮件、Slack、PagerDuty等)。
配置步骤:
alert.yml文件(如/etc/prometheus/alert.yml),添加Jenkins告警规则(示例:当构建失败次数超过3次且在5分钟内未恢复时触发告警):groups:
- name: jenkins_alerts
rules:
- alert: JenkinsBuildFailure
expr: rate(jenkins_builds_failed_total[5m]) > 3
for: 5m
labels:
severity: critical
annotations:
summary: "Jenkins构建失败({{ $labels.job }})"
description: "Jenkins任务 {{ $labels.job }} 在过去5分钟内失败次数超过3次,请检查构建日志。"
在prometheus.yml中引入告警规则文件:rule_files:
- "/etc/prometheus/alert.yml"
重启Prometheus使规则生效;alertmanager.yml文件(如/etc/prometheus/alertmanager.yml),添加邮件或Slack接收器(示例:邮件通知):receivers:
- name: 'email-receiver'
email_configs:
- to: 'dev-team@example.com'
from: 'jenkins-alert@example.com'
smarthost: 'smtp.example.com:587'
auth_username: 'your_email@example.com'
auth_password: 'your_email_password'
重启Alertmanager(systemctl restart alertmanager),告警将自动发送至指定渠道。