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

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

最終更新日:Jul 10, 2026

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

注意事項

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

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

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

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

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

コンソール

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

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

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

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

    4. [設定] タブの [ロギング] セクションで、右側の [編集] をクリックします。

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

  2. [システムテンプレートからコピー] > [デフォルト] をクリックします。

  3. [アペンダーの追加] をクリックし、出力先を選択します。

  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

    書き込み先ストレージに書き込む前にバッチ処理するログエントリの数。

    説明

    flushIntervalSecondsflushIntervalEventCount の両方が設定されている場合、いずれかのしきい値が先に満たされたときに書き込み操作がトリガーされます。

    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

    数値パラメータのデフォルト値は次のとおりです:flushIntervalSeconds10flushIntervalEventCount100rollingBytes1048576 です。

    パラメータ

    説明

    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

    書き込み先ストレージに書き込む前にバッチ処理するログエントリの数。

    説明

    flushIntervalSecondsflushIntervalEventCount の両方が設定されている場合、いずれかのしきい値が先に満たされたときに書き込み操作がトリガーされます。

    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

      プロデューサーが生成するデータの圧縮タイプ。有効な値: nonegzipsnappylz4zstd

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

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

XML 方式

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

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

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

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

    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, secretAccessKey

    OSS アカウントの AccessKey ID と AccessKey secret を使用します。詳細については、「AccessKey ペアを取得する」をご参照ください。

    プレーンテキストで認証情報が公開されるのを避けるため、この例では名前空間変数を使用して AccessKey 値を指定します。詳細については、「名前空間変数」をご参照ください。

    説明

    これらのパラメーターは、OSS バケットと Realtime Compute for Apache Flink サービスが異なるアカウントにある場合にのみ必要です。同じアカウントにある場合は、これらのパラメーターを省略できます。

    YOUR-OSS-ACCESSKEYSECRET

    flushIntervalSeconds

    ログデータがストレージの送信先に書き込まれる間隔 (秒単位)。

    flushIntervalEventCount

    データが送信先に書き込まれる前にバッファに保持するログエントリの数。

    説明

    flushIntervalSecondsflushIntervalEventCount の両方が設定されている場合、いずれかのしきい値が満たされたときに書き込み操作がトリガーされます。

    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>
    説明

    コード内の namespacedeploymentIdjobIddeploymentName プロパティは 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

    データが送信先に書き込まれる前にバッファに保持するログエントリの数。

    説明

    flushIntervalSecondsflushIntervalEventCount の両方が設定されている場合、いずれかのしきい値が満たされたときに書き込み操作がトリガーされます。

    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 プラグインのクラスローダーが、リアルタイムコンピューティング for Apache Flink が提供する KafkaAppender ログプラグインをロードできるようにするには、お使いの Flink アプリケーションでそのクラスパスを指定する必要があります。これを行うには、リアルタイムコンピューティング for Apache Flink 開発コンソールで、[設定] ページに移動し、[その他の設定] セクションに次のコードを追加します。

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

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

    2. 対象のワークスペースの [操作] 列で、[コンソール] をクリックします。Realtime Compute for Apache Flink 開発コンソールで、ページの上部から対象の [名前空間] を選択します。

    3. 左側のナビゲーションペインで、[運用保守] > [設定] をクリックします。

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

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

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

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

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

レベルベースのログ出力の設定

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

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

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

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

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

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

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

    次の例は、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_NAMESPACEYOUR_SLS_PROJECT などのプレースホルダーを、実際の SLS プロジェクト情報に置き換えてください。

      説明

      SLS アペンダーのタイプが SLS ではなくカスタムアペンダーの場合は、正しいタイプを使用し、アペンダーのクラスが SLS への接続に必要なロジックを備えていることを確認してください。

    • StdOutLogger と SLSLogger:これらは、それぞれ StdOut アペンダーと SLS アペンダーにのみログを送信します。また、それぞれ独自のログレベル制限があります。

    • ルートロガー:このロガーは StdOut アペンダーと RollingFile アペンダーで設定されており、SLS アペンダーは含まれていません。これは、特定のロガーがすでに SLS にログを送信するように設定されている場合に、重複ログが SLS に送信されるのを避けるためです。

    Log4j の設定パラメーターの詳細については、「Apache Log4j」をご参照ください。

関連トピック