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構建失?。?span class="hljs-template-variable">{{ $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
),告警將自動發送至指定渠道。