Tengo un servidor RHEL7 con Apache Tomcat 7.0 instalado y, después de una actualización reciente a RHEL7.1, se detuvo todo el registro en $ {catalina.base} /logs/catalina.out. Sin embargo, estoy recibiendo los registros dentro de journalctl.
Si escribo journalctl -u tomcat, obtengo el registro. ¿Hay alguna forma de que yo también logre iniciar sesión en 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
fuente
fuente
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: -
Respuestas:
La respuesta de Jamie es correcta: puede forzar a rsyslog a registrar lo que está sucediendo con tomcat. Sin embargo, eso no responde por qué tomcat 7 en rhel 7 no inicia sesión en catalina.out. O si lo hace, ¿por qué inicia sesión tanto en catalina.out como en catalina con una fecha (si no está utilizando una instalación RPM)?
Primero, en el pasado alrededor de 7.0.42, los scripts de Red Hat usaban catalina.out porque sus scripts imitaban el comportamiento de RHEL 6. Hasta donde yo sé, estaban usando "bifurcación" para el servicio
systemd
. Cuando 7.0.56 fue puesto en libertad, que cambiaron por completo al hacer nuevos guiones y envoltorios en / usr / libexec / Tomcat Tomcat a la fuerza para funcionar ensimple
el modo en lugar deforked
, permitiendo systemd a tener el control del PID ystdout
estderr
ir a la revista. Todavía hay uncatalina.$DATE.log
archivo/var/log/tomcat
, pero la información es más limitada de lo normalcatalina.out
.En segundo lugar, echemos un vistazo a /etc/tomcat/logging.properties. Verá que clasifica los registros de una manera específica entre catalina, localhost, manager, host-manager. También notará que también tiene soporte para la instalación de rsyslog, y básicamente cómo "trata" con él. Lo que se reduce a es
ConsoleHandler
en ese archivo. Cambiarlos cambiaría el comportamiento de los registros/var/log/tomcat
.journalctl -u tomcat
te mostrará todo lo que catalina.out se supone que tiene. Hasta donde sé, sin modificar los envoltorios de Red Hat en / usr / libexec / tomcat, no hay una forma segura de hacer que todo vaya solo a catalina.out. Si modifica esos scripts y sale una actualización, se sobrescribirán sus cambios.Si quieres catalina.out seguro, ve con la configuración de ejemplo rsyslog de Jamie. Solo sepa que no solo completará eso, sino que el diario systemd también tendrá la misma información.
fuente
Crear un nuevo archivo que
/etc/rsyslog.d/tomcat.conf
contenga las siguientes dos líneas me sirvió:Luego reinicie su demonio rsyslog:
fuente
Parece que la sintaxis de rsyslog cambió con las versiones más nuevas. Ejecutando 8.24.0 en RHEL 7.4, la siguiente sintaxis
/etc/rsyslog.d/tomcat.conf
me funcionó:Luego, como Jaimie señala, se necesitaba reiniciar rsyslog:
fuente