Ubuntu Jenkins日志分析方法
Jenkins在Ubuntu上的核心日志文件为/var/log/jenkins/jenkins.log(记录主程序运行信息),每个Job的构建日志默认保存在$JENKINS_HOME/jobs/<job-name>/builds/<build-number>/log(可通过Web界面直接访问)。
cat命令输出日志全部内容(适合小文件);less/more支持分页浏览(适合大文件)。sudo cat /var/log/jenkins/jenkins.log
sudo less /var/log/jenkins/jenkins.log
tail -f命令可实时显示日志新增内容(常用于跟踪正在运行的任务)。sudo tail -f /var/log/jenkins/jenkins.log
grep命令过滤特定关键词(如“ERROR”“FAILED”),快速定位问题。sudo grep "ERROR" /var/log/jenkins/jenkins.log
awk提取特定字段(如错误行号),sed提取匹配行(适合结构化日志处理)。sudo awk '/ERROR/ {print $0}' /var/log/jenkins/jenkins.log # 提取包含ERROR的行
sudo sed -n '/FAILED/p' /var/log/jenkins/jenkins.log # 提取包含FAILED的行
Manage Jenkins→System Log,查看Jenkins主程序及全局插件日志(涵盖系统级错误、插件加载问题等)。Build History,点击具体构建编号,选择Console Output,查看该次构建的详细步骤(包括命令执行、测试结果、部署状态等)。/var/log/jenkins/*.log);/etc/logrotate.d/jenkins中添加以下配置,实现日志自动轮转(每天1次,保留7天,压缩旧日志):/var/log/jenkins/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0644 root adm
sharedscripts
postrotate
if [ -f /var/run/jenkins/jenkins.pid ]; then
kill -HUP $(cat /var/run/jenkins/jenkins.pid)
fi
endscript
}
0 * * * * find /var/log/jenkins/ -type f -name "*.log" -mtime +7 -exec rm -f {} \;
NullPointerException),快速定位问题根源。FINE、INFO、WARNING),避免过多无关日志占用空间(路径:Manage Jenkins→System Log→Add new log recorder)。/var/log/jenkins/目录大小,当日志文件超过阈值(如10GB)时触发告警,及时处理。