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

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

最終更新日:Feb 07, 2026

Flink コンソールの「ジョブの探索」ページでジョブログを直接確認するほか、Object Storage Service (OSS)、Simple Log Service (SLS)、または Kafka などの外部ストレージへジョブログをエクスポートできます。また、各出力先ごとにログレベルを個別に設定することも可能です。本トピックでは、ジョブログの出力設定方法について説明します。設定を完了すると、指定したストレージ上でジョブログを確認できます。

注意事項

  • OSS、SLS、または Kafka へのログ出力を設定した後は、ジョブを再起動する必要があります。

  • ログを外部ストレージへ送信するように設定し、かつログアーカイブ機能を無効化しない場合、ワークスペース購入時に設定した OSS またはフルマネージドストレージが引き続きログを保存します。この機能を無効化すると、Flink コンソールページ上でジョブログを確認できなくなります。

    image

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

単一ジョブ向けのログ出力設定

UI を使用する方法

  1. 単一ジョブ向けのログ出力設定ページへ移動します。

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

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

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

    4. デプロイメントの詳細」タブで、「ログ」セクションの右上隅にある「編集」をクリックします。

    5. ログテンプレート」で、「カスタムテンプレート」を選択します。

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

  3. Appender の追加」をクリックし、対象のストレージシステムを選択します。

  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 サービスが異なる Alibaba Cloud アカウントに属している場合、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 ペアを指定しています。詳細については、「プロジェクト変数」をご参照ください。

    説明

    このパラメーターは、異なる Alibaba Cloud アカウントが所有する OSS バケットへログ出力を設定する場合にのみ必須です。同一アカウント内のバケットを利用する場合は、このパラメーターを指定する必要はありません。削除してください。

    secretAccessKey

    flushIntervalSeconds

    ログをストレージへ同期する間隔です。これはログデータの書き込み間隔を意味します。単位:秒。

    flushIntervalEventCount

    一度にストレージへ書き込むログエントリ数です。

    説明

    「`flushIntervalSeconds`」と同時に設定した場合、いずれか一方の条件が設定値に達した時点で書き込み処理が実行されます。

    rollingBytes

    OSS 上の単一ログファイルのサイズです。最大サイズに達すると、以降のデータは新しいログファイルへ書き込まれます。

    Kafka 向けの設定

    説明

    Kerberos 認証が有効化された Kafka クラスターはサポートされていません。

    • 前提条件

      Realtime Compute for Apache Flink が提供する KafkaAppender ログプラグインは、Flink プラグインクラスローダーによって読み込まれます。このプラグインを使用する前に、Flink アプリケーションがプラグインを正常に読み込めるよう、KafkaAppender ログプラグインのパッケージパスを明示的に指定する必要があります。単一ジョブ向け(現在のジョブにのみ適用)のプラグイン設定を行うには、以下の手順を実行します:

      ジョブ O&M」ページで対象のジョブ名をクリックします。「デプロイメントの詳細」タブの「実行パラメーター設定」セクション内、「その他の設定」に次のコードを追加します。

      plugin.classloader.parent-first-patterns.additional: com.ververica.platform.logging.appender
    • 設定インターフェイス

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

    エンドポイントは、「エンドポイント(リージョン)」列の「ECS(内部ネットワーク)からの VPC アクセス」行の値です。

    YOUR-OSS-ACCESSKEYID

    実際の OSS 向けサービスアカウントの AccessKey ID および AccessKey Secret に置き換えてください。AccessKey ペアの取得方法については、「AccessKey ペアの取得」をご参照ください。

    プレーンテキスト形式の AccessKey ペアによるセキュリティリスクを回避するため、本例では変数を用いて AccessKey ペアを指定しています。詳細については、「プロジェクト変数」をご参照ください。

    説明

    このパラメーターは、異なる Alibaba Cloud アカウントが所有する OSS バケットへログ出力を設定する場合にのみ必須です。同一アカウント内のバケットを利用する場合は、このパラメーターを指定する必要はありません。削除してください。

    YOUR-OSS-ACCESSKEYSECRET

    flushIntervalSeconds

    ログをストレージへ同期する間隔です。これはログデータの書き込み間隔を意味します。単位:秒。

    flushIntervalEventCount

    一度にストレージへ書き込むログエントリ数です。

    説明

    「flushIntervalSeconds」と併用した場合、いずれか一方の設定値が最初に達成された時点で書き込み処理が実行されます。

    rollingBytes

    OSS 上の単一ログファイルのサイズです。最大サイズに達すると、以降のデータは新しいログファイルへ書き込まれます。

    SLS 向けの設定

    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration xmlns="http://logging.apache.org/log4j/2.0/config" 
    strict="true" packages="com.ververica.platform.logging.appender" status="WARN">  
      <Appenders> 
        <Appender name="StdOut" type="Console"> 
          <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout" charset="UTF-8"/> 
        </Appender>  
        <Appender name="RollingFile" type="RollingFile" fileName="${sys:log.file}" filePattern="${sys:log.file}.%i"> 
          <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout" charset="UTF-8"/>  
          <Policies> 
            <SizeBasedTriggeringPolicy size="5 MB"/> 
          </Policies>  
          <DefaultRolloverStrategy max="1"/> 
        </Appender>  
        <Appender name="SLS" type="SLS">
          <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout" charset="UTF-8"/>  
    
          <!-- 最終的な有効なログパスは: ${baseUri}/logs/${namespace}/${deploymentId}/{jobId}/ -->
          <Property name="namespace">{{ namespace }}</Property> <!-- この行は変更しないでください -->
          <Property name="project">YOUR-SLS-PROJECT</Property>  
          <Property name="logStore">YOUR-SLS-LOGSTORE</Property> 
          <Property name="endpoint">YOUR-SLS-ENDPOINT</Property> 
          <Property name="accessKeyId">${secret_values.accessKeyId}</Property> 
          <Property name="accessKeySecret">${secret_values.accessKeySecret}</Property> 
          <Property name="topic">{{ namespace }}:{{ deploymentId }}:{{ jobId }}</Property>
          <Property name="deploymentName">{{ deploymentName }}</Property>
          <Property name="flushIntervalSeconds">10</Property>
          <Property name="flushIntervalEventCount">100</Property>
        </Appender>
       <Appender name="StdOutErrConsoleAppender" type="Console">
         <Layout pattern="%m" type="PatternLayout" charset="UTF-8"/>
       </Appender>
       <Appender name="StdOutFileAppender" type="RollingFile" fileName="${sys:stdout.file}" filePattern="${sys:stdout.file}.%i">
         <Layout pattern="%m" type="PatternLayout" charset="UTF-8"/>
         <Policies>
         <SizeBasedTriggeringPolicy size="1 GB"/>
         </Policies>
         <DefaultRolloverStrategy max="2"/>
       </Appender>
       <Appender name="StdErrFileAppender" type="RollingFile" fileName="${sys:stderr.file}" filePattern="${sys:stderr.file}.%i">
         <Layout pattern="%m" type="PatternLayout" charset="UTF-8"/>
         <Policies>
         <SizeBasedTriggeringPolicy size="1 GB"/>
         </Policies>
         <DefaultRolloverStrategy max="2"/>
       </Appender>
      </Appenders>  
      <Loggers> 
        <Logger level="INFO" name="org.apache.hadoop"/>  
        <Logger level="INFO" name="org.apache.kafka"/>  
        <Logger level="INFO" name="org.apache.zookeeper"/>  
        <Logger level="INFO" name="akka"/>  
        <Logger level="ERROR" name="org.jboss.netty.channel.DefaultChannelPipeline"/>  
        <Logger level="OFF" name="org.apache.flink.runtime.rest.handler.job.JobDetailsHandler"/> 
        <Logger level="ERROR" name="org.apache.flink.fs.osshadoop.shaded.com.aliyun.oss"/>
      <Logger level="INFO" name="StdOutErrRedirector.StdOut" additivity="false">
        <AppenderRef ref="StdOutFileAppender"/>
        <AppenderRef ref="StdOutErrConsoleAppender"/>
      </Logger>
      <Logger level="INFO" name="StdOutErrRedirector.StdErr" additivity="false">
        <AppenderRef ref="StdErrFileAppender"/>
        <AppenderRef ref="StdOutErrConsoleAppender"/>
      </Logger>
        {%- for name, level in userConfiguredLoggers -%} 
          <Logger level="{{ level }}" name="{{ name }}"/> 
        {%- endfor -%}
        <Root level="{{ rootLoggerLogLevel }}"> 
          <AppenderRef ref="StdOut"/>
          <AppenderRef ref="RollingFile"/>  
          <AppenderRef ref="SLS"/> 
        </Root>
      </Loggers> 
    </Configuration>
    説明

    コード内の namespace、deploymentId、jobId、deploymentName は Twig 変数です。これらを変更しないでください。変更するとジョブの起動に失敗します。

    パラメーター

    説明

    YOUR-SLS-PROJECT

    実際の SLS プロジェクト名に置き換えてください。

    YOUR-SLS-LOGSTORE

    実際の SLS Logstore 名に置き換えてください。

    YOUR-SLS-ENDPOINT

    該当リージョンにおける SLS プロジェクトのプライベートエンドポイントに置き換えてください。詳細については、「エンドポイント」をご参照ください。

    YOUR-SLS-ACCESSKEYID

    実際の SLS 向けサービスアカウントの AccessKey ID および AccessKey Secret に置き換えてください。AccessKey ペアの取得方法については、「AccessKey ペアの取得」をご参照ください。

    プレーンテキスト形式の AccessKey ペアによるセキュリティリスクを回避するため、本例では変数を用いて AccessKey ペアを指定しています。詳細については、「プロジェクト変数」をご参照ください。

    説明

    SLS プロジェクトと Flink サービスが異なるアカウントに属している場合、Flink アカウントに SLS へのデータ書き込み権限を付与する必要があります。詳細については、「カスタムポリシーの作成」をご参照ください。以下のコードはポリシーの内容例です:

    • SLS の範囲に制限がない場合

      {
      
          "Version": "1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "log:Get*",
                      "log:PostLogStoreLogs"
                  ],
                  "Resource": "*"
              }
          ]
      }
    • SLS リソース範囲を指定する場合。以下は例です。

      {
          "Version": "1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "log:PostLogStoreLogs",
                      "log:GetLogStore"
                  ],
                  "Resource": "acs:log:cn-beijing:152940222687****:project/test-vvp-sls/logstore/test-ltest"
              }
          ]
      }

    YOUR-SLS-ACCESSKEYSECRET

    flushIntervalSeconds

    ログをストレージへ同期する間隔です。これはログデータの書き込み間隔を意味します。単位:秒。

    flushIntervalEventCount

    一度にストレージへ書き込むログエントリ数です。

    説明

    「flushIntervalSeconds」と併用した場合、いずれか一方の設定値が最初に達成された時点で単一のデータ書き込み処理が実行されます。

    Kafka 向けの設定

    説明

    Kerberos 認証が有効化された Kafka クラスターはサポートされていません。

    • 前提条件

      Realtime Compute for Apache Flink が提供する KafkaAppender ログプラグインは、Flink プラグインクラスローダーによって読み込まれます。このプラグインを使用する前に、Flink アプリケーションがプラグインを正常に読み込めるよう、KafkaAppender ログプラグインのパッケージパスを明示的に指定する必要があります。以下のいずれかの方法を使用できます:

      • ジョブテンプレートの設定(プロジェクト内のすべてのジョブに有効)

        Flink 開発コンソールの「構成管理」ページの「その他の設定」セクションに、次のコードを追加します。

        plugin.classloader.parent-first-patterns.additional: com.ververica.platform.logging.appender
      • 単一ジョブの設定(現在のジョブにのみ有効)

        ジョブ O&M」ページで対象のジョブ名をクリックします。「デプロイメントの詳細」タブの「実行パラメーター設定」エリア内の「追加設定」セクションに、次のコードを追加します。

        plugin.classloader.parent-first-patterns.additional: com.ververica.platform.logging.appender
    • ログ構成

      <?xml version="1.0" encoding="UTF-8"?>
      <Configuration xmlns="http://logging.apache.org/log4j/2.0/config" 
      strict="true" packages="com.ververica.platform.logging.appender" status="WARN">  
        <Appenders> 
          <Appender name="StdOut" type="Console"> 
            <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout"/> 
          </Appender>  
          <Appender name="RollingFile" type="RollingFile" fileName="${sys:log.file}" filePattern="${sys:log.file}.%i"> 
            <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout"/>  
            <Policies> 
              <SizeBasedTriggeringPolicy size="20 MB"/> 
            </Policies>  
            <DefaultRolloverStrategy max="4"/> 
          </Appender>  
          <Appender type="KafkaVVP" name="KafkaVVPAppender" topic="YOUR-TOPIC-NAME">
              <Layout type="PatternLayout" pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n"/>
              <Property name="bootstrap.servers">YOUR-KAFKA-BOOTSTRAP-SERVERS</Property>
               <Property name="acks">YOUR-ACKS-VALUE</Property>
               <Property name="buffer.memory">YOUR-BUFFER-MEMORY-SIZE</Property>
                <Property name="retries">YOUR-RETRIES-NUMBER</Property>
               <Property name="compression.type">YOUR-COMPRESSION-TYPE</Property>
          </Appender>
          <Appender type="Async" name="AsyncAppender">
              <AppenderRef ref="KafkaVVPAppender"/>
          </Appender>
        </Appenders>
        <Loggers> 
          <Logger level="INFO" name="org.apache.hadoop"/>  
          <Logger level="INFO" name="org.apache.kafka"/>  
          <Logger level="INFO" name="org.apache.zookeeper"/>  
          <Logger level="INFO" name="akka"/>  
          <Logger level="ERROR" name="org.jboss.netty.channel.DefaultChannelPipeline"/>  
          <Logger level="OFF" name="org.apache.flink.runtime.rest.handler.job.JobDetailsHandler"/> 
          {%- for name, level in userConfiguredLoggers -%} 
            <Logger level="{{ level }}" name="{{ name }}"/> 
          {%- endfor -%}
          <Root level="{{ rootLoggerLogLevel }}"> 
            <AppenderRef ref="StdOut"/>
            <AppenderRef ref="RollingFile"/>  
            <AppenderRef ref="AsyncAppender"/> 
          </Root>
        </Loggers>
      </Configuration>

      パラメーター

      説明

      YOUR-TOPIC-NAME

      ログを書き込む Kafka Topic の名前です。

      YOUR-KAFKA-BOOTSTRAP-SERVERS

      ログを書き込む Kafka ブローカーのアドレスです。

      YOUR-ACKS-VALUE

      メッセージの書き込みが成功したと見なすために、パーティションレプリカが受信しなければならない数です。詳細については、「acks」をご参照ください。

      YOUR-BUFFER-MEMORY-SIZE

      プロデューサーのバッファーのサイズです。単位:バイト。

      YOUR-RETRIES-NUMBER

      送信失敗後の再試行回数です。

      YOUR-COMPRESSION-TYPE

      プロデューサーがデータ生成時に使用できる圧縮タイプです。有効な値は、none、gzip、snappy、lz4、zstd です。

      説明

      Apache Kafka クライアントがサポートするすべての構成パラメーターを設定することもできます。詳細については、「Apache Kafka」をご参照ください。

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

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

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

プロジェクト内のすべてのジョブに対して、OSS、SLS、または Kafka 向けのデフォルトログ出力を設定するテンプレートを構成できます。

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

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

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

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

    2. 対象のワークスペースの「操作」列にある「コンソール」をクリックし、その後「リアルタイムコンピューティング開発コンソール」ページ上部から対象の「プロジェクト」を選択します。

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

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

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

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

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

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

ログレベルごとの個別出力設定

log4j2 の ThresholdFilter を使用することで、異なる Appender に対して異なるログレベルフィルタリングルールを設定できます。この設定のメリットは以下のとおりです:

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

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

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

以下の手順で設定を行います:

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

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

    本トピックでは、INFO レベル以上のログを Flink 開発コンソールに出力し、ERROR レベル以上のログのみを SLS に出力する例を示します。以下のコードは設定例です。

    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration xmlns="http://logging.apache.org/log4j/2.0/config" strict="true" status="WARN">
      <Appenders>
        <!-- INFO レベルのログのみを出力するように設定されたコンソール Appender -->
        <Appender name="StdOut" type="Console">
          <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
          <Layout type="PatternLayout" pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" charset="UTF-8"/>
        </Appender>
        
        <!-- RollingFile Appender(フィルターなし。ルートレベルが INFO のため、すべてのレベルのログが出力される) -->
        <Appender name="RollingFile" type="RollingFile">
          <!-- 構成は変更されません -->
          <!-- ... -->
        </Appender>
        
        <!-- ERROR レベル以上のログのみを出力するように設定された SLS Appender -->
        <Appender name="SLS" type="SLS">
          <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
          <Layout type="PatternLayout" pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" charset="UTF-8"/>
          <!-- SLS 固有のプロパティ -->
          <Property name="namespace">YOUR_NAMESPACE</Property>
          <Property name="project">YOUR_SLS_PROJECT</Property>
          <Property name="logStore">YOUR_SLS_LOGSTORE</Property>
          <Property name="endpoint">YOUR_SLS_ENDPOINT</Property>
          <!-- アクセス資格情報およびその他のプロパティ -->
          <!-- ... -->
        </Appender>
    
        <!-- その他の Appender 定義は変更されません -->
        <!-- ... -->
      </Appenders>
      
      <Loggers>
        <!-- StdOut および SLS 向けに特定のレベルで直接構成されたロガー -->
        <Logger name="StdOutLogger" level="INFO" additivity="false">
          <AppenderRef ref="StdOut"/>
        </Logger>
        
        <Logger name="SLSLogger" level="ERROR" additivity="false">
          <AppenderRef ref="SLS"/>
        </Logger>
    
        <!-- その他のロガー定義および特定の構成 -->
        <!-- ... -->
    
        <!-- SLS および StdOut の重複ログ出力を回避するため、ルートロガーには SLS を含めない -->
        <Root level="INFO">
          <AppenderRef ref="StdOut"/>
          <AppenderRef ref="RollingFile"/>
          <!-- 他のロガーによる重複ログ出力を防ぐため、ルートから SLS を除外 -->
        </Root>
      </Loggers>
    </Configuration>

    この設定では、以下のとおりです:

    • コンソール Appender:ThresholdFilter を使用して、INFO レベル以上のログを Flink 開発コンソールに出力します。

    • SLS Appender:ThresholdFilter を使用して、ERROR レベル以上のログのみを SLS へ送信します。「SLS 向けの設定」で説明されている SLS Appender のプロパティについて詳しくは、そちらをご参照ください。YOUR_NAMESPACEYOUR_SLS_PROJECT などのプレースホルダーを、実際の SLS プロジェクト情報に置き換えてください。

      説明

      SLS Appender がカスタム Appender であり、そのタイプが SLS でない場合、正しいタイプが使用されていること、および SLS への接続に必要なロジックが Appender クラスに実装されていることを確認してください。

    • StdOutLogger および SLSLogger:それぞれ StdOut Appender および SLS Appender にのみログを送信し、それぞれ異なるログレベル制限を持ちます。

    • ルートロガー:StdOut Appender および RollingFile Appender が構成されていますが、SLS Appender は含まれていません。これにより、特定のロガーが既に構成されている場合でも、SLS への重複ログ出力を回避できます。

    操作および log4j 構成パラメーターの詳細については、「Apache Log4j」をご参照ください。

参考