Syslogアペンダーを設定
syslog、syslog-ng、rsyslogシステムにログを直接送信したい場合があります。
手順
-
<RemoteEngineInstallationDirectory>/etc/org.ops4j.pax.logging.cfgファイルを開き、次の行を追加します。
例
log4j2.appender.syslog.type = Syslog log4j2.appender.syslog.name = SyslogAppender log4j2.appender.syslog.format = RFC5424 log4j2.appender.syslog.host = localhost log4j2.appender.syslog.port = 514 log4j2.appender.syslog.protocol = TCP log4j2.appender.syslog.appName = RE log4j2.appender.syslog.includeMDC = true log4j2.appender.syslog.facility = LOCAL0 log4j2.appender.syslog.layout.type = JsonTemplateLayout log4j2.appender.syslog.layout.eventTemplateUri=${karaf.base.uri}/etc/jsonLogMinTemplate.json log4j2.appender.syslog.layout.stackTraceElementTemplateUri=${karaf.base.uri}/etc/StackTraceElementLayout.json log4j2.rootLogger.appenderRef.SyslogAppender.ref = SyslogAppender
- ファイルを保存します。
-
Mapped Diagnostic Context (MDC)情報をJSONテンプレートファイルに追加し、必要に応じて出力ログにMDC情報が含まれるようにします。このMDC情報にはTalend Management Consoleタスクの実行IDが含まれています。
-
<RemoteEngineInstallationDirectory>/etcで、設定ファイルを作成してjsonLogMinTemplateCustom.jsonという名前を付けます。
このファイルでは、出力ログの形式を設定します。
-
この新しいファイルに次の行を追加し、MDCリゾルバーを作成します。
例
{ "logMessage": { "$resolver": "message", "stringified": true }, "my_mdc": { "$resolver": "mdc" }, "logTimestamp": { "$resolver": "timestamp", "epoch": { "unit": "millis", "rounded": true } }, "severity": { "$resolver": "level", "field": "name" }, "ticLogLevel": { "$resolver": "source", "field": "ticLogLevel" } }
この例では、MDC出力に含めるフィールドを指定するJSONオブジェクトを定義します。このオブジェクトはキー - 値ペアを使用します。キーは出力フィールドを表し、値はそのフィールドに入力するリゾルバーを指定します。
"my_mdc": { "$resolver": "mdc" }行は、出力にmy_mdcというフィールドを作成します。mdcリゾルバーはこのフィールドに MDCフィールドを入力します。これによって、ログに関連付けられているその他の診断情報が提供されます。my_mdcフィールドは次のようになります:flowID (タスクIDを表す)やflowExecutionId (タスク実行IDを表す)など、特定のMDCフィールドを取得する場合は、"my_mdc": { "$resolver": "mdc" }行を次に置き換えます:{ "accountID":"31e47fe5-abcd-4a80-a8b2-590123456789", "bundle.id":"289", "bundle.name":"org.talend.ipaas.engine.deployment-agent", "bundle.version":"2.13.7", "executionDestination":"REMOTE_ENGINE", "flowExecutionId":"ed31c1a8-abcd-4121-98bd-cd0123456789", "flowID":"61fbfc899e86410123456789", "flowVersion":"45.28", "remoteEngineId":"c62cd9a1-abcd-4580-8af1-220123456789", "userId":"user.talend.com", "workspaceId":"5ef6605b2632fd1234567890" }
taskIdとexecutionIdというフィールド名はあくまでも例に過ぎません。出力に含めたいMDCフィールドには、意味がある任意の名前を使用できます。"taskId": {"$resolver": "mdc", "key": "flowID"}, "executionId": {"$resolver": "mdc", "key": "flowExecutionId"},
-
<RemoteEngineInstallationDirectory>/etcで、設定ファイルを作成してjsonLogMinTemplateCustom.jsonという名前を付けます。
- お使いのSyslogシステムを設定し、jsonLogMinTemplate.jsonではなく、新しいこのjsonLogMinTemplateCustom.jsonテンプレートが使われるようにします。