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

Realtime Compute for Apache Flink:ジョブログ出力の設定

最終更新日:Mar 20, 2026

Flink コンソールの「ジョブ O&M」ページでジョブログを直接確認するほか、OSS、SLS、または Kafka などの外部ストレージへログを出力するようジョブを構成できます。その後、これらのログを閲覧したり、出力ログレベルを設定したりできます。本トピックでは、ジョブログの出力設定方法について説明します。設定後は、対応するストレージでジョブログを確認してください。

注意事項

  • OSS、SLS、または Kafka へのログ出力を構成した後は、ジョブを再起動してください。

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

    image

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

単一ジョブ向けログ出力チャネルの構成

UI メソッド

  1. 単一ジョブ向けログ出力の構成エントリポイントに移動します。

    1. リアルタイムコンピューティング管理コンソール」にログインします。

    2. 対象のワークスペースの「操作」列にある「コンソール」をクリックします。

    3. 左側のナビゲーションウィンドウで、「オペレーションセンター > ジョブ O&M」をクリックし、対象のジョブ名をクリックします。

    4. デプロイメント詳細」タブで、「ログ構成」領域の右側にある「編集」をクリックします。

    5. ログテンプレート」を「カスタムテンプレート」に設定します。

  2. システムテンプレートからコピーして編集 > default」をクリックします。

  3. 出力チャネルの追加」をクリックし、対象のストレージチャネルを選択します。

  4. 送信先ストレージ向けログ出力を構成します。

    異なるログレベルのログを異なるストレージ場所に出力する場合は、「異なるログレベルごとの個別出力の構成」を参照し、Appender に対して異なるログレベルフィルタールールを構成してください。

    SLS への出力の構成

    image

    パラメーター

    説明

    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 への書き込み権限を付与する必要があります。詳細については、「カスタムポリシーの作成」をご参照ください。ポリシーの内容は以下のとおりです:

    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 への出力の構成

    image

    パラメーター

    説明

    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
    • 構成インターフェイス

      image

      パラメーター

      説明

      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` です。

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

  6. ページ上部の「開始」をクリックします。

XML メソッド

  1. 単一ジョブ向けログ出力の構成エントリポイントにアクセスします。

    1. 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 エンドポイントに置き換えてください。詳細については、「リージョンとエンドポイント」をご参照ください。

    エンドポイントは、「エンドポイント(リージョンノード)」情報であり、「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」をご参照ください。

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

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

プロジェクト内のすべてのジョブ向けログ出力チャネルの構成

OSS、SLS、または Kafka へ、プロジェクト内のすべてのジョブのログをデフォルトで出力するようテンプレートを構成します。

重要
  • 構成後、このプロジェクトで今後作成されるすべてのジョブのログは OSS、SLS、または Kafka に保存されます。

  • Flink が提供する KafkaAppender ログプラグインは、Flink のプラグインクラスローダーによって読み込まれます。使用前に、Flink アプリケーションが正常に読み込めるよう、KafkaAppender ログプラグインのパッケージパスを明示的に指定する必要があります。そのため、Flink 開発コンソールの「構成管理」ページで、「その他の構成」の下に以下のコードを追加します。

    plugin.classloader.parent-first-patterns.additional: com.ververica.platform.logging.appender
  1. ジョブログテンプレート構成エントリポイントにアクセスします。

    1. Flink 管理コンソール」にログインします。

    2. 対象のワークスペースの「アクション」列で「操作」をクリックし、「コンソール」をクリックします。「Flink 開発コンソール」ページの上部で、対象の「プロジェクト」を選択します。

    3. 左側のナビゲーションウィンドウで、「オペレーションセンター > 構成管理」をクリックします。

    4. ジョブデフォルト構成」タブで、ジョブタイプを選択します。

    5. ログ構成」セクションで、「ログテンプレート」を「カスタムテンプレート」に設定します。

  2. プロジェクト内のすべてのジョブ向けログ出力チャネルを構成します。

    コードの詳細については、「単一ジョブ向けログ出力の構成(XML メソッド)」をご参照ください。

  3. 変更の保存」をクリックします。

異なるログレベルの出力の構成

log4j2 の ThresholdFilter を使用して、異なる Appender に対して異なるログレベルフィルタールールを構成できます。この構成の利点は以下のとおりです:

  • 柔軟性:必要に応じて、異なる(外部)ストレージに対して異なるログレベルを設定できます。

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

  • 明確性:個別の構成により、ログフローが明確になり、ログレベルの管理が容易になります。

以下のように構成します:

  1. ログ構成」セクションで、「ログテンプレート」を「カスタムテンプレート」に設定します。

  2. ログ出力情報を構成します。

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

参考資料