Tomcatのcatalina.outをsyslogサーバーに転送する

こんにちは。サイオステクノロジーの小川です。

今回はTomcatのcatalina.outをsyslogサーバーに転送する方法について書きたいと思います。

syslogへの出力方法

Tomcatライブラリーのデフォルトではsyslogにログを転送できません。syslogでのログを出力するにはlog4j2ライブラリーを利用します。下記の図のようにlog4j2を経由することで標準出力ログとsyslogのログを出力することができます。

log4j2で必要最低限のモジュールは

  • log4j-api
  • log4j-core

になります。

今回はlog4j2のApplication Serverモジュールを利用して、CATALINA_HOME直下の既存ディレクトリ内はほぼいじらずに、新しくlog4j2というディレクトリを作成し、log4j2配下のファイルを統合する設定を記載します。

設定環境

今回検証で利用した環境は以下になります。

OS CentOS 7.7
ミドルウェア Apache 2.4.6
Apache tomcat 9.0.30
Open JDK 11.0.5
log4j 2.13.0
rsyslog 8.24.0

ApacheとApache Tomcatの設定は終わっていることを前提とします。

tomcatのlog4j2設定

Apache Log4j 2を下記URLからダウンロードします。

https://logging.apache.org/log4j/2.x/download.html

ダウンロードしたら、解凍します。

# tar -zxvf apache-log4j-2.13.0-bin.tar.gz

CATALINA_HOME配下にlog4j2ディレクトリを作成します。

# mkdir /usr/local/tomcat/log4j2

apache-log4j-2.13.0-binディレクトリに移動します。

# cd apache-log4j-2.13.0-bin

log4j2配下にlibディレクトリを作成し、apache-log4j-2.13.1-bin配下の

  • log4j-api-2.13.0.jar
  • log4j-core-2.13.0.jar
  • log4j-appserver-2.13.0.jar

上記3つのjarファイルをlibディレクトリ配下に置きます。

log4j2ディレクトリの設定を統合するために、/usr/local/tomcat/bin/setenv.shにCLASSPATHの設定を追記します。

# vim /usr/local/tomcat/bin/setenv.sh

setenv.shを読み込みます。

# source /usr/local/tomcat/bin/setenv.sh

log4j2配下にconfディレクトリを作成します。

# mkdir /usr/local/tomcat/log4j2/conf

ログ出力ファイルを作成し、以下のように設定します。今回はファシリティをLOCAL1 で設定します。

# vim /usr/local/tomcat/log4j2/conf/log4j2.xml

ローカルの出力ログのローテーション設定をlogrotateで設定する場合は、RollingFile Appenderの設定部分(<RollingFile>~</RollingFile>)とLoggerの<AppenderRef ref=”catalina”/>をコメントアウトし、logrotateでローテーションの設定をしてください。

tomcatを再起動します。

# systemctl restart tomcat

以上でtomcatの設定は完了です。

syslogサーバーでの設定

syslogサーバーでLOCAL1のログを受信する設定をします。

ポート514のUDPを開放し、local1の出力先を指定します。

# vim /etc/rsyslog.conf

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514


local1.*      /var/log/catalina.out

rsyslogを再起動します。

# systemctl restart rsyslog

 

以上で設定は完了です。

tomcatを再起動するとログがsyslogサーバーに転送されていることが確認できます。

 

~参考URL~

https://logging.apache.org/log4j/2.x/download.html

https://logging.apache.org/log4j/log4j-2.11.2/log4j-appserver/index.html

https://logging.apache.org/log4j/2.x/manual/appenders.html#SyslogAppender

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

2人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です