Tomcat/rsyslog가 콘솔에 로깅하는 것을 어떻게 중지합니까?

Tomcat/rsyslog가 콘솔에 로깅하는 것을 어떻게 중지합니까?

내 직장에서 누군가가 Tomcat을 설정하여 syslog에 로그인한 적이 있습니다. 문제는 이러한 메시지가 콘솔에도 전송된다는 것입니다.

시스템은 RHEL6이며 관련 RPM은 다음과 같습니다.

rsyslog-5.8.10-10.el6_6.x86_64
tomcat-7.0.64-1.x86_64

다음 두 명령을 사용하여 콘솔에 보내는 메시지를 무음으로 설정하려고 했습니다.

dmesg -n 1
sysctl -w kernel.printk="1 4 1 3"

아무런 차이가 없었으며 이러한 메시지는 계속해서 전송됩니다.Log4j이 시스템에서는 사용되지 않는 것 같습니다. server.xmlTomcat에서 이 섹션은 로깅을 위한 것입니다 .

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
       prefix="localhost_access_log." suffix=".txt" rotatable="false"
       pattern="%h %l %u %t &quot;%r&quot; %s %b" />

내가 중지하면 rsyslog이 메시지도 중지됩니다. Tomcat 에서 로깅을 설정하기 위해 어떤 작업을 수행했는지 모르겠습니다 rsyslog. 저는 Tomcat 전문가가 아닙니다. Tomcat은 콘솔에 메시지를 보내는 유일한 애플리케이션입니다. 다른 항목은 전송되지만 rsyslogTomcat 항목 이외의 콘솔에는 아무것도 기록되지 않습니다.

명령을 시도한 이후 dmesg -n 1Tomcat이 최고 수준에서 메시지를 보내는 것으로 의심되지만 이를 담당할 수 있는 코드를 찾을 수 없습니다.

콘솔의 메시지 예(여러 Tomcat 인스턴스를 허용하기 위해 자체 제작한 RPM인 tomcat-instance06이라고 표시되어 있음). 방금 콘솔에 항상 [FATAL] 메시지가 표시된 다음 동일한 메시지가 두 번째로 표시되는 것을 확인했습니다.

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

내용은 다음과 같습니다 /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>

/etc/rsyslog.conf에서 kern을 주석 처리하려고 시도했습니다.*

#kern.*                                                  /dev/console

그러나 rsyslog를 다시 시작한 후에도 여전히 이러한 Tomcat 메시지를 콘솔에 기록합니다.

이러한 메시지를 비활성화하려면 어디를 찾아야 할지 아시나요?

답변1

찾았어요(ㅋㅋㅋ)

이것을 주석 처리하면 /etc/rsyslog.conf메시지가 중지됩니다.

# Everybody gets emergency messages
*.emerg                        *

또한 tomcat이 지속적으로 로깅하는 유일한 애플리케이션이라는 사실은 잘못 프로그래밍된 애플리케이션이 각 메시지를 치명적인 메시지로 로깅하여 콘솔로 이동하기 때문이라는 사실도 알아냈습니다.

관련 정보