En mi trabajo, alguien configuró una vez Tomcat para iniciar sesión en syslog. El problema es que estos mensajes también se envían a la consola.
El sistema es RHEL6, estos son los RPM involucrados
rsyslog-5.8.10-10.el6_6.x86_64
tomcat-7.0.64-1.x86_64
Intenté silenciar los mensajes a la consola usando estos dos comandos:
dmesg -n 1
sysctl -w kernel.printk="1 4 1 3"
Estos no hicieron ninguna diferencia, estos mensajes siguen llegando.Log4jno parece usarse en este sistema. Desde server.xml
Tomcat, esta sección es para iniciar sesión:
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" rotatable="false"
pattern="%h %l %u %t "%r" %s %b" />
Si lo detengo, rsyslog
detendrá estos mensajes. No sé qué se hizo para configurar el inicio de sesión rsyslog
desde Tomcat, no soy un experto en Tomcat. Tomcat es la única aplicación que envía mensajes a la consola. Se envían otras cosas, rsyslog
pero no se registra nada en la consola que no sean cosas de Tomcat.
Desde que probé el comando dmesg -n 1
sospecho que Tomcat está enviando mensajes al nivel más alto, pero no puedo encontrar ningún código que pueda ser responsable de eso.
Ejemplo de un mensaje en la consola (tenga en cuenta que dice tomcat-instance06, es un RPM de creación propia para permitir múltiples instancias de Tomcat). Me acabo de dar cuenta de que siempre muestra un mensaje [FATAL] en la consola y luego un segundo mensaje más o menos igual:
Message from syslogd@localhost at Jun 22 16:52:12 ...
[FATAL] some.portal-app: [model.website.PageService] RequestID already used - ...#012Detail: #012detail#012Tag context: #012/opt/tomcat-instance06/webapps/ROOT/model/WebserviceRequest.cfc, line 486#012/opt/tomcat-instance06/webapps/ROOT/model/WebserviceRequest.cfc, line 484#012/opt/tomcat-instance06/webapps/ROOT/model/WebserviceRequest.cfc, line 482#012/opt/tomcat-instance06/webapps/ROOT/model/WebserviceRequest.cfc, line 482#012/opt/tomcat-instance06/webapps/ROOT/model/WebserviceRequest.cfc, line 482#012/opt/tomcat-instance06/webapps/ROOT/model/WebserviceRequest.cfc, line 482#012/opt/tomcat-instance06/webapps/ROOT/model/WebserviceRequest.cfc, line 482#012/opt/tomcat-instance06/webapps/ROOT/model/WebserviceRequest.cfc, line 482#012/opt/tomcat-instance06/webapps/ROOT/model/WebserviceRequest.cfc, line 482#012/opt/tomcat-instance06/webapps/ROOT/model/WebserviceRequest.cfc, line 482#012/opt/tomcat-instance06/webapps/ROOT/model/WebserviceRequest.cfc, line 482#012/opt/tomcat-instance06/webapps/ROOT/model/WebserviceRequest.cfc, l...
Message from [email protected] at Jun 22 16:52:12 ...
482#012/opt/tomcat-instance06/webapps/ROOT/model/WebserviceRequest.cfc, line 482#012/opt/tomcat-instance06/webapps/ROOT/model/WebserviceRequest.cfc, line 268#012/opt/tomcat-instance06/webapps/ROOT/model/website/PageService.cfc, line 194#012/opt/tomcat-instance06/webapps/ROOT/model/website/PageService.cfc, line 86#012/opt/tomcat-instance06/webapps/ROOT/model/RequestContextDecorator.cfc, line 16#012/opt/tomcat-instance06/webapps/ROOT/model/RequestContextDecorator.cfc, line 232#012/opt/tomcat-instance06/webapps/ROOT/handlers/General.cfc, line 596#012/opt/tomcat-instance06/webapps/ROOT/coldbox/system/web/Controller.cfc, line 764#012/opt/tomcat-instance06/webapps/ROOT/coldbox/system/web/Controller.cfc, line 648#012/opt/tomcat-instance06/webapps/ROOT/coldbox/system/web/services/ExceptionService.cfc, line 51#012/opt/tomcat-instance06/webapps/ROOT/coldbox/system/Coldbox.cfc, line 350#012/opt/tomcat-instance06/webapps/ROOT/coldbox/system/Coldbox.cfc, line 382#012/opt/tomcat-instance06/webapps/ROOT/Application.cfc, line 60
Este es el contenido de /etc/rsyslog.conf
:
#
# Use traditional timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
# Provides kernel logging support (previously done by rklogd)
$ModLoad imklog
# Provides --MARK-- message capability
$ModLoad immark
# Provides support for local system logging (e.g. via logger command)
$ModLoad imuxsock
# set ratelimit interval
$SystemLogRateLimitInterval 2
$SystemLogRateLimitBurst 150
# Provides UDP syslog reception
$ModLoad imudp
# Syslog server listen address
$UDPServerAddress 127.0.0.1
# Syslog server listen UDP port
$UDPServerRun 514
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
kern.* /dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none;local0.none;local6.none /var/log/messages
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* -/var/log/mail.log
# Log cron stuff
cron.* /var/log/cron
# Everybody gets emergency messages
*.emerg *
# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler
# Save boot messages also to boot.log
local6.warning /var/log/audit_orcl.log
LOCAL6.WARNING /var/log/audit_orcl.log
# Save boot messages also to boot.log
local7.* /var/log/boot.log
# Log all messages to the following syslog servers
<I have removed this section containing ip's of syslogservers>
En /etc/rsyslog.conf he intentado comentar kern.*
#kern.* /dev/console
Pero después de reiniciar rsyslog, todavía registra estos mensajes de Tomcat en la consola :(
¿Alguna idea de dónde buscar para desactivar estos mensajes?
Respuesta1
Lo encontré (duh).
Comentar esto para /etc/rsyslog.conf
detener los mensajes:
# Everybody gets emergency messages
*.emerg *
Y también descubrí que el hecho de que Tomcat sea la única aplicación que registra esto continuamente se debe a que una aplicación mal programada registra cada mensaje como fatal, lo que hace que vaya a la consola.