Simple Log Service (SLS) は、開発不要でログの収集、消費、転送、分析を可能にするワンストップのログデータサービスです。Container Service for Kubernetes (ACK) Serverless クラスターは、マネージド型の SLS 機能を提供します。 ACK Serverless クラスター内の Pod 環境変数を使用して、コンテナの標準出力 (stdout) とログファイルを SLS に収集します。
-
ログ収集には、まず SLS の CRD による方法を推奨します。詳細については、「CRD を使用したアプリケーションログの収集」をご参照ください。
-
CRD による方法と環境変数による方法を併用しないでください。ログ収集が失敗する可能性があります。
ステップ1:アプリケーションの作成とログ収集の設定
イメージまたは YAML テンプレートからアプリケーションを作成し、ログ収集を設定します。詳細については、「Simple Log Service とは」をご参照ください。
イメージから作成
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、 を選択します。
-
デプロイメント ページで、名前空間 から Namespace を選択し、イメージによる作成 をクリックします。
-
基本情報 タブで、名前、Replicas:、タイプ を設定し、次 をクリックします。
-
コンテナー タブで、ログサービス セクションを設定します。
説明ここではログ収集に関するパラメーターのみを説明します。その他のパラメーターについては、「ステートレス Deployment の作成」をご参照ください。
設定を行う前に、ロギングプラグイン がクラスターにインストールされていることを確認してください。
パラメーター
説明
収集設定
収集設定が変更された場合、ログの重複収集を避けるために、以前の設定を手動で削除してください。
採集配置 をクリックし、ログストア と 容器内のログパス を設定します。
-
Logstore 名。英小文字、数字、ハイフン (-) のみ使用できます。
指定した Logstore が存在しない場合、ACK Serverless はクラスターに関連付けられた SLS プロジェクト内に Logstore を作成します。
-
コンテナ内のログパス:収集対象のパス。例:Tomcat のテキストログの場合、/usr/local/tomcat/logs/catalina.*.log です。
説明パスを stdout に設定すると、コンテナの stdout と stderr の両方が収集されます。
各収集設定は、対応する Logstore の Logtail 設定を作成します。デフォルトでは、ログはシンプルモード (行ごと) で収集されます。高度な収集方法については、SLS コンソールにログインし、対応するプロジェクト (デフォルトでは k8s-log というプレフィックスが付きます) と Logstore の設定を変更します。
カスタムタグ
カスタマイズTag をクリックし、Tag名 と Tag値 を設定します。
収集されたログエントリに付加されるキーと値のペアです。カスタムタグを使用して、バージョン番号など、コンテナのログデータにラベルを付けます。
-
-
次 をクリックします。以降の手順については、「ステートレス Deployment の作成」をご参照ください。
-
YAML ファイルから作成
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、 を選択します。
-
デプロイメント ページで、名前空間 から Namespace を選択し、YAML のリソースの作成 をクリックします。
-
作成 ページで、サンプルテンプレートを選択し、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 ######### Volume Mounts の設定 ########### volumeMounts: - name: volumn-sls-mydemo mountPath: /var/log volumes: - name: volumn-sls-mydemo emptyDir: {}必要に応じて、これらの設定を Pod の YAML に追加します。
説明高度な要件については、「ステップ2:高度な環境変数パラメーター」をご参照ください。
-
環境変数を使用して収集設定とカスタムタグを作成します。すべて
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: このenv変数は、log-stdout収集設定を定義し、log-stdoutLogstore を作成して、コンテナのstdoutをlog-stdoutLogstore に収集します。 -
aliyun_logs_log-varlog: このenv変数は、パス/var/log/*.log用の Logstore (log-varlog) と収集設定 (log-varlog) を作成します。/var/log/*.logのファイルは、log-varlogLogstore に送信されます。
-
-
カスタムタグを作成するには:
- name: aliyun_logs_mytag1_tags value: tag1=v1タグは、このコンテナから収集されたログに追加されます。タグキー (この例では
mytag1) は、小文字、数字、ハイフン (-) のみを含めることができます。
-
-
収集パスが
stdoutでない場合は、対応するvolumeMountsを作成します。 この例では、/var/log/*.logを収集するには、/var/log用のvolumeMountsが必要です。
-
ステップ2:高度な環境変数パラメーター
環境変数ベースの Logtail 構成は、さまざまなパラメータをサポートしています。環境変数を使用して詳細設定を構成し、ログ収集要件を満たすことができます。
環境変数を使用して、エッジコンピューティングシナリオでログ収集を構成することはできません。
変数 | 説明 | 例 | 使用上の注意 |
aliyun_logs_{key} |
|
|
|
aliyun_logs_{key}_tags | オプション。この変数は、ログにタグを追加するために使用されます。値は {tag-key}={tag-value} 形式である必要があります。 | | 該当なし。 |
aliyun_logs_{key}_project | オプション。この変数は、Simple Log Service プロジェクトを指定します。デフォルトのプロジェクトは、Logtail のインストール後に生成されるプロジェクトです。 | | プロジェクトは、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 がデプロイされているマシングループです。この変数の使用方法の詳細については、「ACK クラスタからコンテナログを収集する」をご参照ください。 | | 該当なし。 |
aliyun_logs_{key}_logstoremode | オプション。この変数は、ログストアのタイプを指定します。デフォルト値: standard。有効な値: standard および query。 説明 指定したログストアが既に存在する場合、この変数は有効になりません。
|
| この変数を使用するには、logtail-ds コンポーネントのイメージバージョンが 1.3.1 以降であることを確認してください。 |
カスタム要件 1:複数のアプリケーションから同じログストアにデータを収集する
このシナリオでは、 aliyun_logs_{key}_logstore パラメータを構成します。次の例は、2 つのアプリケーションから stdout-logstore ログストアに stdout を収集する方法を示しています。
アプリケーション 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:複数のアプリケーションから異なるプロジェクトにデータを収集する
このシナリオでは、次の手順を実行します。
各プロジェクトにマシングループを作成し、マシングループのカスタム識別子を
k8s-group-{cluster-id}形式で設定します。ここで、{cluster-id}はクラスタの ID です。カスタムマシングループ名を指定できます。各アプリケーションの環境変数で、プロジェクト、ログストア、およびマシングループを指定します。マシングループの名前は、前の手順で作成した名前と同じです。
次の例では、アプリケーション 1 の
{key}はapp1-stdoutに設定され、アプリケーション 2 の{key}はapp2-stdoutに設定されます。2 つのアプリケーションが同じ Kubernetes クラスタにデプロイされている場合は、アプリケーションに同じマシングループを使用できます。アプリケーション 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 に次の環境変数を構成します。
# 環境変数を構成します。 - 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コンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、 を選択します。
-
ログセンター ページで、アプリケーションログ タブをクリックし、Logstore を選択してコンテナログを表示します。