DaemonSetモードのKnative Serviceからコンテナテキストログを収集できます。 DaemonSetモードでは、各ノードはログエージェントを実行してO&M効率を向上させます。 Container Service for Kubernetes (ACK) クラスターは、Simple Log Serviceと互換性があり、非侵入型のログ収集をサポートしています。 Simple Log ServiceのログエージェントであるLogtailを各ノードにインストールできます。 これにより、Logtailは各ノードのすべてのコンテナからログを収集できます。 収集されたログに基づいてコンテナを分析および管理できます。
実装
DaemonSetモード
DaemonSetモードでは、Kubernetesクラスター内のノードで1つのLogtailコンテナのみが実行されます。 Logtailを使用して、ノード上のすべてのコンテナからログを収集できます。
ノードがKubernetesクラスターに追加されると、クラスターは新しいノードにLogtailコンテナーを自動的に作成します。 Kubernetesクラスターからノードが削除されると、クラスターはノード上のLogtailコンテナーを自動的に破棄します。 DaemonSetsとカスタム識別子ベースのマシングループにより、Logtailプロセスを手動で管理する必要がなくなります。
コンテナ検出
Logtailコンテナが他のコンテナからログを収集する前に、Logtailコンテナは実行中のコンテナを特定して判断する必要があります。 このプロセスはコンテナ検出と呼ばれます。 コンテナー検出フェーズでは、LogtailコンテナーはKubernetesクラスターのkube-apiserverコンポーネントと通信しません。 代わりに、Logtailコンテナは、Logtailコンテナが実行されているノードのコンテナランタイムデーモンと通信して、ノード上のすべてのコンテナに関する情報を取得します。 これにより、コンテナ検出プロセスでkube-apiserverコンポーネントに圧力が発生するのを防ぎます。
Logtailを使用してログを収集する場合、名前空間、ポッド名、ポッドラベル、コンテナー環境変数などの条件を指定して、Logtailがログを収集するコンテナーを特定できます。
コンテナーのファイルパスマッピング
Kubernetesクラスター内のポッドは分離されています。 その結果、ポッド内のLogtailコンテナは、別のポッド内のコンテナのファイルに直接アクセスできません。 コンテナのファイルシステムは、コンテナホストのファイルシステムをコンテナにマウントすることによって作成される。 Logtailコンテナは、コンテナホストのルートディレクトリを含むファイルシステムがLogtailコンテナにマウントされた後にのみ、コンテナホスト上の任意のファイルにアクセスできます。 これにより、Logtailコンテナはファイルシステム内のファイルからログを収集できます。 コンテナ内のファイルパスとコンテナホスト上のファイルパスの関係は、ファイルパスマッピングと呼ばれます。
たとえば、コンテナ内のファイルパスは /log/app.log
です。 ファイルパスマッピング後、コンテナーホスト上のファイルパスは /var/lib/docker/containers/<container-id>/log/app.log
になります。 既定では、コンテナーホストのルートディレクトリを含むファイルシステムは、logtailコンテナーの /Logtail_host
ディレクトリにマウントされます。 したがって、Logtailコンテナは /logtail_host/var/lib/docker/containers/<container-id>/log/app.log
からログを収集します。
前提条件
Knativeはクラスターにデプロイされています。 詳細については、「」「Knativeのデプロイ」をご参照ください。
Knativeサービスが作成されます。 詳細については、「Knativeアプリケーションの迅速なデプロイ」をご参照ください。
Simple Log Serviceが有効化されています。 詳細については、「Simple Log Serviceの有効化」をご参照ください。
ステップ1: Logtailのインストール
LogtailはSimple Log Serviceのログエージェントです。 Logtailは、アプリケーションコードに侵入することなく、ACKクラスター内のコンテナーからログを収集できます。 Logtailを使用してログを収集する場合、アプリケーションコードを変更する必要はありません。 さらに、Logtailはアプリケーションからログを収集するときにアプリケーションに影響を与えません。 ACKクラスターにLogtailをインストールすると、logtail-dsという名前のDaemonSetがクラスターにデプロイされます。
コンテナログを収集してSimple Log Serviceに送信するには、1つのロギングツールのみを使用することを推奨します。 2つのロギングツールを使用して同時にログを収集すると、重複したログが収集されることがあります。 これにより、追加料金が発生し、リソースの浪費を引き起こす可能性があります。
Logtailのインストール、LogtailのバージョンとIPアドレスの表示、Logtailの操作ログの表示方法の詳細については、「LogtailコンポーネントのACKクラスターへのインストール」をご参照ください。
クラスター作成時のLogtailのインストール
ACKコンソールにログインします。
ACKコンソールの左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページの右上角にある [Kubernetes クラスターの作成] をクリックします。
この例では、Simple Log Serviceを有効にする手順のみを説明します。 ACKクラスターの作成方法の詳細については、「ACK管理クラスターの作成」をご参照ください。
[コンポーネント設定] ウィザードページで、[Log Serviceの有効化] を選択してLogtailをクラスターにインストールします。
Log Serviceの有効化を選択すると、コンソールはSimple Log Serviceプロジェクトの作成を求めます。 Simple Log Serviceで管理されるログの構造の詳細については、「プロジェクト」をご参照ください。 次のいずれかの方法を使用して、Simple Log Serviceプロジェクトを作成できます。
[プロジェクトの選択] をクリックし、収集したログを管理する既存のプロジェクトを選択します。
[プロジェクトの作成] をクリックします。
k8s-log-{ClusterID}
という名前のプロジェクトが自動的に作成され、収集されたログが管理されます。 ClusterIDは、作成するクラスターの一意のIDを示します。
パラメーターを設定したら、右下隅の [クラスターの作成] をクリックします。 表示されたメッセージボックスで [OK] をクリックします。
Logtailがインストールされた状態でクラスターが作成された後、[クラスター] ページでクラスターを表示できます。
既存のクラスターへのLogtailのインストール
ACKコンソールにログインします。
ACKコンソールの左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターを見つけ、クラスターの名前をクリックするか、[操作] 列の [詳細] をクリックします。 クラスターの詳細ページが表示されます。
クラスターの詳細ページの左側のナビゲーションウィンドウで、[操作] > [アドオン] を選択します。 [ログとモニタリング] セクションで、logtail-dsを見つけます。
logtail-dsカードの右下隅にある [インストール] をクリックします。 [logtail-dsのインストール] ダイアログボックスで、[OK] をクリックします。
以前のバージョンのlogtail-dsが既にインストールされている場合は、logtail-dsカードの右下隅にある [アップグレード] をクリックしてコンポーネントを更新できます。
logtail-dsを更新すると、logtail-dsのパラメーターがリセットされます。 logtail-dsまたはalibaba-log-controllerの設定および環境変数は上書きされます。 設定と環境変数をカスタマイズした場合は、後で再構成する必要があります。 詳細については、「手動アップグレード」をご参照ください。
手順2: Logtailの設定
次のいずれかの方法を選択してLogtailを設定します。
方法1: Kubernetes CustomResourceDefinitions (CRD) を使用します。 CRDを使用すると、Logtail設定をバッチ設定し、Logtail設定のバージョン管理を有効にできます。 この方法は、Logtailのさまざまなログ収集設定を設定するのに適しています。 CRDを使用して作成されたLogtail設定は、Simple Log Serviceコンソールと同期されません。 CRDを使用して作成したLogtail設定を変更するには、関連するCRDを変更する必要があります。 Simple Log ServiceコンソールでLogtail設定を変更すると、Logtail設定に一貫性がなくなります。
方法2: Simple Log Serviceコンソールを使用してLogtailを設定します。 この方法は、いくつかのLogtail設定の作成と設定に適しています。 この方法では、クラスターにログインすることなく、いくつかの手順でLogtailを設定できます。 ただし、Logtail設定をバッチ作成することはできません。 方法1は方法2よりも優先される。
方法3: 環境変数を使用してLogtailを設定します。 このメソッドは、単一行のテキストログのみをサポートします。 複数行のテキストログまたは他の形式のログを収集する場合は、方法1または2を使用します。
Logtailを設定するときに、コンテナーフィルターオプションを設定し、ログ収集中に無視されるディレクトリまたはファイル (収集ブラックリスト) を指定し、ファイルを複数回収集できるようにします。
(推奨) CRD - AliyunPipelineConfig
Logtail設定の作成
LogtailコンポーネントV0.5.1以降のみがAliyunPipelineConfigをサポートしています。
Logtail設定を作成するには、AliyunPipelineConfig CRDからCRを作成するだけです。 Logtail設定が作成されると、自動的に適用されます。 CRに基づいて作成されたLogtail設定を変更する場合は、CRを変更する必要があります。
次のコマンドを実行して、YAMLファイルを作成します。
次のコマンドで、
cube.yaml
はサンプルファイル名です。 ビジネス要件に基づいて別のファイル名を指定できます。vim cube.yaml
YAMLファイルに次のスクリプトを入力し、ビジネス要件に基づいてパラメーターを設定します。
重要configName
パラメーターの値は、Logtailコンポーネントのインストールに使用するSimple Log Serviceプロジェクトで一意である必要があります。Logtail設定ごとにCRを設定する必要があります。 複数のCRが同じLogtail設定に関連付けられている場合、最初のCR以外のCRは有効になりません。
AliyunPipelineConfig
CRDに関連するパラメーターの詳細については、「 (推奨) AliyunPipelineConfigを使用してLogtail構成を管理する」をご参照ください。 この例では、Logtail設定にテキストログ収集の設定が含まれています。 詳細については、「CreateLogtailPipelineConfig」をご参照ください。config.flushers.Logstoreパラメーターで指定されたLogstoreが存在することを確認します。 spec.logstoreパラメーターを設定して、Logstoreを自動的に作成できます。
特定のコンテナから単一行のテキストログを収集する
この例では、
example-k8s-file
という名前のLogtail設定が作成され、クラスター内のapp
を含む名前のコンテナーから1行のテキストログが収集されます。 ファイルはtest.LOG
で、パスは/data/logs/app_1
です。収集されたログは、
k8s-log-test
という名前のプロジェクトに属するk8s-file
という名前のLogstoreに保存されます。apiVersion: telemetry.alibabacloud.com/v1alpha1 # Create a CR from the ClusterAliyunPipelineConfig CRD. kind: ClusterAliyunPipelineConfig metadata: # Specify the name of the resource. The name must be unique in the current Kubernetes cluster. The name is the same as the name of the Logtail configuration that is created. name: example-k8s-file spec: # Specify the project to which logs are collected. project: name: k8s-log-test # Create a Logstore to store logs. logstores: - name: k8s-file # Configure the parameters for the Logtail configuration. config: # Configure the Logtail input plug-ins. inputs: # Use the input_file plug-in to collect text logs from containers. - Type: input_file # Specify the file path in the containers. FilePaths: - /data/logs/app_1/**/test.LOG # Enable the container discovery feature. EnableContainerDiscovery: true # Add conditions to filter containers. Multiple conditions are evaluated by using a logical AND. ContainerFilters: # Specify the namespace of the pod to which the required containers belong. Regular expression matching is supported. K8sNamespaceRegex: default # Specify the name of the required containers. Regular expression matching is supported. K8sContainerRegex: ^(.*app.*)$ # Configure the Logtail output plug-ins. flushers: # Use the flusher_sls plug-in to send logs to a specific Logstore. - Type: flusher_sls # Make sure that the Logstore exists. Logstore: k8s-file # Make sure that the endpoint is valid. Endpoint: cn-hangzhou.log.aliyuncs.com Region: cn-hangzhou TelemetryType: logs
すべてのコンテナから複数行のテキストログを収集し、正規表現を使用してログを解析する
この例では、クラスター内のすべてのコンテナーから複数行のテキストログを収集するために、
example-k8sファイル
という名前のLogtail設定が作成されます。 ファイルはtest.LOG
で、パスは/data/logs/app_1
です。 収集されたログはJSONモードで解析され、k8s-log-test
という名前のプロジェクトに属するk8s-file
という名前のLogstoreに保存されます。次の例で提供されるサンプルログは、
{"content": "2024-06-19 16:35:00 INFOテストログ \nline-1\nline-2\nend"}
の形式でinput_fileプラグインによって読み取られます。 次に、ログは正規表現に基づいて{"time": "2024-06-19 16:35:00" 、"level": "INFO" 、"msg": "test log\nline-1\nline-2\nend"}
に解析されます。apiVersion: telemetry.alibabacloud.com/v1alpha1 # Create a CR from the ClusterAliyunPipelineConfig CRD. kind: ClusterAliyunPipelineConfig metadata: # Specify the name of the resource. The name must be unique in the current Kubernetes cluster. The name is the same as the name of the Logtail configuration that is created. name: example-k8s-file spec: # Specify the project to which logs are collected. project: name: k8s-log-test # Create a Logstore to store logs. logstores: - name: k8s-file # Configure the parameters for the Logtail configuration. config: # Specify the sample log. You can leave this parameter empty. sample: | 2024-06-19 16:35:00 INFO test log line-1 line-2 end # Configure the Logtail input plug-ins. inputs: # Use the input_file plug-in to collect multi-line text logs from containers. - Type: input_file # Specify the file path in the containers. FilePaths: - /data/logs/app_1/**/test.LOG # Enable the container discovery feature. EnableContainerDiscovery: true # Enable multi-line log collection. Multiline: # Specify the custom mode to match the beginning of the first line of a log based on a regular expression. Mode: custom # Specify the regular expression that is used to match the beginning of the first line of a log. StartPattern: \d+-\d+-\d+.* # Specify the Logtail processing plug-ins. processors: # Use the processor_parse_regex_native plug-in to parse logs based on the specified regular expression. - Type: processor_parse_regex_native # Specify the name of the input field. SourceKey: content # Specify the regular expression that is used for the parsing. Use capturing groups to extract fields. Regex: (\d+-\d+-\d+\s*\d+:\d+:\d+)\s*(\S+)\s*(.*) # Specify the fields that you want to extract. Keys: ["time", "level", "msg"] # Configure the Logtail output plug-ins. flushers: # Use the flusher_sls plug-in to send logs to a specific Logstore. - Type: flusher_sls # Make sure that the Logstore exists. Logstore: k8s-file # Make sure that the endpoint is valid. Endpoint: cn-hangzhou.log.aliyuncs.com Region: cn-hangzhou TelemetryType: logs
次のコマンドを実行してLogtail設定を適用します。 Logtail設定が適用されると、Logtailは指定されたコンテナからテキストログの収集を開始し、そのログをSimple Log Serviceに送信します。
次のコマンドで、
cube.yaml
はサンプルファイル名です。 ビジネス要件に基づいて別のファイル名を指定できます。kubectl apply -f cube.yaml
重要ログを収集したら、インデックスを作成する必要があります。 次に、Logstore内のログを照会および分析できます。 詳細については、「インデックスの作成」をご参照ください。
CRD - AliyunLogConfig
Logtail設定を作成するには、AliyunLogConfig CRDからCRを作成するだけです。 Logtail設定が作成されると、自動的に適用されます。 CRに基づいて作成されたLogtail設定を変更する場合は、CRを変更する必要があります。
次のコマンドを実行して、YAMLファイルを作成します。
次のコマンドで、
cube.yaml
はサンプルファイル名です。 ビジネス要件に基づいて別のファイル名を指定できます。vim cube.yaml
YAMLファイルに次のスクリプトを入力し、ビジネス要件に基づいてパラメーターを設定します。
重要configName
パラメーターの値は、Logtailコンポーネントのインストールに使用するSimple Log Serviceプロジェクトで一意である必要があります。複数のCRが同じLogtail設定に関連付けられている場合、いずれかのCRを削除または変更すると、Logtail設定が影響を受けます。 CRが削除または変更されると、関連する他のCRのステータスがSimple Log ServiceのLogtail設定のステータスと一致しなくなります。
CRパラメーターの詳細については、「AliyunLogConfigを使用したLogtail設定の管理」をご参照ください。 この例では、Logtail設定にテキストログ収集の設定が含まれています。 詳細については、「CreateConfig」をご参照ください。
特定のコンテナから単一行のテキストログを収集する
この例では、
example-k8s-file
という名前のLogtail構成が作成され、クラスター内の名前がapp
で始まるすべてのポッドのコンテナーから単一行のテキストログが収集されます。 ファイルはtest.LOG
で、パスは/data/logs/app_1
です。 収集されたログは、k8s-log-test
という名前のプロジェクトに属するk8s-file
という名前のLogstoreに保存されます。apiVersion: log.alibabacloud.com/v1alpha1 kind: AliyunLogConfig metadata: # Specify the name of the resource. The name must be unique in the current Kubernetes cluster. name: example-k8s-file namespace: kube-system spec: # Specify the name of the project. If you leave this parameter empty, the project named k8s-log-<your_cluster_id> is used. project: k8s-log-test # Specify the name of the Logstore. If the specified Logstore does not exist, Simple Log Service automatically creates a Logstore. logstore: k8s-file # Configure the parameters for the Logtail configuration. logtailConfig: # Specify the type of the data source. If you want to collect text logs, set the value to file. inputType: file # Specify the name of the Logtail configuration. configName: example-k8s-file inputDetail: # Specify the simple mode to collect text logs. logType: common_reg_log # Specify the log file path. logPath: /data/logs/app_1 # Specify the log file name. You can use wildcard characters (* and ?) when you specify the log file name. Example: log_*.log. filePattern: test.LOG # Set the value to true if you want to collect text logs from containers. dockerFile: true # Specify conditions to filter containers. advanced: k8s: K8sPodRegex: '^(app.*)$'
次のコマンドを実行してLogtail設定を適用します。 Logtail設定が適用されると、Logtailは指定されたコンテナからテキストログの収集を開始し、そのログをSimple Log Serviceに送信します。
次のコマンドで、
cube.yaml
はサンプルファイル名です。 ビジネス要件に基づいて別のファイル名を指定できます。kubectl apply -f cube.yaml
重要ログを収集したら、インデックスを作成する必要があります。 次に、Logstore内のログを照会および分析できます。 詳細については、「インデックスの作成」をご参照ください。
コンソール
Simple Log Serviceコンソールにログインします。
[クイックデータのインポート] セクションで、[データのインポート] をクリックします。 [データのインポート] ダイアログボックスで、[Kubernetes-ファイル] カードをクリックします。
必要なプロジェクトとLogstoreを選択します。 [次へ] をクリックします。 この例では、Logtailコンポーネントのインストールに使用するプロジェクトと、作成するLogstoreを選択します。
[マシングループの設定] ステップで、次の操作を実行します。
ビジネス要件に基づいて、次のいずれかの設定を使用します。
- 重要
以降の設定は、前述の設定によって異なります。
必要なマシングループが [応用サーバーグループ] セクションに追加されていることを確認します。 そして、[次へ] をクリックします。 Container Service for Kubernetes (ACK) クラスターにLogtailコンポーネントをインストールすると、Simple Log Serviceは
k8s-group-${your_k8s_cluster_id}
という名前のマシングループを自動的に作成します。 このマシングループを直接使用できます。重要マシングループを作成する場合は、[マシングループの作成] をクリックします。 表示されるパネルで、パラメーターを設定してマシングループを作成します。 詳細については、「ACKコンソールの使用」をご参照ください。
マシングループのハートビートステータスがFAILの場合、[自動再試行] をクリックします。 問題が解決しない場合は、ホスト環境のLogtailマシングループに関連するエラーのトラブルシューティングを行うにはどうすればよいですか?
Logtail設定を作成し、[次へ] をクリックします。 Simple Log Serviceは、Logtail設定の作成後にログの収集を開始します。
説明Logtail設定を有効にするには、最大3分かかります。
インデックスの作成とプレビュー 次に、[次へ] をクリックします。 デフォルトでは、Simple Log Serviceでフルテキストインデックスが有効になっています。 手動モードまたは自動モードで収集したログに基づいてフィールドインデックスを設定することもできます。 自動モードでフィールドインデックスを設定するには、[自動インデックス生成] をクリックします。 これにより、Simple Log Serviceは自動的にフィールドインデックスを作成します。 詳細については、「インデックスの作成」をご参照ください。
重要ログのすべてのフィールドをクエリする場合は、フルテキストインデックスを使用することを推奨します。 特定のフィールドのみをクエリする場合は、フィールドインデックスを使用することを推奨します。 これは、インデックストラフィックを減らすのに役立ちます。 フィールドを分析する場合は、フィールドインデックスを作成する必要があります。 分析のために、クエリ文にSELECT文を含める必要があります。
[クエリログ] をクリックします。 次に、Logstoreのクエリと分析ページにリダイレクトされます。
インデックスが有効になるまで約1分待つ必要があります。 次に、収集したログを [生ログ] タブで表示できます。 詳細については、「ログの照会と分析」をご参照ください。
環境変数
1. Knativeサービスの作成時にSimple Log Serviceを有効にする
Knativeサービスを作成するときに、次のYAMLテンプレートに基づいてログ収集を有効にできます。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
[サービス] タブをクリックして名前空間を選択し、[テンプレートから作成] をクリックします。 表示されるページで、[サンプルテンプレート] セクションの [カスタム] を選択します。 次のYAMLファイルを使用し、ページの指示に従ってサービスを作成します。
YAMLテンプレートは、Kubernetes構文に準拠しています。
env
を使用して、ログ収集設定とカスタムタグを定義できます。volumeMounts
およびvolumes
パラメーターも設定する必要があります。 次の例は、ポッドでLog Serviceを設定する方法を示しています。apiVersion: serving.knative.dev/v1 kind: Service metadata: name: helloworld-go-log spec: template: spec: containers: - name: my-demo-app image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest' env: # Specify environment variables. - name: aliyun_logs_log-stdout value: stdout - name: aliyun_logs_log-varlog value: /var/demo/*.log - name: aliyun_logs_mytag1_tags value: tag1=v1 # Configure volume mounting. volumeMounts: - name: volumn-sls-mydemo mountPath: /var/demo # If the pod is repetitively restarted, you can add a sleep command to the startup parameters of the pod. command: ["sh", "-c"] # Run commands in the shell. args: ["sleep 3600"] # Set the sleep time to 1 hour (3600 seconds). volumes: - name: volumn-sls-mydemo emptyDir: {}
ビジネス要件に基づいて、次の手順を順番に実行します。
説明他のログ収集要件がある場合は、「 (オプション) 2」をご参照ください。 環境変数を使用して詳細設定を構成します。
環境変数を使用して、ログ収集設定とカスタムタグを追加します。 ログ収集に関連するすべての環境変数は、プレフィックスとして
aliyun_logs_
を使用する必要があります。環境変数を次の形式で追加します。
- name: aliyun_logs_log-stdout value: stdout - name: aliyun_logs_log-varlog value: /var/demo/*.log
上記の例では、次の形式の2つの環境変数がログ収集設定に追加されています。
aliyun_logs_{key}
。 環境変数の{keys}
は、log-stdout
とlog-varlog
です。aliyun_logs_log-stdout
環境変数は、log-stdout
という名前のLogstore
が作成され、コンテナーから収集されたstdout
を格納することを示します。 収集設定の名前はlog-stdout
です。 これにより、コンテナーのstdoutがlog-stdout
という名前のLogstore
に収集されます。aliyun_logs_log-varlog
環境変数は、コンテナーから収集された /var/demo/*.logファイルを格納するために、log-varlog
という名前のLogstore
が作成されることを示します。 収集設定の名前はlog-varlog
です。 これにより、/var/demo/*.logファイルがlog-varlog
という名前のLogstore
に収集されます。
次の形式でカスタムタグを追加します。
- name: aliyun_logs_mytag1_tags value: tag1=v1
タグが追加されると、タグはコンテナから収集されたログデータに自動的に追加されます。
mytag1
は、アンダースコアなしのタグ名 (_)
を指定します。
stdout以外のログファイルを収集するログパスを指定する場合は、
volumeMounts
パラメーターを設定する必要があります。上記のYAMLテンプレートでは、
volumeMounts
のmountPathフィールドは /var/demoに設定されています。 これにより、Logtailは /var/demo *.logファイルからログデータを収集できます。
YAMLテンプレートを変更した後、[作成] をクリックして設定を送信します。
( オプション ) 2. 環境変数を使用して詳細設定を構成する
コンテナー環境変数を設定して、ログ収集をカスタマイズできます。 環境変数を使用して、ログ収集要件を満たすように詳細設定を構成できます。
エッジコンピューティングシナリオでは、環境変数を使用してログ収集を構成することはできません。
変数 | 説明 | 例 | 補足 |
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のLogstoreを指定します。 デフォルトでは、Logstoreの名前は {key} です。 |
| 非該当 |
aliyun_logs_{key}_shard | この変数はオプションです。 この変数は、Logstoreのシャードの数を指定します。 有効な値: 1 ~ 10。 デフォルト値:2 説明 指定したLogstoreが既に存在する場合、この変数は有効になりません。 |
| 非該当 |
aliyun_logs_{key}_ttl | この変数はオプションです。 変数は、ログの保持期間を指定します。 有効な値: 1 ~ 3650
説明 指定したLogstoreが既に存在する場合、この変数は有効になりません。 |
| 非該当 |
aliyun_logs_{key}_machinegroup | この変数はオプションです。 この変数は、アプリケーションがデプロイされるノードグループを指定します。 デフォルトのノードグループは、Logtailがデプロイされているノードグループです。 変数の使用方法の詳細については、「シナリオ2: 異なるアプリケーションからログデータを収集し、異なるプロジェクトにログデータを保存する」をご参照ください。 |
| 非該当 |
aliyun_logs_{key}_logstoremode | この変数はオプションです。 この変数は、Logstoreのタイプを指定します。 デフォルト値: standard。 有効な値: 説明 指定したLogstoreが既に存在する場合、この変数は有効になりません。
|
| この変数を使用するには、logtail-dsイメージのバージョンが1.3.1以降であることを確認します。 |
ステップ3: ログの照会と分析
Logtailによって収集されたコンテナログは、Simple Log ServiceのLogstoreに保存されます。 ログは、Simple Log ServiceコンソールまたはACKコンソールで表示できます。 クエリ構文の詳細については、「ログ検索の概要」をご参照ください。
ACKコンソール
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、 を選択します。
[ログセンター] ページで、[アプリケーションログ] タブをクリックし、フィルター条件を指定します。 次に、[Logstoreの選択] をクリックして、コンテナーのログを表示します。
Simple Log Serviceコンソール
Simple Log Service コンソールにログインします。
[プロジェクト] セクションで、Kubernetesクラスターに関連付けられているプロジェクトをクリックし、[ログストア] タブに移動します。 デフォルトでは、プロジェクト名はk8s-log-{KubernetesクラスターID} の形式です。
Logstoreリストで、ログ収集の設定時に指定されたLogstoreを見つけます。 Logstore名の上にポインタを移動し、アイコンをクリックします。 次に、[検索と分析] をクリックします。
この例では、Tomcatアプリケーションのstdoutとコンテナーのテキストログファイルを表示できます。 また、収集したログデータにカスタムタグが追加されていることも確認できます。
コンテナテキストログのデフォルトフィールド
次の表に、各コンテナテキストログにデフォルトで含まれるフィールドを示します。
フィールド名 | 説明 |
__タグ __:__ ホスト名__ | コンテナーホストの名前。 |
__tag __:__ path__ | コンテナー内のログファイルのパス。 |
__tag __:_ container_ip_ | コンテナーのIPアドレス。 |
__タグ __:_ image_name_ | コンテナーで使用されるイメージの名前。 |
__tag __:_ pod_name_ | ポッドの名前。 |
__tag __:_ 名前空間_ | ポッドが属する名前空間。 |
__tag __:_ pod_uid_ | ポッドの一意識別子 (UID) 。 |
関連ドキュメント
ログ保存期間の変更やログ収集の無効化など、Logstoreに関する質問がある場合は、「Logstoreに関するよくある質問」をご参照ください。
ログ収集エラーのトラブルシューティング方法の詳細については、Logtailを使用してログを収集するときにエラーが発生した場合はどうすればよいですか?
Knativeモニタリングダッシュボードを表示できます。 詳細については、「Knativeモニタリングダッシュボードの表示」をご参照ください。
Simple Log Serviceでは、モニタリングアラートを設定できます。 詳細については、「サービスのアラートイベントの表示」をご参照ください。