概要
MCの監査ログは「log4j.properties(v11以降はlog4j2.properties)」ファイルを設定することで、ログ情報をファイルまたはDBに出力することができます。
下記はログ情報をファイルやDBに出力するための、それぞれの設定手順です。参考にしてください。
注意事項
ログ出力させる場合は、ディスク残容量にご注意ください。
また、念のため手順実施前に「log4j.properties(v11以降はlog4j2.properties)」ファイルのバックアップ取得を推奨いたします。
前提
設定前に、MCもしくはTomcatを停止してください。
設定内容はMCもしくはTomcatの再起動後に反映されます。
本手順で操作する「log4j.properties(v11以降はlog4j2.properties)」のファイル格納先(デフォルト)は次の通りになります。
【非Tomcat環境】
C:\Users\{ユーザー名} \AppData\Local\Kapow\{バージョン}\Configuration\log4j.propertiesもしくはlog4j2.properties
【Tomcat構築環境】
C:\Program Files\Apache Software Foundation\Tomcat 8.5\webapps\mc\WEB-INF\classes\log4j.propertiesもしくはlog4j2.properties
作業手順
【監査ログをファイルに出力する場合(ファイルサイズローテート)】
1.「log4j.properties(v11以降はlog4j2.properties)」ファイルをテキストエディタで開く
2. 以下の設定情報を追記する
<追記例>
v10.7以前
#Log4j log to file configuration example
log4j.appender.auditLog=org.apache.log4j.RollingFileAppender
#Configure the file path and maximum file size before rollover
log4j.appender.auditLog.File={ログファイル格納先}/{ログファイル名}.log
log4j.appender.auditLog.MaxFileSize={ファイル1面あたりのサイズ}
log4j.appender.auditLog.MaxBackupIndex={ファイル最大面数}
log4j.appender.auditLog.layout=org.apache.log4j.PatternLayout
log4j.appender.auditLog.layout.ConversionPattern=%d - %m%n
log4j.category.auditLog=DEBUG, auditLog
log4j.additivity.auditLog=false
v11.1以降
#Log4j2 log to file configuration example
name = PropertiesConfig
appenders = auditLogAppender
appender.auditLogAppender.name = auditLog
appender.auditLogAppender.type = RollingFile
appender.auditLogAppender.fileName={ログファイル格納先}/{ログファイル名}.log
appender.auditLogAppender.filePattern={ログファイル格納先}/{ログファイル名}.log.%i
appender.auditLogAppender.layout.type = PatternLayout
appender.auditLogAppender.layout.pattern=%d - %m%n
appender.auditLogAppender.policies.type=Policies
appender.auditLogAppender.policies.size.type = SizeBasedTriggeringPolicy
appender.auditLogAppender.policies.size.size={ファイル1面あたりのサイズ}
appender.auditLogAppender.strategy.type = DefaultRolloverStrategy
appender.auditLogAppender.strategy.max = {ファイル最大面数}
logger.auditLog.name = auditLog
logger.auditLog.level = INFO
logger.auditLog.appenderRef.auditLog.ref = auditLog
logger.auditLog.additivity = false
『ログファイル格納先}/{ログファイル名}.log』、『ファイル1面あたりのサイズ』、『ファイル最大面数』には任意の値を設定してください
下記は任意の値を設定した例です。参考にしてください
<設定例(v10.7以前の場合)>
log4j.appender.auditLog.File=C:/LOGS/MC/MC.log
log4j.appender.auditLog.MaxFileSize=1MB
log4j.appender.auditLog.MaxBackupIndex=3
3.「log4j.propertiesもしくはlog4j2.properties」ファイルを上書き保存して閉じる
4. MCもしくはTomcatを再起動する
【監査ログを MySQL データベースに出力する場合】
1. MySQL のJDBCドライバーを対象フォルダへコピーする。
<参考画像>
非Tomcat環境の場合は<製品インストール先>\libフォルダ(kapowtech-common.jar、platform.jar などが配置されたフォルダ)へコピーします。
Tomcat構築環境の場合は、<TomcatインストールDIR>¥libフォルダにコピーしてください。
2. MySQLに監査ログ情報を出力するためのテーブルを作成する
下記はSQL文の例です。参考にしてください。なお、SQLの内容についてはサポート対象外です
※ 記録される情報のロスを防ぐため、MESSAGE カラムについては、最小で varchar(600) 以上を指定 してください
CREATE TABLE {テーブル名}
(
DATED timestamp NOT NULL,
LEVEL VARCHAR(10) NOT NULL,
MESSAGE VARCHAR(1000) NOT NULL
);
3.「log4j.properties(v11以降はlog4j2.properties)」ファイルをテキストエディタで開く
4.以下の設定情報を追記する
※ポートはデフォルトの3306を想定
<追記例>
v10.7以前
#Log4j log to MySQL database configuration example
log4j.appender.auditLog=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.auditLog.URL=jdbc:mysql://localhost/{データベーススキーマ名}
# Set Database Driver
log4j.appender.auditLog.driver=com.mysql.jdbc.Driver
# Set database user name and password
log4j.appender.auditLog.user={DBユーザー名}
log4j.appender.auditLog.password={パスワード}
# Set the SQL statement to be executed
log4j.appender.auditLog.sql=INSERT INTO {テーブル名} VALUES ('%d{yyyy-MM-dd HH:mm:ss}','%p','%m')
# Define the xml layout for file appender
log4j.appender.auditLog.layout=org.apache.log4j.PatternLayout
log4j.category.auditLog=DEBUG, auditLog
log4j.additivity.auditLog=false
v11.1以降
#Log4j2 log to MySQL database configuration example
name = PropertiesConfig
appenders = auditLogAppender
appender.auditLogAppender.name = auditLogAppender
appender.auditLogAppender.type= JDBC
appender.auditLogAppender.connectionSource.type= DriverManager
appender.auditLogAppender.connectionSource.connectionString = jdbc:mysql://localhost/{データベーススキーマ名}
appender.auditLogAppender.connectionSource.username = {DBユーザー名}
appender.auditLogAppender.connectionSource.password = {パスワード}
appender.auditLogAppender.connectionSource.driverClassName = com.mysql.jdbc.Driver
appender.auditLogAppender.tableName = {テーブル名}
appender.auditLogAppender.columnConfigs[0].type = Column
appender.auditLogAppender.columnConfigs[0].name = DATED
appender.auditLogAppender.columnConfigs[0].pattern = %d{yyyy-MM-dd HH:mm:ss}
appender.auditLogAppender.columnConfigs[1].type = Column
appender.auditLogAppender.columnConfigs[1].name = LEVEL
appender.auditLogAppender.columnConfigs[1].pattern =%p
appender.auditLogAppender.columnConfigs[2].type = Column
appender.auditLogAppender.columnConfigs[2].name = MESSAGE
appender.auditLogAppender.columnConfigs[2].pattern =%msg
logger.auditLog.name = auditLog
logger.auditLog.level = INFO
logger.auditLog.appenderRef.auditLogAppender.ref = auditLogAppender
logger.auditLog.additivity=false
v11.3以降でMysql8以上の場合
#Log4j2 log to MySQL database configuration example
name = PropertiesConfig
appenders = auditLogAppender
appender.auditLogAppender.name = auditLogAppender
appender.auditLogAppender.type= JDBC
appender.auditLogAppender.connectionSource.type= DriverManager
appender.auditLogAppender.connectionSource.connectionString = jdbc:mysql://localhost/{データベーススキーマ名}
appender.auditLogAppender.connectionSource.username = {DBユーザー名}
appender.auditLogAppender.connectionSource.password = {パスワード}
appender.auditLogAppender.connectionSource.driverClassName = com.mysql.cj.jdbc.Driver
appender.auditLogAppender.tableName = {テーブル名}
appender.auditLogAppender.columnConfigs[0].type = Column
appender.auditLogAppender.columnConfigs[0].name = DATED
appender.auditLogAppender.columnConfigs[0].pattern = %d{yyyy-MM-dd HH:mm:ss}
appender.auditLogAppender.columnConfigs[1].type = Column
appender.auditLogAppender.columnConfigs[1].name = LEVEL
appender.auditLogAppender.columnConfigs[1].pattern =%p
appender.auditLogAppender.columnConfigs[2].type = Column
appender.auditLogAppender.columnConfigs[2].name = MESSAGE
appender.auditLogAppender.columnConfigs[2].pattern =%msg
logger.auditLog.name = auditLog
logger.auditLog.level = INFO
logger.auditLog.appenderRef.auditLogAppender.ref = auditLogAppender
logger.auditLog.additivity=false
JDBCドライバーが8.0.22 の場合
※{ポート}はデフォルトの場合、3306を設定してください
#Log4j2 log to MySQL database configuration example
name = PropertiesConfig
appenders = auditLogAppender
appender.auditLogAppender.name = auditLogAppender
appender.auditLogAppender.type= JDBC
appender.auditLogAppender.connectionSource.type= DriverManager
appender.auditLogAppender.connectionSource.connectionString = jdbc:mysql://localhost:{ポート}/{データベーススキーマ名}?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&useCursorFetch=true&defaultFetchSize=1000&useLegacyDatetimeCode=false&serverTimezone=GMT%2B9&allowPublicKeyRetrieval=true
appender.auditLogAppender.connectionSource.username = {DBユーザー名}
appender.auditLogAppender.connectionSource.password = {パスワード}
appender.auditLogAppender.connectionSource.driverClassName = com.mysql.cj.jdbc.Driver
appender.auditLogAppender.tableName = {テーブル名}
appender.auditLogAppender.columnConfigs[0].type = Column
appender.auditLogAppender.columnConfigs[0].name = DATED
appender.auditLogAppender.columnConfigs[0].pattern = %d{yyyy-MM-dd HH:mm:ss}
appender.auditLogAppender.columnConfigs[1].type = Column
appender.auditLogAppender.columnConfigs[1].name = LEVEL
appender.auditLogAppender.columnConfigs[1].pattern =%p
appender.auditLogAppender.columnConfigs[2].type = Column
appender.auditLogAppender.columnConfigs[2].name = MESSAGE
appender.auditLogAppender.columnConfigs[2].pattern =%msg
logger.auditLog.name = auditLog
logger.auditLog.level = INFO
logger.auditLog.appenderRef.auditLogAppender.ref = auditLogAppender
logger.auditLog.additivity=false
5.「log4j.propertiesもしくはlog4j2.properties」ファイルを上書き保存して閉じる
6.MCもしくはTomcatを再起動する
参考
Roboserverの監査ログ取得方法は下記をご参考ください。
参考ナレッジ:実行ロボットの監査ログ取得設定方法
区分 | 確認Ver |
手順 | 10.4.0.4、11.1.0.4、11.3.0.3、11.4.0.2 |