Flink コンソールの「ジョブ O&M」ページでジョブログを直接確認するほか、OSS、SLS、または Kafka などの外部ストレージへログを出力するようジョブを構成できます。その後、これらのログを閲覧したり、出力ログレベルを設定したりできます。本トピックでは、ジョブログの出力設定方法について説明します。設定後は、対応するストレージでジョブログを確認してください。
注意事項
OSS、SLS、または Kafka へのログ出力を構成した後は、ジョブを再起動してください。
別のストレージへログを構成しても、ログアーカイブ機能を無効化しない場合、ワークスペース購入時に設定した OSS またはフルマネージドストレージが引き続きログを保存します。ログアーカイブ機能を無効化すると、Flink コンソールページでジョブログを表示できなくなります。

ログ構成内で
${secret_values.xxxx}を使用して、変数管理で管理される変数を参照できます。詳細については、「プロジェクト変数」をご参照ください。
単一ジョブ向けログ出力チャネルの構成
UI メソッド
単一ジョブ向けログ出力の構成エントリポイントに移動します。
「リアルタイムコンピューティング管理コンソール」にログインします。
対象のワークスペースの「操作」列にある「コンソール」をクリックします。
左側のナビゲーションウィンドウで、「」をクリックし、対象のジョブ名をクリックします。
「デプロイメント詳細」タブで、「ログ構成」領域の右側にある「編集」をクリックします。
「ログテンプレート」を「カスタムテンプレート」に設定します。
「」をクリックします。
「出力チャネルの追加」をクリックし、対象のストレージチャネルを選択します。
送信先ストレージ向けログ出力を構成します。
異なるログレベルのログを異なるストレージ場所に出力する場合は、「異なるログレベルごとの個別出力の構成」を参照し、Appender に対して異なるログレベルフィルタールールを構成してください。
SLS への出力の構成

パラメーター
説明
name
Appender のカスタム名です。
type
出力チャネルのタイプです。値は固定で SLS です。この値を変更しないでください。
pattern
ログの出力フォーマットです。
デフォルト値は
%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%nです。サンプルログエントリは2024-10-01 14:23:45,678{GMT+8} INFO com.example.MyClass - This is a test log messageです。flushIntervalSeconds
ログをストレージに書き込む間隔(秒単位)です。
flushIntervalEventCount
ストレージに書き込む前に収集するログエントリ数です。
説明flushIntervalSeconds と本パラメーターの両方が設定されている場合、いずれかのしきい値に達した時点でログが書き込まれます。
authenticationMode
AccessKey
SLS Token
説明このモードを選択した場合、Flink ワークスペースと同じリージョンにある Logstore にのみログを配信できます。このモードは Ververica Runtime (VVR) 11.5 以降でのみサポートされます。
project
プロジェクト名です。
logStore
Logstore 名です。
endpoint
SLS サービスが配置されているリージョンのプライベートネットワークエンドポイントです。詳細については、「エンドポイント」をご参照ください。
accessKeyId
これらを SLS サービスアカウントの AccessKey ID および AccessKey Secret に置き換えてください。AccessKey の取得方法については、「AccessKey の取得」をご参照ください。
プレーンテキストの AccessKey を使用することによるセキュリティリスクを回避するため、本例では AccessKey 値を変数で指定しています。詳細については、「プロジェクト変数」をご参照ください。
説明SLS と Flink サービスが異なるアカウントで実行されている場合、Flink アカウントに SLS への書き込み権限を付与する必要があります。詳細については、「カスタムポリシーの作成」をご参照ください。ポリシーの内容は以下のとおりです:
accessKeySecret
OSS への出力の構成

パラメーター
説明
name
Appender のカスタム名です。
type
出力チャネルのタイプです。値は固定で OSS です。この値を変更しないでください。
pattern
ログの出力フォーマットです。
デフォルト値は
%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%nです。baseUri
OSS バケット名を入力します。
endpoint
OSS サービスが配置されているリージョンのエンドポイントです。詳細については、「リージョンとエンドポイント」をご参照ください。
「エンドポイント(リージョン)」の値を、「ECS VPC ネットワークアクセス(内部ネットワーク)」行から使用します。
accessKeyId
OSS サービスアカウントの AccessKey ID および AccessKey Secret です。AccessKey の取得方法については、「AccessKey の取得」をご参照ください。
プレーンテキストの AccessKey を使用することによるセキュリティリスクを回避するため、本例では AccessKey 値を変数で指定しています。詳細については、「プロジェクト変数」をご参照ください。
説明これらのパラメーターは、Flink サービスとは異なるアカウントの OSS バケットへログを出力する場合にのみ必要です。同一アカウントの場合は、これらのパラメーターを削除してください。
secretAccessKey
flushIntervalSeconds
ログをストレージに書き込む間隔(秒単位)です。
flushIntervalEventCount
ストレージに書き込む前に収集するログエントリ数です。
説明flushIntervalSeconds と本パラメーターの両方が設定されている場合、いずれかのしきい値に達した時点でログが書き込まれます。
rollingBytes
OSS 上の単一ログファイルの最大サイズです。ログファイルがこのサイズに達すると、その後のデータは新しいログファイルに書き込まれます。
Kafka への出力の構成
説明Kerberos 認証が有効な Kafka クラスターはサポートされていません。
前提条件
リアルタイムコンピューティングが提供する KafkaAppender ログプラグインは、Flink のプラグインクラスローダーによって読み込まれます。Flink アプリケーションでこのプラグインを正常に読み込むには、そのパッケージパスを明示的に指定する必要があります。以下に、単一ジョブ向けのプラグイン構成手順を示します。この構成は、当該ジョブにのみ適用されます。
「ジョブ O&M」ページで対象のジョブ名をクリックします。「デプロイメント詳細」タブの、「その他の構成」セクション(「ランタイムパラメーター構成」エリア内)に、以下のコードを追加します。
plugin.classloader.parent-first-patterns.additional: com.ververica.platform.logging.appender構成インターフェイス

パラメーター
説明
name
Appender のカスタム名です。
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 メソッド
単一ジョブ向けログ出力の構成エントリポイントにアクセスします。
「Flink 管理コンソール」にログインします。
対象のワークスペースの「アクション」列で「操作」をクリックし、「コンソール」をクリックします。
左側のナビゲーションウィンドウで、「」をクリックし、対象のジョブ名をクリックします。
「デプロイメント詳細」タブで、「編集」を「ログ構成」セクションの右側でクリックします。
「ログテンプレート」を「カスタムテンプレート」に設定します。
ログ出力情報を構成します。
対象のストレージに応じて、対応する構成をコピーし、入力ボックスに貼り付けます。その後、指定されたパラメーター値をストレージ設定に合わせて修正します。また、異なるログレベルのログを別々のストレージに出力する必要がある場合は、「異なるログレベル向けの個別出力の構成」を参照し、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 エンドポイントに置き換えてください。詳細については、「リージョンとエンドポイント」をご参照ください。
エンドポイントは、「エンドポイント(リージョンノード)」情報であり、「ECS の VPC ネットワークアクセス(プライベートネットワーク)」行に記載されています。
YOUR-OSS-ACCESSKEYID
プレースホルダーを、ご自身の OSS サービスアカウントの AccessKey ID および AccessKey Secret に置き換えてください。AccessKey ペアの取得方法については、「AccessKey の取得」をご参照ください。
プレーンテキストの AccessKey によるセキュリティリスクを回避するため、本例では変数を使用して AccessKey 値を提供しています。詳細については、「プロジェクト変数」をご参照ください。
説明このパラメーターは、Flink アカウントとは異なる OSS アカウントへ出力する場合にのみ必要です。同一アカウントの場合は、このパラメーターを入力せず、削除してください。
YOUR-OSS-ACCESSKEYSECRET
flushIntervalSeconds
ログをストレージへ同期する間隔(秒単位)です。これは、ログデータが書き込まれる頻度を表します。
flushIntervalEventCount
ログをストレージへ同期する間隔(ログエントリ数単位)です。これは、書き込み前に収集するログエントリ数を表します。
説明flushIntervalSeconds と併用する場合、どちらかの設定値が最初に達成された時点で書き込み操作がトリガーされます。
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"/> <!-- 最終的な有効なログパスは: ${baseUri}/logs/${namespace}/${deploymentId}/{jobId}/ --> <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 Logstore 名に置き換えてください。
YOUR-SLS-ENDPOINT
ご自身の SLS インスタンスが配置されているリージョンのプライベートネットワークエンドポイントに置き換えてください。詳細については、「サービスエンドポイント」をご参照ください。
YOUR-SLS-ACCESSKEYID
ご自身の SLS サービスアカウントの AccessKey ID および AccessKey Secret に置き換えてください。詳細については、「AccessKey の取得」をご参照ください。
プレーンテキストの AccessKey によるセキュリティリスクを回避するため、本例では変数を使用して AccessKey 値を指定しています。詳細については、「プロジェクト変数」をご参照ください。
説明SLS と Flink サービスを異なる Alibaba Cloud アカウントで構成する場合、SLS サービスアカウントが Flink アカウントに SLS への書き込み権限を付与する必要があります。詳細な手順については、「カスタムポリシーの作成」をご参照ください。具体的なポリシーの内容は以下のとおりです:
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 を構成した場合、時間間隔または指定されたしきい値のいずれかが先に達成された時点で書き込み操作がトリガーされます。
Kafka への構成
説明Kerberos 認証が有効な Kafka クラスターはサポートされていません。
前提条件
リアルタイムコンピューティングが提供する KafkaAppender ログ拡張は、Flink のプラグインクラスローダーを介して読み込まれます。この拡張を使用する前に、KafkaAppender ログ拡張が配置されているパッケージパスを明示的に指定して、Flink アプリケーションが正常に読み込めるようにする必要があります。そのためには、以下の手順を実行します:
ジョブテンプレートの構成(このプロジェクト内のすべてのジョブに有効)
Flink 開発コンソールの「構成管理」ページで、「その他の構成」の下に以下のコードを追加します。
plugin.classloader.parent-first-patterns.additional: com.ververica.platform.logging.appender単一ジョブの構成(当該ジョブにのみ有効)
「ジョブ O&M」ページで、対象のジョブ名をクリックします。「デプロイメント詳細」タブで、「ランタイムパラメーター構成」エリアの「その他の構成」の下に、以下のコードを追加します。
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 Topic 名です。
YOUR-KAFKA-BOOTSTRAP-SERVERS
書き込み先の Kafka ブローカーのアドレスです。
YOUR-ACKS-VALUE
メッセージの書き込みを成功とみなすために、受信しなければならないパーティションレプリカの数を指定します。有効な値については、「acks」をご参照ください。
YOUR-BUFFER-MEMORY-SIZE
プロデューサーのバッファーのサイズ(バイト単位)です。
YOUR-RETRIES-NUMBER
送信失敗時のリトライ回数です。
YOUR-COMPRESSION-TYPE
プロデューサーが生成するデータの圧縮タイプで、`none`、`gzip`、`snappy`、`lz4`、`zstd` のいずれかが使用可能です。
説明Apache Kafka クライアントがサポートするすべてのパラメーターを構成できます。詳細については、「Apache Kafka」をご参照ください。
「保存」をクリックします。
ページ上部の「開始」をクリックします。
プロジェクト内のすべてのジョブ向けログ出力チャネルの構成
OSS、SLS、または Kafka へ、プロジェクト内のすべてのジョブのログをデフォルトで出力するようテンプレートを構成します。
構成後、このプロジェクトで今後作成されるすべてのジョブのログは OSS、SLS、または Kafka に保存されます。
Flink が提供する KafkaAppender ログプラグインは、Flink のプラグインクラスローダーによって読み込まれます。使用前に、Flink アプリケーションが正常に読み込めるよう、KafkaAppender ログプラグインのパッケージパスを明示的に指定する必要があります。そのため、Flink 開発コンソールの「構成管理」ページで、「その他の構成」の下に以下のコードを追加します。
plugin.classloader.parent-first-patterns.additional: com.ververica.platform.logging.appender
ジョブログテンプレート構成エントリポイントにアクセスします。
「Flink 管理コンソール」にログインします。
対象のワークスペースの「アクション」列で「操作」をクリックし、「コンソール」をクリックします。「Flink 開発コンソール」ページの上部で、対象の「プロジェクト」を選択します。
左側のナビゲーションウィンドウで、「」をクリックします。
「ジョブデフォルト構成」タブで、ジョブタイプを選択します。
「ログ構成」セクションで、「ログテンプレート」を「カスタムテンプレート」に設定します。
プロジェクト内のすべてのジョブ向けログ出力チャネルを構成します。
コードの詳細については、「単一ジョブ向けログ出力の構成(XML メソッド)」をご参照ください。
「変更の保存」をクリックします。
異なるログレベルの出力の構成
log4j2 の ThresholdFilter を使用して、異なる Appender に対して異なるログレベルフィルタールールを構成できます。この構成の利点は以下のとおりです:
柔軟性:必要に応じて、異なる(外部)ストレージに対して異なるログレベルを設定できます。
効率性:不要なログ処理および転送を削減し、システムパフォーマンスを向上させます。
明確性:個別の構成により、ログフローが明確になり、ログレベルの管理が容易になります。
以下のように構成します:
「ログ構成」セクションで、「ログテンプレート」を「カスタムテンプレート」に設定します。
ログ出力情報を構成します。
本例では、Flink 開発コンソール(コンソール)で INFO レベル以上のログを出力し、Simple Log Service(SLS)で ERROR レベル以上のログのみを出力するよう構成します。構成例は以下のとおりです:
<?xml version="1.0" encoding="UTF-8"?> <Configuration xmlns="http://logging.apache.org/log4j/2.0/config" strict="true" status="WARN"> <Appenders> <!-- INFO レベルのログのみを出力するよう構成されたコンソール Appender --> <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 Appender(フィルターなし:Root レベルが INFO のため、すべてのレベルのログが出力される) --> <Appender name="RollingFile" type="RollingFile"> <!-- 構成は変更されない --> <!-- ... --> </Appender> <!-- ERROR レベル以上のログのみを出力するよう構成された SLS Appender --> <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> <!-- その他の Appender 定義は変更されない --> <!-- ... --> </Appenders> <Loggers> <!-- StdOut および SLS 向けに特定のレベルで直接 Logger を構成 --> <Logger name="StdOutLogger" level="INFO" additivity="false"> <AppenderRef ref="StdOut"/> </Logger> <Logger name="SLSLogger" level="ERROR" additivity="false"> <AppenderRef ref="SLS"/> </Logger> <!-- その他の Logger 定義は、それぞれの特定の構成で維持 --> <!-- ... --> <!-- 重複ログを防ぐため、SLS および StdOut を含まない Root Logger --> <Root level="INFO"> <AppenderRef ref="StdOut"/> <AppenderRef ref="RollingFile"/> <!-- 他の Logger による重複ログを防ぐため、Root から SLS を除外 --> </Root> </Loggers> </Configuration>この構成では:
コンソール Appender:ThresholdFilter を使用して、INFO レベル以上のログを Flink 開発コンソールに出力します。
SLS Appender:ThresholdFilter を使用して、ERROR レベル以上のログのみを SLS に送信します。SLS Appender の特定のプロパティについては、「SLS への構成」をご参照ください。プレースホルダーである
YOUR_NAMESPACEやYOUR_SLS_PROJECTは、ご自身の実際の SLS プロジェクト情報に置き換えてください。説明SLS Appender のタイプが SLS ではなくカスタム Appender の場合、正しいタイプを使用し、Appender クラスが SLS への接続に必要なロジックを備えていることを確認してください。
StdOutLogger および SLSLogger:それぞれ StdOut Appender および SLS Appender にのみログを送信し、それぞれ異なるログレベル制限があります。
Root Logger:StdOut Appender および RollingFile Appender を構成しますが、SLS Appender は含めません。これにより、特定の Logger 構成が既に存在する場合の SLS への重複ログ送信を防止します。
その他の操作や log4j 構成パラメーターの詳細については、「Apache Log4j」をご参照ください。
参考資料
ジョブログの確認方法については、「起動および運用ログの確認」をご参照ください。
ジョブの起動または実行中に異常が発生した場合、異常な実行時ログを確認できます。詳細については、「異常な実行時ログの確認」をご参照ください。
トラブルシューティングに INFO レベルのログが不十分な場合、ログレベルを DEBUG に変更できます。詳細については、「実行中のジョブのログレベルを動的に変更する」をご参照ください。
ActionTrail を使用して Flink の監査イベントを確認できます。詳細については、「Flink 監査イベントの確認」をご参照ください。