Jenkins作为自动化工具,可通过内置插件或第三方工具集成(如Prometheus+Grafana、Zabbix)实现对Linux环境的监控,覆盖系统资源(CPU、内存、磁盘)、Jenkins自身状态等维度。以下是具体实现方法:
Jenkins自带多个轻量级插件,无需额外安装即可快速监控Linux系统的基本状态:
Monitoring插件(含JavaMelody)
节点磁盘空间监控插件
若需要更全面的指标采集、长期存储及可视化,可集成Prometheus(监控数据采集)与Grafana(数据可视化):
Prometheus插件配置
/prometheus接口,Prometheus通过该接口拉取Jenkins的性能指标(如作业执行时间、队列长度、节点状态)。/prometheus。Prometheus服务器配置
prometheus.yml中添加Jenkins节点的job配置:scrape_configs:
- job_name: 'jenkins'
metrics_path: '/prometheus'
static_configs:
- targets: ['jenkins_server_ip:8080'] # Jenkins服务器IP及端口
- job_name: 'linux_servers'
static_configs:
- targets: ['linux_node1_ip:9100', 'linux_node2_ip:9100'] # Linux服务器IP及node_exporter端口(需提前安装node_exporter)
② 重启Prometheus使配置生效。Grafana面板配置
http://grafana_server_ip:3000),添加Prometheus为数据源;jenkins_job_duration_seconds表示Jenkins作业执行时间,node_cpu_seconds_total表示Linux CPU使用率),调整面板样式后保存。若需要企业级的集中监控、告警及自动化处理,可集成Zabbix:
Jenkins Metrics插件配置
Zabbix服务器配置
Zabbix Agent配置
yum install zabbix-agent -y);/etc/zabbix/zabbix_agentd.conf),设置Server(Zabbix Server IP)、ServerActive(Zabbix Server IP)、Hostname(主机名);systemctl restart zabbix-agent)。告警规则配置
{linux_node1:system.cpu.util[,idle].last()}<20表示CPU空闲率低于20%);若不想依赖第三方工具,可通过Jenkins的Shell构建步骤定期执行Linux命令(如top、free、df),将结果保存到文件或发送邮件:
配置Shell脚本
monitor_linux.sh):#!/bin/bash
# 采集CPU、内存、磁盘信息
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
MEM_USAGE=$(free -m | awk '/Mem:/ {printf "%.2f%%", $3/$2*100}')
DISK_USAGE=$(df -h / | awk '/\// {print $5}')
# 输出到日志文件
echo "$(date '+%Y-%m-%d %H:%M:%S') - CPU Usage: ${CPU_USAGE}%, Memory Usage: ${MEM_USAGE}, Disk Usage: ${DISK_USAGE}" >> /var/log/jenkins/linux_monitor.log
# 发送邮件告警(需配置Jenkins邮件通知)
if (( $(echo "$DISK_USAGE > 90%" | bc -l) )); then
echo "Disk usage on Linux server is over 90%! Current usage: ${DISK_USAGE}" | mail -s "Jenkins Linux Disk Alert" admin@example.com
fi
chmod +x /path/to/monitor_linux.sh。Jenkins任务配置
/path/to/monitor_linux.sh);H * * * *),定期执行脚本。通过上述方法,可根据需求选择轻量级(内置插件)、可视化(Prometheus+Grafana)或企业级(Zabbix)的监控方案,实现对Linux环境的全面监控。