すべてのプロダクト
Search
ドキュメントセンター

Realtime Compute for Apache Flink:ジョブログのエクスポート設定

最終更新日:Aug 05, 2026

Flink コンソールのジョブインサイトページでジョブログを表示できます。また、OSS、SLS、Kafka などの外部ストレージサービスにエクスポートしたり、出力するログレベルを設定したりすることもできます。このトピックでは、その方法について説明します。

注意事項

  • OSS、SLS、または Kafka へのログのエクスポートを設定した後、ジョブを再起動する必要があります。

  • 別のストレージサービスへのログのエクスポートを設定してもログアーカイブ機能を無効にしない場合、ログは、お使いのワークスペースに設定されている OSS またはフルマネージドストレージに引き続き保存されます。ログアーカイブを無効にすると、Flink コンソールでジョブログを表示できなくなります。

    [デプロイメントの詳細] ページの [ログ設定] セクションで、[ログアーカイブ] 行のトグルを使用してこの機能を有効化または無効化します。

  • ログ設定では ${secret_values.xxxx} を使用して、変数管理に保存されている変数を参照できます。詳細については、「プロジェクト変数」をご参照ください。

単一ジョブのログのエクスポート設定

コンソール

  1. デプロイメントのログ設定ページに移動します。

    1. Realtime Compute for Apache Flink コンソールにログインします。

    2. 対象のワークスペースの [Actions] 列で、[Console] をクリックします。

    3. 左側のナビゲーションペインで、[運用保守] > [Deployments] の順にクリックします。次に、対象のデプロイメントの名前をクリックします。

    4. [Configuration] タブの [Logging] セクションで、右側の [Edit] をクリックします。

    5. [ロギングプロファイル] で、[Custom Template] を選択します。

  2. [Copy from System Template] > [default] の順にクリックします。

  3. [Add Appender] をクリックし、宛先を選択します。

  4. 選択したアペンダーのパラメータを設定します。

    異なるレベルのログを異なる宛先にルーティングするには、アペンダーのフィルタリングルールを設定します。詳細については、「ログレベルに基づくログフィルタリングの設定」をご参照ください。

    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 ポリシーの作成をご参照ください。以下にポリシーの例を示します。

    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

    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

  5. [Save] をクリックします。

  6. ページ上部の [Start] をクリックします。

XML 方式

  1. デプロイメントのログ設定を行うには、ログ設定ページに移動します。

    1. Realtime Compute for Apache Flink コンソールにログインします。

    2. 対象のワークスペースの[アクション] 列で、[コンソール] をクリックします。

    3. 左側のナビゲーションペインで、[O&M] > [デプロイ] をクリックし、次に目的のデプロイの名前をクリックします。

    4. [デプロイ詳細] タブの [ロギング] セクションで、[編集] をクリックします。

    5. [ロギングプロファイル] を [カスタムテンプレート] に設定します。

  2. ログ出力を設定します。

    ストレージ先に応じて、対応する設定をコピーして入力ボックスに貼り付け、ストレージの詳細情報に合わせてパラメータを更新します。異なるレベルのログを異なる宛先にルーティングするには、各 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 です。

  3. [保存]をクリックします。

  4. ページ上部の [開始] をクリックします。

名前空間のログのエクスポート設定

テンプレートを使用して、名前空間内のすべてのジョブに対するデフォルトのログのエクスポート先を OSS、SLS、または Kafka に設定できます。

重要
  • このテンプレートを設定すると、この名前空間内のすべての新しいジョブのログが OSS、SLS、または Kafka にエクスポートされます。

  • Flink プラグインクラスローダーは、Flink リアルタイムコンピューティングが提供する KafkaAppender ログプラグインをロードします。このプラグインを使用するには、Flink アプリケーションでロードできるように、そのクラスパスを指定する必要があります。このためには、Flink リアルタイムコンピューティング開発コンソールで、[設定] ページに移動し、[その他の設定] セクションに次のコードを追加します。

    plugin.classloader.parent-first-patterns.additional: com.ververica.platform.logging.appender
  1. ジョブログテンプレート設定ページに移動します。

    1. Realtime Compute for Apache Flink コンソールにログインします。

    2. 対象のワークスペースの [アクション] 列で [コンソール] をクリックします。 リアルタイム計算 Flink 版開発コンソールで、ページの上部から対象の [名前空間] を選択します。

    3. 左側メニューで、O&M > Configurations の順にクリックします。

    4. [デプロイメントのデフォルト] タブで、ジョブタイプを選択します。

    5. [ロギング] セクションで、[ロギングプロファイル] を [カスタムテンプレート] に設定します。

  2. 名前空間内のすべてのジョブのログのエクスポート先を設定します。

    必要なコードについては、単一ジョブのログのエクスポート設定 (XML 方式) を参照してください。

  3. [変更を保存] をクリックします。

ログレベルに基づくログ出力の設定

Log4j2 の ThresholdFilter を使用して、ログレベルに基づいて各アペンダーに異なるフィルタリングルールを設定できます。この設定には、次のような利点があります。

  • 柔軟性:異なる外部ストレージの宛先に対して、異なるログレベルを設定できます。

  • 効率性:不要なログ処理と転送を削減し、システムパフォーマンスを向上させます。

  • 明確性:個別の設定により、ログフローが明確になり、レベル管理が簡素化されます。

次の手順に従ってください。

  1. [ロギング] セクションで、[ロギングプロファイル] を [カスタムテンプレート] に設定します。

  2. ログ出力を設定します。

    次の例では、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」をご参照ください。

関連トピック