Beanstalk 升级到“64 位 Amazon Linux 2 v4.1.2 运行 Tomcat 8.5 Corretto 8”后缺少 tomcat 日志 (catalina.out)
Missing tomcat logs (catalina.out) after Beanstalk upgrade to "64bit Amazon Linux 2 v4.1.2 running Tomcat 8.5 Corretto 8"
我正在尝试升级 beantalk 版本
“64 位亚马逊 Linux 2018.03 v3.4.0 运行 Tomcat 8.5 Java 8”
到“64 位亚马逊 Linux 2 v4.1.2 运行 Tomcat 8.5 Corretto 8”。我已经在新平台版本上成功部署了我的应用程序 运行(它是一个简单的应用程序 - 我没有任何 ebextension 脚本)。
但是我缺少日志文件“var/log/tomcat/catalina.out”。它不见了,我 运行 瞎了!
升级前 Beanstalk 日志导出:
升级后导出 Beanstalk 日志:
比较 beantalk 日志导出它似乎 ec2 实例上的日志目录已从“var/log/tomcat8”更改为“var/log/tomcat”并且缺少“var/log/tomcat/catalina.out”。
非常感谢如何取回 catalina.out 文件的提示或想法。
以防万一有人遇到同样的问题。我得出结论(假设)缺少 catalina.out 是由于 beantalk 平台升级,日志记录配置在“/usr/libexec/tomcat/server”下定义并且没有输出重定向到 catalina.out。
您可以使用 .ebextension 脚本返回 catalina.out:
.ebextensions cat catlina.config
files:
"/etc/rsyslog.d/catalina.conf":
mode: "0655"
owner: root
group: root
content: |
#redirect tomcat logs to /var/log/tomcat/catalina.out discarding timestamps since the messages already have them
template(name="catalinalog" type="string"
string="%msg%\n")
if $programname == 'server' then {
*.=warning;*.=err;*.=crit;*.=alert;*.=emerg /var/log/tomcat/catalina.out;catalinalog
*.=info;*.=notice /var/log/tomcat/catalina.out;catalinalog
}
commands:
restart_rsyslog:
command: systemctl restart rsyslog
重新部署应用程序,您可以在“/var/log/tomcat/”下看到catalina.out
Juri 的出色解决方案。这是我最后做的,解决了 Matt
提到的文件所有权和组
.ebextensions cat catlina.config
files:
"/etc/rsyslog.d/catalina.conf":
mode: "0655"
owner: root
group: root
content: |
#redirect tomcat logs to /var/log/tomcat/catalina.out discarding timestamps since the messages already have them
template(name="catalinalog" type="string"
string="%msg%\n")
if $programname == 'server' then {
*.=warning;*.=err;*.=crit;*.=alert;*.=emerg /var/log/tomcat/catalina.out;catalinalog
*.=info;*.=notice /var/log/tomcat/catalina.out;catalinalog
}
commands:
restart_rsyslog:
command: touch /var/log/tomcat/catalina.out && chown tomcat /var/log/tomcat/catalina.out && chgrp tomcat /var/log/tomcat/catalina.out && systemctl restart rsyslog
我正在尝试升级 beantalk 版本 “64 位亚马逊 Linux 2018.03 v3.4.0 运行 Tomcat 8.5 Java 8” 到“64 位亚马逊 Linux 2 v4.1.2 运行 Tomcat 8.5 Corretto 8”。我已经在新平台版本上成功部署了我的应用程序 运行(它是一个简单的应用程序 - 我没有任何 ebextension 脚本)。
但是我缺少日志文件“var/log/tomcat/catalina.out”。它不见了,我 运行 瞎了!
升级前 Beanstalk 日志导出:
升级后导出 Beanstalk 日志:
比较 beantalk 日志导出它似乎 ec2 实例上的日志目录已从“var/log/tomcat8”更改为“var/log/tomcat”并且缺少“var/log/tomcat/catalina.out”。
非常感谢如何取回 catalina.out 文件的提示或想法。
以防万一有人遇到同样的问题。我得出结论(假设)缺少 catalina.out 是由于 beantalk 平台升级,日志记录配置在“/usr/libexec/tomcat/server”下定义并且没有输出重定向到 catalina.out。
您可以使用 .ebextension 脚本返回 catalina.out:
.ebextensions cat catlina.config
files:
"/etc/rsyslog.d/catalina.conf":
mode: "0655"
owner: root
group: root
content: |
#redirect tomcat logs to /var/log/tomcat/catalina.out discarding timestamps since the messages already have them
template(name="catalinalog" type="string"
string="%msg%\n")
if $programname == 'server' then {
*.=warning;*.=err;*.=crit;*.=alert;*.=emerg /var/log/tomcat/catalina.out;catalinalog
*.=info;*.=notice /var/log/tomcat/catalina.out;catalinalog
}
commands:
restart_rsyslog:
command: systemctl restart rsyslog
重新部署应用程序,您可以在“/var/log/tomcat/”下看到catalina.out
Juri 的出色解决方案。这是我最后做的,解决了 Matt
提到的文件所有权和组.ebextensions cat catlina.config
files:
"/etc/rsyslog.d/catalina.conf":
mode: "0655"
owner: root
group: root
content: |
#redirect tomcat logs to /var/log/tomcat/catalina.out discarding timestamps since the messages already have them
template(name="catalinalog" type="string"
string="%msg%\n")
if $programname == 'server' then {
*.=warning;*.=err;*.=crit;*.=alert;*.=emerg /var/log/tomcat/catalina.out;catalinalog
*.=info;*.=notice /var/log/tomcat/catalina.out;catalinalog
}
commands:
restart_rsyslog:
command: touch /var/log/tomcat/catalina.out && chown tomcat /var/log/tomcat/catalina.out && chgrp tomcat /var/log/tomcat/catalina.out && systemctl restart rsyslog