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

Container Service for Kubernetes:Java アプリケーションから SLS に Log4j ログを収集する

最終更新日:Jun 23, 2026

ワークロードの YAML で Log4j Appender を設定することで、クラスター内の Java アプリケーションから Simple Log Service (SLS) プロジェクトにログを直接送信できます。この方法により、エージェントレスなログ収集が可能になります。

Log4j は、Apache によってメンテナンスされている Java アプリケーション向けのオープンソースのロギングフレームワークです。そのコアコンポーネントには、Appender (出力先)、Layout (出力フォーマット)、Filter が含まれます。

前提条件

ステップ1:Log4j Appender の設定

このステップでは、SLS プロジェクトと Logstore を作成する方法を説明します。Logstore のデータソースとして Log4j Appender を設定すると、Java アプリケーションはログを直接 SLS に送信できるようになります。

SLS プロジェクトは、クラスターと同じリージョンに作成してください。同じリージョンに作成することで、ログデータは内部ネットワーク経由で転送され、パブリック帯域幅のコストを回避し、ネットワーク遅延を削減できます。

SLS プロジェクトの課金の詳細については、「課金概要」をご参照ください。
  1. SLS プロジェクトを作成します。

    本セクションでは、主要なパラメーターのみを説明します。その他のパラメーターについては、デフォルト値のままにしておくことができます。詳細については、「プロジェクトを管理する」をご参照ください。

    • リージョン:ACK クラスターと同じリージョンを選択します。この例では、中国 (杭州) を選択します。

    • プロジェクト名:プロジェクト名を入力します。この例では k8s-log4j を使用します。

  2. プロジェクトに Logstore を作成します。

    この例では、Logstore 名 は k8s-logstore です。その他のパラメーターはデフォルト値のままでかまいません。詳細については、「Logstore の作成」をご参照ください。

  3. k8s-logstore が作成されたら、画面のプロンプトに従ってデータを取り込みます。

  4. Log4j の取り込みカードを検索し、画面のプロンプトに従って取り込みを完了します。

    この例では、デフォルトの設定を使用します。特定のユースケースに基づいて設定を調整できます。Log4j データソースウィザードで、[Logstore の選択][データソースの設定][検索と分析の設定] のステップを完了します。手順エリアで、[ヘルプの表示] リンクをクリックして詳細なガイダンスを確認し、[次へ] をクリックして設定を完了します。

ステップ2:Log4j の統合

このステップでは、サンプルの Spring Boot アプリケーションをデプロイして、Log4j Appender プラグインを Java アプリケーションに統合する方法を示します。統合後、コンテナは起動時に JAVA_OPTS 環境変数を通じて SLS の設定を渡します。Log4j はこれらのパラメーターを自動的に読み取り、リアルタイムで SLS にログを送信します。

  1. demo-deployment.yaml ファイルをダウンロードし、JAVA_OPTS 環境変数を設定します。

    ソースファイルは demo-deployment で入手できます。

    サンプルファイルの表示

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: log4j-appender-demo-spring-boot
      labels:
        app: log4j-appender
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: log4j-appender
      template:
        metadata:
          labels:
            app: log4j-appender
        spec:
          containers:
          - name: log4j-appender-demo-spring-boot
            image: registry.cn-hangzhou.aliyuncs.com/jaegertracing/log4j-appender-demo-spring-boot:0.0.2
            env:
              - name: JAVA_OPTS            # JAVA_OPTS 環境変数を設定します。
                value: "-Dproject={your_project} -Dlogstore={your_logstore} -Dendpoint={your_endpoint} -Daccess_key_id={your_access_key_id} -Daccess_key={your_access_key_secret}"
            ports:
            - containerPort: 8080

    JAVA_OPTS パラメーター:

    • -Dproject:ご利用の SLS プロジェクトの名前。この例では k8s-log4j です。

    • -Dlogstore:ご利用の SLS Logstore の名前。この例では k8s-logstore です。

    • -Dendpoint:プロジェクトが配置されているリージョンのサービスエンドポイント。詳細については、「サービスエンドポイント」をご参照ください。この例では cn-hangzhou.log.aliyuncs.com を使用します。

    • -Daccess_key_id:ご利用の AccessKey ID に置き換えます。

    • -Daccess_key:ご利用の AccessKey Secret に置き換えます。

  2. Deployment を作成します。

    kubectl create -f demo-deployment.yaml
  3. demo-service.yaml ファイルをダウンロードします。デフォルトの設定のままでかまいません。

    ソースファイルは demo-Service で入手できます。

    サンプルファイルの表示

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: log4j-appender
      name: log4j-appender-demo-spring-boot-svc
      namespace: default
    spec:
      ports:
      - port: 8080
        protocol: TCP
        targetPort: 8080
      selector:
        app: log4j-appender
      type: LoadBalancer
  4. demo-service.yaml ファイルをデプロイして Service を作成します。

    kubectl create -f demo-service.yaml

ステップ3:ログ収集のテスト

Deployment と Service がデプロイされた後、サービスの外部 IP アドレス (EXTERNAL-IP) を介してアクセスすることで、ログが SLS に書き込まれることを確認できます。これにより、ログエントリが生成されます。

  1. Service の EXTERNAL-IP を表示します。

    kubectl get svc

    期待される出力:

    NAME                                  TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)          AGE
    log4j-appender-demo-spring-boot-svc   LoadBalancer   172.21.XX.XX   120.55.XXX.XXX   8080:30398/TCP   1h
  2. /login エンドポイントにアクセスして、テストログエントリを生成します。

    K8s_SERVICE_IPEXTERNAL-IP に置き換えます。

    curl http://${K8S_SERVICE_IP}:8080/login?name=bruce
    完全な API セットについては、「GitHub log4j-appender-demo」をご参照ください。

ステップ4:ログの表示

SLS コンソールにログインして、収集されたログをクエリおよび分析できます。

  1. Simple Log Service コンソールにログインします。

  2. プロジェクト一覧 セクションで、ターゲットプロジェクトをクリックして詳細ページを開きます。

  3. Logstore 名の右側にある 图标 アイコンをクリックし、Query and Analysis を選択して、クラスターから収集されたログを表示します。

    クエリ結果にはログエントリが表示され、message フィールドには User login successfully, requestID=hIAgSGKGyA name=bruce が含まれています。これにより、アプリケーションログが正常に SLS に収集されたことが確認できます。

関連ドキュメント