Eu tenho um servidor RHEL7 com o Apache Tomcat 7.0 instalado e após uma atualização recente para o RHEL7.1 todo o log para $ {catalina.base} /logs/catalina.out foi interrompido. No entanto, estou recebendo os logs dentro do journalctl.
Se eu digitar journalctl -u tomcat, recebo o log. Existe alguma maneira de eu obter o log também para catalina.out?
cat /usr/share/tomcat/logs/catalina.out
no output
journalctl -u tomcat
Aug 20 10:07:14 server.example.com server[26435]: at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
Aug 20 10:07:14 server.example.com server[26435]: at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
Aug 20 10:07:14 server.example.com server[26435]: at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
Aug 20 10:07:14 server.example.com server[26435]: at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
Aug 20 10:07:14 server.example.com server[26435]: at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
Aug 20 10:07:14 server.example.com server[26435]: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
Aug 20 10:07:14 server.example.com server[26435]: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
...
rhel
rsyslog
tomcat
systemd-journald
xterrez
fonte
fonte
jinfo -sysprops 26435 | grep catalina.base catalina.base = /usr/share/tomcat
stat /usr/share/tomcat/logs/catalina.out
stat /usr/share/tomcat/logs/catalina.out File: ‘/usr/share/tomcat/logs/catalina.out’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd01h/64769d Inode: 1013845 Links: 1 Access: (0660/-rw-rw----) Uid: ( 91/ tomcat) Gid: ( 91/ tomcat) Access: 2015-08-19 11:21:32.835211998 +0000 Modify: 2015-08-17 03:40:02.785809293 +0000 Change: 2015-08-17 03:40:02.785809293 +0000 Birth: -
Respostas:
A resposta de Jamie está correta: você pode forçar o rsyslog a registrar o que está acontecendo com o tomcat. No entanto, isso não responde por que o tomcat 7 no rhel 7 não entra no catalina.out. Ou, se sim, por que ele faz logon no catalina.out e no catalina com uma data (se você não estiver usando uma instalação do RPM).
Primeiro, no passado 7.0.42, os scripts da Red Hat usavam catalina.out porque eles imitavam o comportamento do RHEL 6. Até onde eu sei, eles estavam usando "bifurcação" para o serviço
systemd
. Quando 7.0.56 foi lançado, eles mudaram que inteiramente por fazer novos scripts e wrappers em / usr / libexec / tomcat à força tomcat para ser executado nosimple
modo em vez deforked
, permitindo que systemd ter o controle do PID estdout
estderr
ir à revista. Ainda existe umcatalina.$DATE.log
arquivo/var/log/tomcat
, mas as informações são mais limitadas do normalcatalina.out
.Segundo, vejamos /etc/tomcat/logging.properties. Você verá que classifica os logs de uma maneira específica entre catalina, localhost, manager, host-manager. Você também notará que ele também oferece suporte ao recurso rsyslog e basicamente como "lida" com ele. Tudo se resume a
ConsoleHandler
esse arquivo. Alterá-los alteraria o comportamento dos logs/var/log/tomcat
.journalctl -u tomcat
mostrará tudo o que catalina.out deve ter. Até onde eu sei, sem modificar os wrappers da Red Hat em / usr / libexec / tomcat, não há uma maneira certa de fazer com que tudo aconteça apenas em catalina.out. Se você modificar esses scripts e sair uma atualização, suas alterações serão substituídas.Se você quiser catalina.out com certeza, vá com a configuração de exemplo rsyslog do Jamie. Apenas saiba que isso não apenas preencherá isso, mas o diário systemd também terá as mesmas informações.
fonte
Criar um novo arquivo
/etc/rsyslog.d/tomcat.conf
contendo as próximas duas linhas fez o truque para mim:Depois, reinicie seu daemon rsyslog:
fonte
Parece que a sintaxe do rsyslog mudou com as versões mais recentes. Executando 8.24.0 no RHEL 7.4, a seguinte sintaxe
/etc/rsyslog.d/tomcat.conf
fez com que funcionasse para mim:Então, como Jaimie aponta, o reinício do rsyslog era necessário:
fonte