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

Container Service for Kubernetes:Kubernetes および Log Service での Log4jAppender の設定

最終更新日:Dec 10, 2024

このトピックでは、アプリケーションを変更することなく、Container Service for Kubernetes (ACK) クラスターのログをLog ServiceにエクスポートするようにYAMLファイルを設定する方法について説明します。 また、API操作で管理できるアプリケーションがACKクラスターにデプロイされます。 アプリケーションは、テスト目的のログを生成するために使用されます。

前提条件

  • ACKがアクティブ化され、ACKクラスターが作成されます。

    この例では、ACKクラスターが中国 (杭州) リージョンに作成されます。

  • AccessKeyペアが作成されるか、RAM (Resource Access Management) が有効になります。 必要な権限が付与されていることを確認してください。 この例では、AccessKeyペアが作成されます。

背景情報

Log4jはApacheのオープンソースプロジェクトです。 Log4jは、ログレベル、ログ出力先、ログ出力形式の3つのコンポーネントで構成されています。 Log4Appenderを構成して、コンソール、ログファイル、GUIコンポーネント、ソケットサーバー、NTイベントビューアー、またはUNIX syslogデーモンにログデータをエクスポートできます。

手順

  1. Log ServiceでLog4jAppenderを設定します。

    1. Log Serviceでプロジェクトを作成します。

      この例では、ACKクラスターがデプロイされている中国 (杭州) リージョンにk8s-log4jという名前のプロジェクトが作成されます。 詳細については、「プロジェクトの作成」をご参照ください。

      説明

      ACKクラスターがデプロイされているリージョンにプロジェクトを作成することをお勧めします。 Log ServiceプロジェクトとACKクラスターが同じリージョンにデプロイされている場合、ログは内部ネットワーク内で送信されます。 これにより、ログデータのリアルタイム収集と迅速な取得が可能になります。 これはまた、追加の帯域幅および時間コストを必要とするクロスリージョン伝送を回避する。

      Create a project

    2. k8s-log4jプロジェクトのLogstoreを作成します。

      この例では、k8s-logstore という名前の Logstore が作成されます。 詳細については、「Logstore の作成」をご参照ください。 Configure the Logstore

    3. k8s-logstoreログストアが作成されると、データインポートウィザードの使用方法に関する手順を示すダイアログボックスが表示されます。

      Data Import wizard

    4. [カスタムコード] の [Log4jAppender] を選択し、ページで提供されている手順を実行して設定を行います。

      この例では、Log4jAppenderはデフォルト設定で構成されています。 ビジネス要件に合わせて設定をカスタマイズすることもできます。 Custom data

  2. ACKクラスターのLog4jAppenderを設定します。

    この例では、demo-deploymentファイルとdemo-Serviceファイルが使用されています。

    1. ACKクラスターに接続します。

    2. demo-deployment.yamlファイルを取得し、JAVA_OPTS環境変数を設定します。

      以下は、demo-deployment.yamlファイルのサンプルテンプレートです。

      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                ## Take note of the following fields
                  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
      説明

      次の情報が表示されます。

      • -Dproject: Log Service内のプロジェクトの名前。 この例では、プロジェクトの名前はk8s-log4jです。

      • -DlogStore: Log Service内のLogstoreの名前。 この例では、Logstoreの名前はk8s-logstoreです。

      • -Dendpoint: Log serviceのサービスエンドポイント。 Log serviceプロジェクトがデプロイされているリージョンに基づいて、サービスエンドポイントを設定する必要があります。 詳細については、「

        エンドポイント この例では、サービスエンドポイントiがs cn-hangzhou.log.aliyuncs.comします。

      • -Daccess_key_id: AccessKey ID。

      • -Daccess_key: AccessKeyシークレット。

    3. 次のコマンドを実行して、展開を作成します。

      kubectl create -f demo-deployment.yaml
    4. demo-Service.yamlファイルを取得し、次のコマンドを実行してサービスを作成します。

      demo-Service.yamlファイルの設定を変更する必要はありません。

      kubectl create -f demo-service.yaml
  3. Kubernetesクラスターログを生成します。

    kubectl getコマンドを実行して、関連するリソースオブジェクトの展開ステータスを表示できます。 デプロイとサービスがデプロイされたら、kubectl get svcコマンドを実行して、サービスの外部IPアドレス (EXTERNAL-IP) を確認します。

    Command:

    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

    この例では、loginコマンドを実行して、K8 S_SERVICE_IPEXTERNAL-IPであるKubernetesクラスターログを生成できます。

    説明

    API操作の一覧については、『GitHub log4j-appender-demo』をご参照ください。

    curl http://${K8S_SERVICE_IP}:8080/login?name=bruce
  4. Log Serviceでのログの表示

    1. Log Serviceコンソールの [プロジェクト] セクションで、k8s-log4jプロジェクトを見つけてクリックし、プロジェクトの詳細ページに移動します。

    2. k8s-logstore Logstoreの右側にあるIconアイコンをクリックし、検索と分析を選択してKubernetesクラスターのログを表示します。