Tomcat 7 não produz saída de log para catalina.out no RHEL7

6

Eu tenho um servidor RHEL7 com o Apache Tomcat 7.0 instalado e, após uma atualização recente do 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 obter o registro 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)
...
    
por xterrez 20.08.2015 / 12:27

3 respostas

8

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 porque tomcat 7 no rhel 7 não registra em catalina.out. Em caso afirmativo, por que ele registra no catalina.out e no catalina com uma data (se você não estiver usando uma instalação do RPM).

Primeiro, no passado, por volta de 7.0.42, os scripts da Red Hat usavam catalina.out porque seus scripts estavam imitando o comportamento do RHEL 6. Até onde eu sei, eles estavam usando "bifurcação" para o serviço de systemd . Quando o 7.0.56 foi lançado, eles mudaram isso inteiramente fazendo novos scripts e wrappers em / usr / libexec / tomcat para forçar o tomcat a executar no modo simple em vez de forked , permitindo que o systemd tivesse controle do PID e stdout e stderr para ir para o diário. Ainda há um arquivo catalina.$DATE.log em /var/log/tomcat , mas a informação é mais limitada de um% normalcatalina.out.

Em segundo lugar, vamos ver o /etc/tomcat/logging.properties. Você verá que ele classifica os logs de uma maneira específica entre catalina, localhost, manager, host-manager. Você também notará que ele tem suporte para o recurso rsyslog e, basicamente, como ele "lida" com ele. O que vem a baixo é o ConsoleHandler nesse arquivo. Alterá-los mudaria o comportamento dos logs em /var/log/tomcat .

journalctl -u tomcat mostrará tudo o que catalina.out deveria ter. Até onde sei, sem modificar os wrappers da Red Hat em / usr / libexec / tomcat, não há uma maneira segura de fazer tudo ir apenas para catalina.out. Se você modificar esses scripts e uma atualização for lançada, suas alterações serão sobrescritas.

Se você quiser catalina.out com certeza, vá com a configuração de exemplo do rsyslog de Jamie. Apenas saiba que isso não apenas preencherá isso, mas o diário do sistema também terá as mesmas informações.

    
por 28.04.2016 / 16:38
5

Criar um novo arquivo /etc/rsyslog.d/tomcat.conf contendo as próximas duas linhas fez o truque para mim:

programname,contains,"server" /var/log/tomcat/catalina.out
programname,contains,"server" ~

Depois reinicie seu daemon rsyslog:

service rsyslog restart
    
por 24.03.2016 / 15:29
0

Parece que a sintaxe do rsyslog mudou com as versões mais recentes. Rodando 8.24.0 no RHEL 7.4, a seguinte sintaxe em /etc/rsyslog.d/tomcat.conf fez com que funcionasse para mim:

if ($programname contains "server") then {
    action(type="omfile" file="/var/log/tomcat/catalina.out" flushOnTXEnd="off")
    stop
}

Então, como Jaimie aponta, o reinício do rsyslog foi necessário:

service rsyslog restart
    
por 03.05.2018 / 19:36