Simple Log Service は、Alibaba Cloud のワンストップログサービスです。コンソールでログを直接収集、消費、配信、クエリ、および分析できます。Simple Log Service は ACK Serverless クラスター でホストされています。ACK Serverless クラスター で Simple Log Service 環境変数を構成して、Simple Log Service がクラスター内のアプリケーション Pod から stdout およびログファイルを収集できるようにすることができます。
Simple Log Service CustomResourceDefinitions(CRD)を使用してログを収集することをお勧めします。詳細については、「Simple Log Service CRD を使用してアプリケーションログを収集する」をご参照ください。
Simple Log Service CRD と環境変数を同時に使用しないでください。ログ収集が失敗する可能性があります。
ステップ 1:アプリケーションを作成し、Simple Log Service を構成してアプリケーションログを収集する
Simple Log Service に基づくログ収集構成を含むイメージまたは YAML テンプレートを使用して、アプリケーションを作成できます。Simple Log Service の詳細については、「Simple Log Service とは」をご参照ください。
イメージ
ACK コンソール にログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターを見つけ、その名前をクリックします。左側のウィンドウで、 を選択します。
[デプロイメント] ページの上部にある [名前空間] ドロップダウンリストから、アプリケーションを作成する名前空間を選択します。次に、ページの右上隅にある [イメージから作成] をクリックします。
[基本情報] ステップで、[名前]、[レプリカ]、および [タイプ] パラメーターを設定します。次に、[次へ] をクリックします。
[コンテナー] ステップで、[log Service] セクションのパラメーターを設定します。
説明次の表では、Simple Log Service に関連するパラメーターのみを説明します。その他のパラメーターの詳細については、「デプロイメントを作成する」をご参照ください。
次の図は例です。

パラメーター
説明
収集構成
[収集構成] をクリックします。[ログストア] と [コンテナー内のログパス(stdout に設定可能)] を設定します。
ログストア:使用するログストアの名前。名前には、小文字、数字、およびハイフン(-)のみを含めることができます。
このパラメーターを使用して、収集されたログを格納するログストアを指定できます。指定されたログストアが存在しない場合、システムはクラスターに関連付けられている Simple Log Service プロジェクトにログストアを自動的に作成します。
コンテナー内のログパス(stdout に設定可能):ログを収集するパス。/usr/local/tomcat/logs/catalina.*.log の値は、Tomcat アプリケーションのログファイルが収集されることを示します。
説明値を stdout に設定すると、stdout と stderr が収集されます。
すべての設定は、対応するログストアに構成エントリとして追加されます。デフォルトでは、ログはシンプルモード(行ごと)で収集されます。他の方法でログを収集する場合は、Simple Log Service コンソール にログイン し、プロジェクトとログストアのログ収集構成を変更します。デフォルトでは、プロジェクトは k8s-log プレフィックスを使用します。
カスタムタグ
[カスタムタグ] をクリックします。[タグキー] と [タグ値] を設定します。
各タグは、収集されたログデータに追加されるキーと値のペアです。カスタムタグを使用して、ログデータにマークを付けることができます。たとえば、タグを使用してアプリケーションバージョンを示すことができます。
パラメーターを構成した後、[次へ] をクリックして詳細設定を構成します。後続のステップの詳細については、「デプロイメントを作成する」をご参照ください。
YAML テンプレート
ACK コンソール にログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターを見つけ、その名前をクリックします。左側のウィンドウで、 を選択します。
[デプロイメント] ページの上部にある [名前空間] ドロップダウンリストから、アプリケーションを作成する名前空間を選択します。次に、ページの右上隅にある [YAML から作成] をクリックします。
[作成] ページで、[サンプルテンプレート] ドロップダウンリストからテンプレートを選択し、[テンプレート] コードエディターで要件に基づいてテンプレートの内容を変更します。次に、[作成] をクリックします。
YAML テンプレートは Kubernetes 構文に準拠しています。
envを使用して、ログ収集構成とカスタムタグを定義できます。volumeMountsパラメーターとvolumesパラメーターも設定する必要があります。Pod の YAML テンプレートの例:apiVersion: v1 kind: Pod metadata: name: my-demo spec: containers: - name: my-demo-app image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest' args: - -c - mkdir -p /log;while true; do echo hello world; date; echo hello sls >> /var/log/test.log; sleep 1;done command: - /bin/sh env: ######### 環境変数を指定します。########### - name: aliyun_logs_log-stdout value: stdout - name: aliyun_logs_log-varlog value: /var/log/*.log - name: aliyun_logs_mytag1_tags value: tag1=v1 ######### ボリュームマウントパラメーターを指定します。########### volumeMounts: - name: volumn-sls-mydemo mountPath: /var/log volumes: - name: volumn-sls-mydemo emptyDir: {}要件に基づいて次の構成を追加できます。
説明ログ収集に関するその他の要件がある場合は、「ステップ 2:env フィールドの詳細設定を構成する」をご参照ください。
環境変数を使用して、ログ収集構成とカスタムタグを追加します。ログ収集に関連するすべての環境変数は、プレフィックスとして
aliyun_logs_を使用する必要があります。次の形式でログ収集構成を追加します。
- name: aliyun_logs_log-stdout value: stdout - name: aliyun_logs_log-varlog value: /var/log/*.log前の例では、
aliyun_logs_{key}という形式の 2 つの環境変数がログ収集構成に追加されています。環境変数の{key}は、log-stdoutとlog-varlogです。aliyun_logs_log-stdout環境変数は、コンテナーから収集されたstdoutを格納するために、log-stdoutという名前のログストアが作成されることを示します。収集構成の名前はlog-stdoutです。このようにして、コンテナーの stdout はlog-stdoutという名前のログストアに収集されます。aliyun_logs_log-varlog環境変数は、/var/log/*.logパスから収集されたログファイルを格納するために、log-varlogという名前のログストアが作成されることを示します。収集構成の名前はlog-varlogです。このようにして、/var/log/*.logパスのログファイルはlog-varlogという名前のログストアに収集されます。
次の形式でカスタムタグを追加します。
- name: aliyun_logs_mytag1_tags value: tag1=v1タグが追加されると、タグはコンテナーから収集されたログデータに自動的に追加されます。
mytag1の値には、小文字、数字、およびハイフン(-)のみを含めることができます。
stdout以外のログファイルを収集するためにログパスを指定する場合は、volumeMountsパラメーターを設定する必要があります。前の YAML テンプレートでは、volumeMounts の mountPath フィールドは/var/logに設定されています。これにより、Logtail は/var/log/*.logファイルからログデータを収集できます。
ステップ 2:env フィールドの詳細設定を構成する
コンテナー環境変数では、ログ収集を調整するための幅広い構成パラメーターを使用できます。高度なパラメーターをカスタマイズして、特定のログ収集ニーズに合わせて調整できます。
コンテナー環境変数を介したログ収集の構成は、エッジコンピューティングシナリオには適用されないことに注意してください。
フィールド | 説明 | 例 | 注記 |
aliyun_logs_{key} |
|
|
|
aliyun_logs_{key}_tags | オプション。値は {tag-key}={tag-value} 形式である必要があり、ログデータにタグを追加するために使用されます。 | | 該当なし。 |
aliyun_logs_{key}_project | オプション。値は Simple Log Service のプロジェクトを指定します。この環境変数が構成されていない場合は、クラスターの作成時に指定したプロジェクトが使用されます。 | | プロジェクトは Logtail と同じリージョンにデプロイする必要があります。 |
aliyun_logs_{key}_logstore | オプション。値は Simple Log Service のログストアを指定します。この環境変数が構成されていない場合、ログストアの名前は {key} になります。 | | 該当なし。 |
aliyun_logs_{key}_shard | オプション。値はログストアのシャード数を指定します。有効値:1 ~ 10。この環境変数が構成されていない場合、デフォルト値は 2 です。 説明 指定したログストアが既に存在する場合、この変数は有効になりません。 | | 該当なし。 |
aliyun_logs_{key}_ttl | オプション。値はログの保存期間を指定します。有効値:1 ~ 3650。
説明 指定したログストアが既に存在する場合、この変数は有効になりません。 | | 該当なし。 |
aliyun_logs_{key}_machinegroup | オプション。値は、アプリケーションがデプロイされているノードグループを指定します。この環境変数が構成されていない場合、デフォルトのノードグループは Logtail がデプロイされているノードグループになります。このパラメーターの使用方法の詳細については、「Alibaba Cloud ACK クラスターテキストログを収集する(DaemonSet モードで Logtail をデプロイする)」をご参照ください。 | | 該当なし。 |
aliyun_logs_{key}_logstoremode | オプション。値は、Simple Log Service のログストアのタイプを指定します。このパラメーターが指定されていない場合、デフォルト値は standard です。有効値: 説明 指定したログストアが既に存在する場合、この変数は有効になりません。
|
| このパラメーターでは、logtail-ds イメージバージョンが 1.3.1 以降である必要があります。 |
カスタマイズ要件 1:複数のアプリケーションからのデータを同じログストアに収集する
複数のアプリケーションからのデータを同じログストアに収集するには、aliyun_logs_{key}_logstore パラメーターを設定します。たとえば、以下の構成では、2 つのアプリケーションの stdout を stdout-logstore に収集します。
この例では、アプリケーション 1 の
{key}はapp1-stdoutで、アプリケーション 2 の{key}はapp2-stdoutです。アプリケーション 1 の環境変数は次のように設定されます。
# 環境変数を構成します。 - name: aliyun_logs_app1-stdout value: stdout - name: aliyun_logs_app1-stdout_logstore value: stdout-logstoreアプリケーション 2 の環境変数は次のように設定されます。
# 環境変数を構成します。 - name: aliyun_logs_app2-stdout value: stdout - name: aliyun_logs_app2-stdout_logstore value: stdout-logstoreカスタマイズ要件 2:異なるアプリケーションからのデータを異なるプロジェクトに収集する
異なるアプリケーションからのデータを複数のプロジェクトに収集するには、次の手順に従います。
カスタム ID を
k8s-group-{cluster-id}に設定して、各プロジェクトにマシングループを作成します。ここで、{cluster-id}はクラスター ID です。マシングループ名をカスタマイズすることもできます。各アプリケーションの環境変数で、プロジェクト、ログストア、およびマシングループの情報を構成します。前の手順で作成したマシングループ名を使用します。
以下の例では、アプリケーション 1 の
{key}はapp1-stdoutで、アプリケーション 2 の{key}はapp2-stdoutです。両方のアプリケーションが同じ ACK クラスター内にデプロイされている場合は、それらに単一のマシングループを使用できます。アプリケーション 1 の環境変数は次のように設定されます。
# 環境変数を構成します。 - name: aliyun_logs_app1-stdout value: stdout - name: aliyun_logs_app1-stdout_project value: app1-project - name: aliyun_logs_app1-stdout_logstore value: app1-logstore - name: aliyun_logs_app1-stdout_machinegroup value: app1-machine-groupアプリケーション 2 の環境変数は次のように設定されます。
# アプリケーション 2 の環境変数を構成します。 - name: aliyun_logs_app2-stdout value: stdout - name: aliyun_logs_app2-stdout_project value: app2-project - name: aliyun_logs_app2-stdout_logstore value: app2-logstore - name: aliyun_logs_app2-stdout_machinegroup value: app1-machine-group
ステップ 3:ログを表示する
ACK コンソール にログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターを見つけ、その名前をクリックします。左側のウィンドウで、 を選択します。
[ログセンター] ページで、[アプリケーションログ] タブをクリックし、ログストアを選択してコンテナーのログを表示します。