Flink コンソールのジョブインサイトページでジョブログを表示できます。また、OSS、SLS、Kafka などの外部ストレージサービスにエクスポートしたり、出力するログレベルを設定したりすることもできます。このトピックでは、その方法について説明します。
注意事項
-
OSS、SLS、または Kafka へのログのエクスポートを設定した後、ジョブを再起動する必要があります。
-
別のストレージサービスへのログのエクスポートを設定してもログアーカイブ機能を無効にしない場合、ログは、お使いのワークスペースに設定されている OSS またはフルマネージドストレージに引き続き保存されます。ログアーカイブを無効にすると、Flink コンソールでジョブログを表示できなくなります。
[デプロイメントの詳細] ページの [ログ設定] セクションで、[ログアーカイブ] 行のトグルを使用してこの機能を有効化または無効化します。
-
ログ設定では
${secret_values.xxxx}を使用して、変数管理に保存されている変数を参照できます。詳細については、「プロジェクト変数」をご参照ください。
単一ジョブのログのエクスポート設定
コンソール
-
デプロイメントのログ設定ページに移動します。
-
対象のワークスペースの [Actions] 列で、[Console] をクリックします。
-
左側のナビゲーションペインで、 の順にクリックします。次に、対象のデプロイメントの名前をクリックします。
-
[Configuration] タブの [Logging] セクションで、右側の [Edit] をクリックします。
-
[ロギングプロファイル] で、[Custom Template] を選択します。
-
の順にクリックします。
-
[Add Appender] をクリックし、宛先を選択します。
-
選択したアペンダーのパラメータを設定します。
異なるレベルのログを異なる宛先にルーティングするには、アペンダーのフィルタリングルールを設定します。詳細については、「ログレベルに基づくログフィルタリングの設定」をご参照ください。
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 バケットの URI です。形式は
oss://です。/ endpoint
OSS サービスのリージョンのエンドポイントです。詳細については、「リージョンとエンドポイント」をご参照ください。
[Endpoint (region)] 列の [Access from ECS over the VPC (internal network)] 行に対応するエンドポイントを使用します。
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 設定でそのパッケージパスを明示的に宣言する必要があります。これにより、アプリケーションが現在のデプロイメント用のプラグインを読み込むことができます。
[Deployments] ページで、デプロイメントの名前をクリックします。[Configuration] タブの [Additional Flink Configuration] セクションで、[Other Configuration] フィールドに次のパラメータを追加します。
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
-
-
[Save] をクリックします。
-
ページ上部の [Start] をクリックします。
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
OSS アカウントの AccessKey ID と AccessKey Secret を使用します。取得方法の詳細については、AccessKey ペアの取得をご参照ください。
認証情報をプレーンテキストで公開することを避けるため、この例では名前空間変数を使用して AccessKey 値を指定しています。詳細については、「名前空間変数」をご参照ください。
説明これらのパラメータは、OSS バケットと Realtime Compute for Apache Flink サービスが異なるアカウントにある場合にのみ必要です。バケットが同じアカウントにある場合は、これらのパラメータを省略できます。
secretAccessKey
flushIntervalSeconds
ログデータをストレージ先に書き込む間隔 (秒単位) です。
flushIntervalEventCount
データを宛先に書き込む前にバッファリングするログエントリの数です。
説明flushIntervalSecondsとflushIntervalEventCountの両方が設定されている場合、いずれかのしきい値に達すると書き込み操作がトリガーされます。rollingBytes
OSS 内の単一ログファイルの最大サイズです。ファイルがこのサイズに達すると、以降のログは新しいログファイルに書き込まれます。
説明JAR ジョブでは、ビジネスコードは Flink ロギングシステムのクラスローダーとは異なる専用のクラスローダーによって読み込まれます。デフォルトでは、ロギングプラグインはクラスローダーを厳密に検証するため (
isInitStrictlyのデフォルトはtrue)、このようなログはスキップされ、OSS にエクスポートされません。JAR ジョブのビジネスコードによって出力されたログを収集するには、OSS Appender に次の設定を追加してください。<Property name="isInitStrictly">false</Property>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 Project 名に置き換えます。
YOUR-SLS-LOGSTORE
SLS Logstore 名に置き換えます。
YOUR-SLS-ENDPOINT
SLS サービスのリージョンのプライベートエンドポイントに置き換えます。詳細については、「サービスエンドポイント」をご参照ください。
accessKeyId
SLS アカウントの AccessKey ID と AccessKey Secret を使用します。取得方法の詳細については、AccessKey ペアの取得をご参照ください。
認証情報をプレーンテキストで公開することを避けるため、この例では名前空間変数を使用して 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" } ] }
accessKeySecret
flushIntervalSeconds
ログデータをストレージ先に書き込む間隔 (秒単位) です。
flushIntervalEventCount
データを宛先に書き込む前にバッファリングするログエントリの数です。
説明flushIntervalSecondsとflushIntervalEventCountの両方が設定されている場合、いずれかのしきい値に達すると書き込み操作がトリガーされます。説明JAR ジョブでは、ビジネスコードは Flink ロギングシステムのクラスローダーとは異なる専用のクラスローダーによって読み込まれます。デフォルトでは、ロギングプラグインはクラスローダーを厳密に検証するため (
isInitStrictlyのデフォルトはtrue)、このようなログはスキップされ、SLS にエクスポートされません。JAR ジョブのビジネスコードによって出力されたログを収集するには、SLS Appender に次の設定を追加してください。<Property name="isInitStrictly">false</Property>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 プラグインクラスローダーは、Flink リアルタイムコンピューティングが提供する KafkaAppender ログプラグインをロードします。このプラグインを使用するには、Flink アプリケーションでロードできるように、そのクラスパスを指定する必要があります。このためには、Flink リアルタイムコンピューティング開発コンソールで、[設定] ページに移動し、[その他の設定] セクションに次のコードを追加します。
plugin.classloader.parent-first-patterns.additional: com.ververica.platform.logging.appender
-
ジョブログテンプレート設定ページに移動します。
-
対象のワークスペースの [アクション] 列で [コンソール] をクリックします。 リアルタイム計算 Flink 版開発コンソールで、ページの上部から対象の [名前空間] を選択します。
-
左側メニューで、 の順にクリックします。
-
[デプロイメントのデフォルト] タブで、ジョブタイプを選択します。
-
[ロギング] セクションで、[ロギングプロファイル] を [カスタムテンプレート] に設定します。
-
名前空間内のすべてのジョブのログのエクスポート先を設定します。
必要なコードについては、単一ジョブのログのエクスポート設定 (XML 方式) を参照してください。
-
[変更を保存] をクリックします。
ログレベルに基づくログ出力の設定
Log4j2 の ThresholdFilter を使用して、ログレベルに基づいて各アペンダーに異なるフィルタリングルールを設定できます。この設定には、次のような利点があります。
-
柔軟性:異なる外部ストレージの宛先に対して、異なるログレベルを設定できます。
-
効率性:不要なログ処理と転送を削減し、システムパフォーマンスを向上させます。
-
明確性:個別の設定により、ログフローが明確になり、レベル管理が簡素化されます。
次の手順に従ってください。
-
[ロギング] セクションで、[ロギングプロファイル] を [カスタムテンプレート] に設定します。
-
ログ出力を設定します。
次の例では、INFO レベル以上のログを Realtime Compute for Apache Flink 開発コンソールに出力し、さらに ERROR レベル以上のログを Simple Log Service (SLS) に送信するための専用ロガー (
SLSLogger) を設定する方法を示します。この設定では、アプリケーションコード内でSLSLoggerを明示的に使用した場合にのみ、ログが 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"/> <!-- 他のロガーでのログ重複を防ぐため、Root から 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 に重複ログを送信することを避けるためです。
Log4j 設定パラメータの詳細については、「Apache Log4j」をご参照ください。
-
関連トピック
-
ジョブログを表示するには、「起動ログとランタイムログの表示」をご参照ください。
-
ジョブの起動に失敗した場合や異常に動作する場合は、「例外ログの表示」をご参照ください。
-
INFOレベルのログがトラブルシューティングに不十分な場合は、「実行中のジョブのログレベルを動的に変更する」をご参照ください。 -
ActionTrail で Flink の監査イベントを表示するには、「Flink の監査イベントの表示」をご参照ください。