Flink コンソールの「ジョブの探索」ページでジョブログを直接確認するほか、Object Storage Service (OSS)、Simple Log Service (SLS)、または Kafka などの外部ストレージへジョブログをエクスポートできます。また、各出力先ごとにログレベルを個別に設定することも可能です。本トピックでは、ジョブログの出力設定方法について説明します。設定を完了すると、指定したストレージ上でジョブログを確認できます。
注意事項
OSS、SLS、または Kafka へのログ出力を設定した後は、ジョブを再起動する必要があります。
ログを外部ストレージへ送信するように設定し、かつログアーカイブ機能を無効化しない場合、ワークスペース購入時に設定した OSS またはフルマネージドストレージが引き続きログを保存します。この機能を無効化すると、Flink コンソールページ上でジョブログを確認できなくなります。

ログ設定では、
${secret_values.xxxx}形式のプロジェクト変数を使用できます。詳細については、「プロジェクト変数」をご参照ください。
単一ジョブ向けのログ出力設定
UI を使用する方法
単一ジョブ向けのログ出力設定ページへ移動します。
「Realtime Compute for Apache Flink コンソール」にログインします。
対象のワークスペースの「コンソール」列にある「操作」をクリックします。
左側のナビゲーションウィンドウで、「」をクリックし、その後対象のジョブ名をクリックします。
「デプロイメントの詳細」タブで、「ログ」セクションの右上隅にある「編集」をクリックします。
「ログテンプレート」で、「カスタムテンプレート」を選択します。
「」をクリックします。
「Appender の追加」をクリックし、対象のストレージシステムを選択します。
対象ストレージ向けのログ出力情報を設定します。
異なるログレベルのログを異なるストレージシステムに出力する場合は、「ログレベルごとの個別出力設定」を参照し、各 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 サービスが異なる Alibaba Cloud アカウントに属している場合、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 ペアを指定しています。詳細については、「プロジェクト変数」をご参照ください。
説明このパラメーターは、異なる Alibaba Cloud アカウントが所有する OSS バケットへログ出力を設定する場合にのみ必須です。同一アカウント内のバケットを利用する場合は、このパラメーターを指定する必要はありません。削除してください。
secretAccessKey
flushIntervalSeconds
ログをストレージへ同期する間隔です。これはログデータの書き込み間隔を意味します。単位:秒。
flushIntervalEventCount
一度にストレージへ書き込むログエントリ数です。
説明「`flushIntervalSeconds`」と同時に設定した場合、いずれか一方の条件が設定値に達した時点で書き込み処理が実行されます。
rollingBytes
OSS 上の単一ログファイルのサイズです。最大サイズに達すると、以降のデータは新しいログファイルへ書き込まれます。
Kafka 向けの設定
説明Kerberos 認証が有効化された Kafka クラスターはサポートされていません。
前提条件
Realtime Compute for Apache Flink が提供する KafkaAppender ログプラグインは、Flink プラグインクラスローダーによって読み込まれます。このプラグインを使用する前に、Flink アプリケーションがプラグインを正常に読み込めるよう、KafkaAppender ログプラグインのパッケージパスを明示的に指定する必要があります。単一ジョブ向け(現在のジョブにのみ適用)のプラグイン設定を行うには、以下の手順を実行します:
「ジョブ 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 を使用する方法
単一ジョブ向けのログ出力設定ページへ移動します。
「Realtime Compute for Apache 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 ペアを指定しています。詳細については、「プロジェクト変数」をご参照ください。
説明このパラメーターは、異なる Alibaba Cloud アカウントが所有する 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 ペアによるセキュリティリスクを回避するため、本例では変数を用いて AccessKey ペアを指定しています。詳細については、「プロジェクト変数」をご参照ください。
説明SLS プロジェクトと Flink サービスが異なるアカウントに属している場合、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 クラスターはサポートされていません。
前提条件
Realtime Compute for Apache Flink が提供する KafkaAppender ログプラグインは、Flink プラグインクラスローダーによって読み込まれます。このプラグインを使用する前に、Flink アプリケーションがプラグインを正常に読み込めるよう、KafkaAppender ログプラグインのパッケージパスを明示的に指定する必要があります。以下のいずれかの方法を使用できます:
ジョブテンプレートの設定(プロジェクト内のすべてのジョブに有効)
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 に保存されます。
Realtime Compute for Apache Flink が提供する KafkaAppender ログプラグインは、Flink のプラグインクラスローダーを使用して読み込まれます。このプラグインを使用する前に、Flink アプリケーションがプラグインを正常に読み込めるよう、KafkaAppender ログプラグインの配置先パッケージパスを明示的に指定する必要があります。そのため、Realtime Compute for Apache Flink 開発コンソールの「構成管理」ページの「その他の設定」に、次のコードを追加する必要があります。
plugin.classloader.parent-first-patterns.additional: com.ververica.platform.logging.appender
ジョブログテンプレート設定ページへ移動します。
「Realtime Compute for Apache Flink の管理コンソール」にログインします。
対象のワークスペースの「操作」列にある「コンソール」をクリックし、その後「リアルタイムコンピューティング開発コンソール」ページ上部から対象の「プロジェクト」を選択します。
左側のナビゲーションウィンドウで、「」をクリックします。
「デプロイメントのデフォルト」タブで、ジョブタイプを選択します。
「ログ」セクションで、「ログテンプレート」を「カスタムテンプレート」に設定します。
プロジェクト内のすべてのジョブ向けログ出力チャネルを設定します。
コードの詳細については、「単一ジョブ向けログ出力設定(XML を使用)」をご参照ください。
「変更の保存」をクリックします。
ログレベルごとの個別出力設定
log4j2 の ThresholdFilter を使用することで、異なる Appender に対して異なるログレベルフィルタリングルールを設定できます。この設定のメリットは以下のとおりです:
柔軟性:必要に応じて、異なる外部ストレージシステムに対して異なるログレベルを設定できます。
効率性:不要なログ処理および転送を削減し、システムパフォーマンスを向上させます。
明確性:個別の設定により、ログフローが明確になり、ログレベルの管理が容易になります。
以下の手順で設定を行います:
「ログ」セクションで、「ログプロファイル」を「カスタムテンプレート」に設定します。
ログ出力情報を設定します。
本トピックでは、INFO レベル以上のログを Flink 開発コンソールに出力し、ERROR レベル以上のログのみを 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 --> <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(フィルターなし。ルートレベルが 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 name="StdOutLogger" level="INFO" additivity="false"> <AppenderRef ref="StdOut"/> </Logger> <Logger name="SLSLogger" level="ERROR" additivity="false"> <AppenderRef ref="SLS"/> </Logger> <!-- その他のロガー定義および特定の構成 --> <!-- ... --> <!-- SLS および StdOut の重複ログ出力を回避するため、ルートロガーには SLS を含めない --> <Root level="INFO"> <AppenderRef ref="StdOut"/> <AppenderRef ref="RollingFile"/> <!-- 他のロガーによる重複ログ出力を防ぐため、ルートから SLS を除外 --> </Root> </Loggers> </Configuration>この設定では、以下のとおりです:
コンソール Appender:ThresholdFilter を使用して、INFO レベル以上のログを Flink 開発コンソールに出力します。
SLS Appender:ThresholdFilter を使用して、ERROR レベル以上のログのみを SLS へ送信します。「SLS 向けの設定」で説明されている SLS Appender のプロパティについて詳しくは、そちらをご参照ください。
YOUR_NAMESPACE、YOUR_SLS_PROJECTなどのプレースホルダーを、実際の SLS プロジェクト情報に置き換えてください。説明SLS Appender がカスタム Appender であり、そのタイプが SLS でない場合、正しいタイプが使用されていること、および SLS への接続に必要なロジックが Appender クラスに実装されていることを確認してください。
StdOutLogger および SLSLogger:それぞれ StdOut Appender および SLS Appender にのみログを送信し、それぞれ異なるログレベル制限を持ちます。
ルートロガー:StdOut Appender および RollingFile Appender が構成されていますが、SLS Appender は含まれていません。これにより、特定のロガーが既に構成されている場合でも、SLS への重複ログ出力を回避できます。
操作および log4j 構成パラメーターの詳細については、「Apache Log4j」をご参照ください。
参考
ジョブログの表示方法については、「起動および運用ログの表示」をご参照ください。
ジョブの起動に失敗した場合や実行中に例外が発生した場合、例外ログを表示できます。「例外ログの表示」をご参照ください。
INFO レベルのログではトラブルシューティング要件を満たせない場合、ログレベルを DEBUG に変更できます。「実行中のジョブのログレベルを動的に変更」をご参照ください。
ActionTrail を使用して Flink の監査イベントを表示できます。「Flink 監査イベントの表示」をご参照ください。