Flink コンソールのジョブインサイトページでは、ジョブ ログを表示できます。また、ログを OSS、SLS、Kafka などの外部ストレージサービスにエクスポートし、出力ログレベルを設定することも可能です。本トピックでは、その手順を説明します。
注意事項
-
OSS、SLS、または Kafka へのログのエクスポートを設定した後は、ジョブを再起動する必要があります。
-
別のストレージサービスへのログのエクスポートを設定しても、ログアーカイブ機能を無効にしない場合、ログは引き続き、ワークスペース用に設定された OSS またはフルマネージドストレージに保存されます。ログアーカイブを無効にすると、Flink コンソールでジョブ ログを表示できなくなります。
[デプロイメント詳細] ページの [ログ設定] セクションで、[ログアーカイブ] 行のトグルを使用してこの機能を有効または無効にしてください。
-
ログ設定で
${secret_values.xxxx}を使用して、変数管理に保存されているシークレットを参照できます。詳細については、「プロジェクト変数」をご参照ください。
単一ジョブのログのエクスポート設定
コンソール
-
デプロイメントのログ設定ページに移動します。
-
対象のワークスペースの[アクション]列で、[コンソール]をクリックします。
-
左側のナビゲーションペインで、 をクリックします。次に、対象のデプロイの名前をクリックします。
-
[設定] タブの [ロギング] セクションで、右側の [編集] をクリックします。
-
[ロギングプロファイル] には、[カスタムテンプレート] を選択します。
-
をクリックします。
-
[アペンダーの追加] をクリックし、出力先を選択します。
-
選択したアペンダーのパラメータを設定します。
異なるレベルのログを異なる送信先にルーティングするには、アペンダーのフィルタリングルールを設定してください。詳細については、「ログレベルに基づくログフィルタリングの設定」をご参照ください。
SLS
パラメータ
説明
name
アペンダーのカスタム名。
type
アペンダーのタイプ。この値は
SLSに固定されています。変更しないでください。pattern
ログの出力形式。
デフォルト値は
%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%nで、2023-10-01 14:23:45,678{GMT+8} INFO com.example.MyClass - This is a test log messageのようなログエントリが生成されます。flushIntervalSeconds
ログデータが送信先にフラッシュされる間隔 (秒単位)。
flushIntervalEventCount
書き込み先ストレージに書き込む前にバッチ処理するログエントリの数。
説明flushIntervalSecondsとflushIntervalEventCountの両方が設定されている場合、いずれかのしきい値が先に満たされたときに書き込み操作がトリガーされます。authenticationMode
-
AccessKey
-
SLS Token
説明SLS Token を選択した場合、Flink ワークスペースと同じリージョンにある Project 内の Logstore にのみログをエクスポートできます。この機能は VVR 11.5 以降でのみサポートされています。
project
SLS Project の名前。
logStore
Logstore の名前。
endpoint
SLS サービスリージョンのプライベートエンドポイント。詳細については、「エンドポイント」をご参照ください。
accessKeyId
SLS サービスに使用するアカウントの AccessKey ID と AccessKey Secret。AccessKey ペアの取得方法については、「AccessKey ペアの取得」をご参照ください。
プレーンテキストキーのセキュリティリスクを回避するため、AccessKey の値は名前空間変数に保存することを推奨します。詳細については、「名前空間変数」をご参照ください。
説明SLS と Realtime Compute for Apache Flink サービスが異なる Alibaba Cloud アカウントにある場合、Flink アカウントに SLS への書き込み権限を付与する必要があります。詳細については、「カスタム RAM ポリシーの作成」をご参照ください。以下にポリシーの例を示します。
accessKeySecret
OSS
数値パラメータのデフォルト値は次のとおりです:flushIntervalSeconds は
10、flushIntervalEventCount は100、rollingBytes は1048576です。パラメータ
説明
name
アペンダーのカスタム名。
type
アペンダーのタイプ。この値は
OSSに固定されています。変更しないでください。pattern
ログの出力形式。
デフォルト値は
%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%nです。baseUri
OSS バケットの名前。
endpoint
OSS サービスのリージョンのエンドポイント。詳細については、「リージョンとエンドポイント」をご参照ください。
[VPC (内部ネットワーク) 経由での ECS からのアクセス] 行に対応する [エンドポイント (リージョン)] 列のエンドポイントを使用します。
accessKeyId
OSS サービスに使用するアカウントの AccessKey ID と AccessKey Secret。AccessKey ペアの取得方法については、「AccessKey ペアの取得」をご参照ください。
プレーンテキストキーのセキュリティリスクを回避するため、AccessKey の値は名前空間変数に保存することを推奨します。詳細については、「名前空間変数」をご参照ください。
説明これらのパラメータは、送信先の OSS バケットが Flink サービスとは異なる Alibaba Cloud アカウントにある場合にのみ必要です。同じアカウントにある場合は、これらのパラメータを設定から削除してください。
accessKeySecret
flushIntervalSeconds
ログデータが送信先にフラッシュされる間隔 (秒単位)。
flushIntervalEventCount
書き込み先ストレージに書き込む前にバッチ処理するログエントリの数。
説明flushIntervalSecondsとflushIntervalEventCountの両方が設定されている場合、いずれかのしきい値が先に満たされたときに書き込み操作がトリガーされます。rollingBytes
OSS 内の単一ログファイルの最大サイズ。このサイズに達すると、以降のデータは新しいログファイルに書き込まれます。
Kafka
説明Kerberos 認証が有効になっている Kafka クラスターはサポートされていません。
-
前提条件
KafkaAppender プラグインは Flink プラグインクラスローダーによってロードされるため、Flink 設定でそのパッケージパスを明示的に宣言する必要があります。これにより、アプリケーションが現在のデプロイメント用のプラグインをロードできるようになります。
[デプロイ] ページで、お使いのデプロイの名前をクリックします。[設定] タブの [追加の Flink 設定] セクションで、[その他の設定] フィールドに次のパラメーターを追加します。
plugin.classloader.parent-first-patterns.additional: com.ververica.platform.logging.appender -
設定
パラメータ
説明
name
アペンダーのカスタム名。
type
アペンダーのタイプ。この値は
KafkaVVPに固定されています。変更しないでください。pattern
ログの出力形式。
デフォルト値は
%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%nです。bootstrap.servers
Kafka ブローカーのアドレス。
acks
プロデューサーが書き込みを成功と見なす前に、メッセージを受信する必要があるパーティションレプリカの数。詳細については、「acks」をご参照ください。
buffer.memory
プロデューサーがレコードのバッファリングに使用できる合計メモリ (バイト単位)。
retries
一時的な障害が発生した後、プロデューサーがメッセージの送信を再試行する回数。
compression.type
プロデューサーが生成するデータの圧縮タイプ。有効な値:
none、gzip、snappy、lz4、zstd
-
-
[保存] をクリックします。
-
ページの上部で、[開始] をクリックします。
XML 方式
-
デプロイメントのログ設定ページに移動します。
-
対象のワークスペースの[アクション]列で、[コンソール]をクリックします。
-
左側のナビゲーションペインで、 をクリックし、次に、対象デプロイ名をクリックします。
-
[デプロイ詳細] タブの [ロギング] セクションで、[編集] をクリックします。
-
[ロギングプロファイル] を [カスタムテンプレート] に設定します。
-
ログ出力を設定します。
ストレージの送信先に応じて、対応する設定をコピーして入力ボックスに貼り付け、ストレージの詳細情報でパラメーターを更新します。異なるレベルのログを異なる送信先にルーティングするには、各 Appender にフィルタリングルールを設定できます。詳細については、「異なるログレベルのログ出力設定」をご参照ください。
OSS
<?xml version="1.0" encoding="UTF-8"?> <Configuration xmlns="http://logging.apache.org/log4j/2.0/config" strict="true" packages="com.ververica.platform.logging.appender" status="WARN"> <Appenders> <Appender name="StdOut" type="Console"> <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout" charset="UTF-8"/> </Appender> <Appender name="RollingFile" type="RollingFile" fileName="${sys:log.file}" filePattern="${sys:log.file}.%i"> <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout" charset="UTF-8"/> <Policies> <SizeBasedTriggeringPolicy size="20 MB"/> </Policies> <DefaultRolloverStrategy max="4"/> </Appender> <Appender name="OSS" type="OSS"> <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout" charset="UTF-8"/> <!-- 最終的な有効ログパス: ${baseUri}/logs/${namespace}/${deploymentId}/{jobId}/ --> <Property name="namespace">{{ namespace }}</Property> <!-- この行は変更しないでください --> <Property name="baseUri">oss://YOUR-BUCKET-NAME/</Property> <Property name="endpoint">https://YOUR-ENDPOINT</Property> <Property name="accessKeyId">${secret_values.accessKeyId}</Property> <Property name="secretAccessKey">${secret_values.accessKeySecret}</Property> <Property name="flushIntervalSeconds">10</Property> <Property name="flushIntervalEventCount">100</Property> <Property name="rollingBytes">10485760</Property> </Appender> <Appender name="StdOutErrConsoleAppender" type="Console"> <Layout pattern="%m" type="PatternLayout" charset="UTF-8"/> </Appender> <Appender name="StdOutFileAppender" type="RollingFile" fileName="${sys:stdout.file}" filePattern="${sys:stdout.file}.%i"> <Layout pattern="%m" type="PatternLayout" charset="UTF-8"/> <Policies> <SizeBasedTriggeringPolicy size="1 GB"/> </Policies> <DefaultRolloverStrategy max="2"/> </Appender> <Appender name="StdErrFileAppender" type="RollingFile" fileName="${sys:stderr.file}" filePattern="${sys:stderr.file}.%i"> <Layout pattern="%m" type="PatternLayout" charset="UTF-8"/> <Policies> <SizeBasedTriggeringPolicy size="1 GB"/> </Policies> <DefaultRolloverStrategy max="2"/> </Appender> </Appenders> <Loggers> <Logger level="INFO" name="org.apache.hadoop"/> <Logger level="INFO" name="org.apache.kafka"/> <Logger level="INFO" name="org.apache.zookeeper"/> <Logger level="INFO" name="akka"/> <Logger level="ERROR" name="org.jboss.netty.channel.DefaultChannelPipeline"/> <Logger level="OFF" name="org.apache.flink.runtime.rest.handler.job.JobDetailsHandler"/> <Logger level="ERROR" name="org.apache.flink.fs.osshadoop.shaded.com.aliyun.oss"/> <Logger level="INFO" name="StdOutErrRedirector.StdOut" additivity="false"> <AppenderRef ref="StdOutFileAppender"/> <AppenderRef ref="StdOutErrConsoleAppender"/> </Logger> <Logger level="INFO" name="StdOutErrRedirector.StdErr" additivity="false"> <AppenderRef ref="StdErrFileAppender"/> <AppenderRef ref="StdOutErrConsoleAppender"/> </Logger> {%- for name, level in userConfiguredLoggers -%} <Logger level="{{ level }}" name="{{ name }}"/> {%- endfor -%} <Root level="{{ rootLoggerLogLevel }}"> <AppenderRef ref="StdOut"/> <AppenderRef ref="RollingFile"/> <AppenderRef ref="OSS"/> </Root> </Loggers> </Configuration>パラメーター
説明
YOUR-BUCKET-NAME
OSS バケット名に置き換えてください。
YOUR-ENDPOINT
OSS エンドポイントに置き換えてください。詳細については、「リージョンとエンドポイント」をご参照ください。
これは、[VPC (内部ネットワーク) 経由の ECS からのアクセス] 行の [エンドポイント] 列の値です。
accessKeyId, secretAccessKey
OSS アカウントの AccessKey ID と AccessKey secret を使用します。詳細については、「AccessKey ペアを取得する」をご参照ください。
プレーンテキストで認証情報が公開されるのを避けるため、この例では名前空間変数を使用して AccessKey 値を指定します。詳細については、「名前空間変数」をご参照ください。
説明これらのパラメーターは、OSS バケットと Realtime Compute for Apache Flink サービスが異なるアカウントにある場合にのみ必要です。同じアカウントにある場合は、これらのパラメーターを省略できます。
YOUR-OSS-ACCESSKEYSECRET
flushIntervalSeconds
ログデータがストレージの送信先に書き込まれる間隔 (秒単位)。
flushIntervalEventCount
データが送信先に書き込まれる前にバッファに保持するログエントリの数。
説明flushIntervalSecondsとflushIntervalEventCountの両方が設定されている場合、いずれかのしきい値が満たされたときに書き込み操作がトリガーされます。rollingBytes
OSS 内の単一のログファイルの最大サイズ。ファイルがこのサイズに達すると、以降のログ用に新しいログファイルが作成されます。
SLS
<?xml version="1.0" encoding="UTF-8"?> <Configuration xmlns="http://logging.apache.org/log4j/2.0/config" strict="true" packages="com.ververica.platform.logging.appender" status="WARN"> <Appenders> <Appender name="StdOut" type="Console"> <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout" charset="UTF-8"/> </Appender> <Appender name="RollingFile" type="RollingFile" fileName="${sys:log.file}" filePattern="${sys:log.file}.%i"> <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout" charset="UTF-8"/> <Policies> <SizeBasedTriggeringPolicy size="5 MB"/> </Policies> <DefaultRolloverStrategy max="1"/> </Appender> <Appender name="SLS" type="SLS"> <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout" charset="UTF-8"/> <Property name="namespace">{{ namespace }}</Property> <!-- この行は変更しないでください --> <Property name="project">YOUR-SLS-PROJECT</Property> <Property name="logStore">YOUR-SLS-LOGSTORE</Property> <Property name="endpoint">YOUR-SLS-ENDPOINT</Property> <Property name="accessKeyId">${secret_values.accessKeyId}</Property> <Property name="accessKeySecret">${secret_values.accessKeySecret}</Property> <Property name="topic">{{ namespace }}:{{ deploymentId }}:{{ jobId }}</Property> <Property name="deploymentName">{{ deploymentName }}</Property> <Property name="flushIntervalSeconds">10</Property> <Property name="flushIntervalEventCount">100</Property> </Appender> <Appender name="StdOutErrConsoleAppender" type="Console"> <Layout pattern="%m" type="PatternLayout" charset="UTF-8"/> </Appender> <Appender name="StdOutFileAppender" type="RollingFile" fileName="${sys:stdout.file}" filePattern="${sys:stdout.file}.%i"> <Layout pattern="%m" type="PatternLayout" charset="UTF-8"/> <Policies> <SizeBasedTriggeringPolicy size="1 GB"/> </Policies> <DefaultRolloverStrategy max="2"/> </Appender> <Appender name="StdErrFileAppender" type="RollingFile" fileName="${sys:stderr.file}" filePattern="${sys:stderr.file}.%i"> <Layout pattern="%m" type="PatternLayout" charset="UTF-8"/> <Policies> <SizeBasedTriggeringPolicy size="1 GB"/> </Policies> <DefaultRolloverStrategy max="2"/> </Appender> </Appenders> <Loggers> <Logger level="INFO" name="org.apache.hadoop"/> <Logger level="INFO" name="org.apache.kafka"/> <Logger level="INFO" name="org.apache.zookeeper"/> <Logger level="INFO" name="akka"/> <Logger level="ERROR" name="org.jboss.netty.channel.DefaultChannelPipeline"/> <Logger level="OFF" name="org.apache.flink.runtime.rest.handler.job.JobDetailsHandler"/> <Logger level="ERROR" name="org.apache.flink.fs.osshadoop.shaded.com.aliyun.oss"/> <Logger level="INFO" name="StdOutErrRedirector.StdOut" additivity="false"> <AppenderRef ref="StdOutFileAppender"/> <AppenderRef ref="StdOutErrConsoleAppender"/> </Logger> <Logger level="INFO" name="StdOutErrRedirector.StdErr" additivity="false"> <AppenderRef ref="StdErrFileAppender"/> <AppenderRef ref="StdOutErrConsoleAppender"/> </Logger> {%- for name, level in userConfiguredLoggers -%} <Logger level="{{ level }}" name="{{ name }}"/> {%- endfor -%} <Root level="{{ rootLoggerLogLevel }}"> <AppenderRef ref="StdOut"/> <AppenderRef ref="RollingFile"/> <AppenderRef ref="SLS"/> </Root> </Loggers> </Configuration>説明コード内の
namespace、deploymentId、jobId、deploymentNameプロパティは Twig 変数です。変更しないでください。変更すると、ジョブの起動に失敗します。パラメーター
説明
YOUR-SLS-PROJECT
SLS プロジェクト名に置き換えてください。
YOUR-SLS-LOGSTORE
SLS ログストア名に置き換えてください。
YOUR-SLS-ENDPOINT
SLS サービスのリージョンのプライベートエンドポイントに置き換えてください。詳細については、「サービスエンドポイント」をご参照ください。
accessKeyId, accessKeySecret
SLS アカウントのアクセスキー ID とアクセスキーシークレットを使用します。 詳細については、「アクセスキーペアを取得する」をご参照ください。
プレーンテキストで認証情報が公開されるのを防ぐため、この例では名前空間変数を使用して AccessKey 値を指定します。詳細については、「名前空間変数」をご参照ください。
説明SLS と Realtime Compute for Apache Flink サービスが異なるアカウントにある場合、Flink アカウントに SLS への書き込み権限を付与する必要があります。詳細については、「カスタム RAM ポリシーの作成」をご参照ください。次のいずれかのポリシーを使用してください。
-
無制限の SLS スコープ
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "log:Get*", "log:PostLogStoreLogs" ], "Resource": "*" } ] } -
特定の SLS リソースにスコープを限定。例:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "log:PostLogStoreLogs", "log:GetLogStore" ], "Resource": "acs:log:cn-beijing:152940222687****:project/test-vvp-sls/logstore/test-ltest" } ] }
YOUR-SLS-ACCESSKEYSECRET
flushIntervalSeconds
ログデータがストレージの送信先に書き込まれる間隔 (秒単位)。
flushIntervalEventCount
データが送信先に書き込まれる前にバッファに保持するログエントリの数。
説明flushIntervalSecondsとflushIntervalEventCountの両方が設定されている場合、いずれかのしきい値が満たされたときに書き込み操作がトリガーされます。Kafka
説明Kafka クラスターの Kerberos 認証は、現在サポートされていません。
-
前提条件
Realtime Compute for Apache Flink は KafkaAppender ロギングプラグインを提供しています。Flink はこのプラグインをプラグインクラスローダーを使用して読み込むため、アプリケーションが正常に読み込めるようにそのパッケージパスを明示的に指定する必要があります。次のいずれかの方法で実行できます:
-
ジョブテンプレートの設定 (このワークスペース内のすべてのデプロイメントに影響):
コンソールの[設定]ページで、[その他の設定]フィールドに次のコードを追加します。
plugin.classloader.parent-first-patterns.additional: com.ververica.platform.logging.appender -
単一デプロイメントの設定 (現在のデプロイメントのみに影響):
[デプロイ] ページで、対象のデプロイの名前をクリックします。[デプロイ詳細] タブの [パラメーター] セクションで、[その他の設定] フィールドに次のコードを追加します。
plugin.classloader.parent-first-patterns.additional: com.ververica.platform.logging.appender
-
-
ロギング設定
<?xml version="1.0" encoding="UTF-8"?> <Configuration xmlns="http://logging.apache.org/log4j/2.0/config" strict="true" packages="com.ververica.platform.logging.appender" status="WARN"> <Appenders> <Appender name="StdOut" type="Console"> <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout"/> </Appender> <Appender name="RollingFile" type="RollingFile" fileName="${sys:log.file}" filePattern="${sys:log.file}.%i"> <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout"/> <Policies> <SizeBasedTriggeringPolicy size="20 MB"/> </Policies> <DefaultRolloverStrategy max="4"/> </Appender> <Appender type="KafkaVVP" name="KafkaVVPAppender" topic="YOUR-TOPIC-NAME"> <Layout type="PatternLayout" pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n"/> <Property name="bootstrap.servers">YOUR-KAFKA-BOOTSTRAP-SERVERS</Property> <Property name="acks">YOUR-ACKS-VALUE</Property> <Property name="buffer.memory">YOUR-BUFFER-MEMORY-SIZE</Property> <Property name="retries">YOUR-RETRIES-NUMBER</Property> <Property name="compression.type">YOUR-COMPRESSION-TYPE</Property> </Appender> <Appender type="Async" name="AsyncAppender"> <AppenderRef ref="KafkaVVPAppender"/> </Appender> </Appenders> <Loggers> <Logger level="INFO" name="org.apache.hadoop"/> <Logger level="INFO" name="org.apache.kafka"/> <Logger level="INFO" name="org.apache.zookeeper"/> <Logger level="INFO" name="akka"/> <Logger level="ERROR" name="org.jboss.netty.channel.DefaultChannelPipeline"/> <Logger level="OFF" name="org.apache.flink.runtime.rest.handler.job.JobDetailsHandler"/> {%- for name, level in userConfiguredLoggers -%} <Logger level="{{ level }}" name="{{ name }}"/> {%- endfor -%} <Root level="{{ rootLoggerLogLevel }}"> <AppenderRef ref="StdOut"/> <AppenderRef ref="RollingFile"/> <AppenderRef ref="AsyncAppender"/> </Root> </Loggers> </Configuration>パラメーター
説明
YOUR-TOPIC-NAME
送信先の Kafka トピックの名前。
YOUR-KAFKA-BOOTSTRAP-SERVERS
送信先の Kafka ブローカーのアドレス。
YOUR-ACKS-VALUE
プロデューサーが書き込みを成功と見なす前に、メッセージに対して確認応答を行う必要があるパーティションレプリカの数。詳細については、「acks」をご参照ください。
YOUR-BUFFER-MEMORY-SIZE
プロデューサーのバッファサイズ (バイト単位)。
YOUR-RETRIES-NUMBER
送信失敗後の再試行回数。
YOUR-COMPRESSION-TYPE
プロデューサーがメッセージに使用する圧縮タイプ。有効な値は none、gzip、snappy、lz4、zstd です。
-
-
[保存] をクリックします。
-
ページ上部の[開始]をクリックします。
名前空間のログエクスポート設定
テンプレートを使用して、名前空間内のすべてのジョブのデフォルトのログエクスポート先を OSS、SLS、または Kafka に設定できます。
-
このテンプレートを設定すると、この名前空間内のすべての新しいジョブのログが OSS、SLS、または Kafka にエクスポートされます。
-
Flink プラグインのクラスローダーが、リアルタイムコンピューティング for Apache Flink が提供する KafkaAppender ログプラグインをロードできるようにするには、お使いの Flink アプリケーションでそのクラスパスを指定する必要があります。これを行うには、リアルタイムコンピューティング for Apache Flink 開発コンソールで、[設定] ページに移動し、[その他の設定] セクションに次のコードを追加します。
plugin.classloader.parent-first-patterns.additional: com.ververica.platform.logging.appender
-
ジョブログテンプレート設定ページに移動します。
-
対象のワークスペースの [操作] 列で、[コンソール] をクリックします。Realtime Compute for Apache Flink 開発コンソールで、ページの上部から対象の [名前空間] を選択します。
-
左側のナビゲーションペインで、 をクリックします。
-
[デプロイのデフォルト] タブで、ジョブの種類を選択します。
-
[ロギング] セクションで、[ロギングプロファイル]を[カスタムテンプレート]に設定します。
-
名前空間内のすべてのジョブのログエクスポート先を設定します。
必要なコードについては、「単一ジョブのログエクスポート設定 (XML)」をご参照ください。
-
[変更を保存] をクリックします。
レベルベースのログ出力の設定
Log4j2 の ThresholdFilter を使用して、ログレベルに基づいて各アペンダーに異なるフィルタリングルールを設定できます。この設定には、次のような利点があります。
-
柔軟性:外部ストレージの宛先ごとに異なるログレベルを設定できます。
-
効率性:不要なログ処理と転送を削減し、システムパフォーマンスを向上させます。
-
明確性:個別の設定により、ログフローが明確になり、レベル管理が簡素化されます。
以下の手順に従ってください。
-
[ロギング] セクションで、[ロギングプロファイル] を [カスタムテンプレート] に設定します。
-
ログ出力を設定します。
次の例は、INFO レベル以上のログを Realtime Compute for Apache Flink 開発コンソールに送信し、ERROR レベル以上のログのみを Simple Log Service (SLS) に送信するようにシステムを設定する方法を示しています。
<?xml version="1.0" encoding="UTF-8"?> <Configuration xmlns="http://logging.apache.org/log4j/2.0/config" strict="true" status="WARN"> <Appenders> <!-- INFO レベル以上のログを出力するように設定されたコンソールアペンダー --> <Appender name="StdOut" type="Console"> <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/> <Layout type="PatternLayout" pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" charset="UTF-8"/> </Appender> <!-- RollingFile アペンダーは、ルートロガーのレベル (INFO) 以上のメッセージをログに記録します --> <Appender name="RollingFile" type="RollingFile"> <!-- 設定は変更されません --> <!-- ... --> </Appender> <!-- ERROR レベル以上のログのみを出力するように設定された SLS アペンダー --> <Appender name="SLS" type="SLS"> <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/> <Layout type="PatternLayout" pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" charset="UTF-8"/> <!-- SLS 固有のプロパティ --> <Property name="namespace">YOUR_NAMESPACE</Property> <Property name="project">YOUR_SLS_PROJECT</Property> <Property name="logStore">YOUR_SLS_LOGSTORE</Property> <Property name="endpoint">YOUR_SLS_ENDPOINT</Property> <!-- アクセス認証情報とその他のプロパティ --> <!-- ... --> </Appender> <!-- その他のアペンダーの定義は変更されません --> <!-- ... --> </Appenders> <Loggers> <!-- StdOut および SLS アペンダーを使用する特定のロガーを定義します --> <Logger name="StdOutLogger" level="INFO" additivity="false"> <AppenderRef ref="StdOut"/> </Logger> <Logger name="SLSLogger" level="ERROR" additivity="false"> <AppenderRef ref="SLS"/> </Logger> <!-- その他のロガーの定義とその固有の設定 --> <!-- ... --> <!-- ルートロガーは、重複ログを避けるため、出力を StdOut と RollingFile に送信しますが、SLS には送信しません。 --> <Root level="INFO"> <AppenderRef ref="StdOut"/> <AppenderRef ref="RollingFile"/> <!-- 他のロガーによる重複ログを防ぐため、ルートロガーから SLS を除外します --> </Root> </Loggers> </Configuration>この設定では、次のようになります。
-
コンソールアペンダー: ThresholdFilter を使用して、INFO レベル以上のログが開発コンソールにエクスポートされます。
-
SLS アペンダーは、
ThresholdFilterを使用して、ERROR レベル以上のログのみを SLS に送信します。SLS アペンダーのプロパティの詳細については、「SLS への出力設定」をご参照ください。YOUR_NAMESPACEやYOUR_SLS_PROJECTなどのプレースホルダーを、実際の SLS プロジェクト情報に置き換えてください。説明SLS アペンダーのタイプが SLS ではなくカスタムアペンダーの場合は、正しいタイプを使用し、アペンダーのクラスが SLS への接続に必要なロジックを備えていることを確認してください。
-
StdOutLogger と SLSLogger:これらは、それぞれ StdOut アペンダーと SLS アペンダーにのみログを送信します。また、それぞれ独自のログレベル制限があります。
-
ルートロガー:このロガーは StdOut アペンダーと RollingFile アペンダーで設定されており、SLS アペンダーは含まれていません。これは、特定のロガーがすでに SLS にログを送信するように設定されている場合に、重複ログが SLS に送信されるのを避けるためです。
Log4j の設定パラメーターの詳細については、「Apache Log4j」をご参照ください。
-
関連トピック
-
ジョブログを表示するには、「起動ログとランタイムログの表示」をご参照ください。
-
ジョブの起動に失敗した場合や、異常に動作する場合は、「例外ログの表示」をご参照ください。
-
INFOレベルのログがトラブルシューティングに不十分な場合は、「実行中のジョブのログレベルを動的に変更する」をご参照ください。 -
ActionTrail で Flink の監査イベントを表示するには、「Flink 監査イベントの表示」をご参照ください。