ETL自动化Jenkins服务异常停止,如何查看历史系统日志?
Jenkins历史日志查看方法&默认路径指南
嘿,刚好之前碰到过类似的Jenkins服务异常停止+日志找不到的问题,给你梳理下解决方案:
一、先搞清楚Jenkins日志存在哪?
不同部署环境的默认路径不一样,给你列几个最常见的:
- Linux/Unix服务器:默认日志文件在
/var/log/jenkins/jenkins.log。如果是直接用war包启动的Jenkins,日志会直接输出到启动的终端窗口,你可以通过命令重定向到文件保存,比如java -jar jenkins.war > jenkins.log 2>&1 - Windows系统:如果是作为Windows服务安装的,日志在
C:\Program Files\Jenkins\logs\jenkins.log;要是直接跑war包,日志就打在命令提示符里,同样可以重定向到本地文件 - Docker部署:实时日志可以用
docker logs <你的Jenkins容器ID/名称>查看,容器内部的日志文件路径也是/var/log/jenkins/jenkins.log,要是想持久化保存日志,记得把宿主机目录挂载到这个路径上
二、怎么看过往日期的历史日志?
Jenkins默认的日志策略一般只保留当前的日志(或者少量滚动日志文件),要找历史日志可以这么操作:
- 检查日志目录下的滚动文件:多数系统里Jenkins会用日志滚动工具(比如Linux的logrotate,Windows服务自带的日志滚动),在日志存储目录下,你会看到类似
jenkins.log.1、jenkins.log.2.gz这类带后缀的文件,这些就是历史日志。Linux下可以用cat jenkins.log.1或者zcat jenkins.log.2.gz(压缩文件用这个)查看,Windows直接用记事本打开就行 - 调整日志保留策略:如果默认的保留天数不够,你可以修改配置来存更久的日志:
- Linux系统:编辑
/etc/logrotate.d/jenkins文件,找到rotate参数,比如改成rotate 30就会保留30天的日志,保存后logrotate会自动按这个配置执行 - 用war包启动的话,可以通过JVM参数指定日志滚动规则,比如先创建一个
logging.properties配置文件,然后启动命令改成java -Djava.util.logging.config.file=logging.properties -jar jenkins.war,在配置文件里设置日志的滚动数量和大小
- Linux系统:编辑
- 借助插件扩展日志功能:如果需要在Jenkins网页端查看历史日志,可以安装Log Recorder插件,它可以帮你自定义采集特定类别的日志,并且保留历史记录,不过这个更适合针对性的日志追踪,不是全量的系统日志
另外,排查服务意外停止的原因,除了Jenkins自身的日志,别忘了看系统层面的日志:Linux可以查 /var/log/messages 或 /var/log/syslog,Windows打开事件查看器看系统日志和应用程序日志,这些地方可能会记录进程终止的真实原因(比如内存溢出、系统重启、权限不足之类的)
内容的提问来源于stack exchange,提问作者Bommu




