このトピックでは、Log ServiceコンソールでSidecarモードでコンテナテキストログを収集する方法について説明します。 コンテナテキストログを収集するには、Sidecarをインストールし、マシングループを作成してからLogtail設定を作成する必要があります。
始める前に
- Logtailコンポーネントがインストールされています。 詳細については、「KubernetesクラスターへのLogtailコンポーネントのインストール」をご参照ください。
- Logtailコンポーネントのインストールに使用するプロジェクトにLogstoreが作成されます。 詳細については、「Logstore の作成」をご参照ください。
- ログを収集するコンテナーは、継続的にログを生成します。 重要 Logtailは増分ログのみを収集します。 適用されたLogtail設定がサーバーに配信された後にサーバー上のログファイルが更新されない場合、Logtailはファイルからログを収集しません。 詳細については、「ログファイルの読み取り」をご参照ください。
このタスクについて
Sidecarモードでは、Logtailコンテナはアプリケーションコンテナとログディレクトリを共有します。 アプリケーションコンテナは、ログを共有ディレクトリに書き込みます。 Logtailは、共有ディレクトリ内のログファイルへの変更を監視し、ログを収集します。 詳細については、「ロギングエージェントを使用したSidecarコンテナー」および「ポッドによる複数のコンテナーの管理方法」をご参照ください。
ステップ1: Sidecarのインストール
- Kubernetesクラスターにログインします。
- YAMLファイルを作成します。
このコマンドでは、ファイル名はsidecar.yamlです。 ファイル名を実際のファイル名に置き換えます。
vim sidecar.yaml
- YAMLファイルに次のスクリプトを入力し、ビジネスシナリオに基づいてパラメーターを設定します。 重要 envパラメーターのTZフィールドに指定したタイムゾーンが有効であることを確認します。 Log Serviceプロジェクトの生ログと処理済みログのタイムゾーンに矛盾がある場合、収集されたログに記録される時刻は、過去または未来の時点である可能性があります。 たとえば、Log Serviceプロジェクトが中国にある場合、タイムゾーンをAsia/Shanghaiに設定できます。
apiVersion: batch/v1 種類: 仕事 メタデータ: name: nginx-log-sidecar-demo namespace: デフォルト spec: template: metadata: name: nginx-log-sidecar-demo 仕様: restartPolicy: Never コンテナ: - name: nginx-log-demo image: registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest command: ["/bin/mock_log"] args: ["--log-type=nginx", "--stdout=false", "--stderr=true", "--path=/var/log/nginx/access.log", "--total-count=1000000000", "--logs-per-sec=100"] volumeMounts: - name: nginx-log mountPath: /var/log/nginx ##### logtail sidecar container - name: logtail # more info: https://cr.console.aliyun.com/repository/cn-hangzhou/log-service/logtail/detail # this images is released for every region image: registry.cn-hangzhou.aliyuncs.com/log-service/logtail:latest # recevie sigterm、logtailが10秒遅れてから停止する場合 command: - sh - -c - /usr/local/ilogtail/run_logtail.sh 10 livenessProbe: exec: command: - /etc/init.d/ilogtaild - status initialDelaySeconds: 30 periodSeconds: 30 resources: limits: memory: 512Mi requests: cpu: 10m memory: 30Mi env: ##### base config # user id value: "${your_aliyun_user_id}" value: "${your_aliyun_user_id}" # user defined id - name: "ALIYUN_LOGTAIL_USER_DEFINED_ID" value: "${your_machine_group_user_defined_id}" # config file path in logtail's container - name: "ALIYUN_LOGTAIL_CONFIG" value: "/etc/ilogtail/conf/${your_region_config}/ilogtail_config.json" ##### env tags config - name: "ALIYUN_LOG_ENV_TAGS" value: "_pod_name_|_pod_ip_|_namespace_|_node_name_|_node_ip_" - name: "_pod_name_" valueFrom: fieldRef: fieldPath: metadata.name - name: "_pod_ip_" valueFrom: fieldRef: fieldPath: status.podIP - name: "_namespace_" valueFrom: fieldRef: fieldPath: metadata.namespace - name: "_node_name_" valueFrom: fieldRef: fieldPath: spec.nodeName - name: "_node_ip_" valueFrom: fieldRef: fieldPath: status.hostIP volumeMounts: - name: nginx-log mountPath: /var/log/nginx ##### share this volume volumes: - name: nginx-log emptyDir: {}
- 次のコマンドを実行して、sidecar.yamlファイルの設定を適用します。
このコマンドでは、ファイル名はsidecar.yamlです。 ファイル名を実際のファイル名に置き換えます。
kubectl apply -f sidecar.yaml
ステップ2: マシングループを作成する
- Log Service コンソールにログインします。
- [プロジェクト] セクションで、Logtailコンポーネントのインストールに使用したプロジェクトをクリックします。
- 左側のナビゲーションウィンドウで、 を選択します。
- マシングループリストで、 を選択します。
- [マシングループの作成] パネルでパラメーターを設定し、[OK] をクリックします。 次の表は、各パラメーターの説明です。
項目 説明 Name マシングループの名前。 重要 マシングループを作成した後、マシングループの名前を変更することはできません。 操作は慎重に行ってください。ID マシングループの識別子。 [カスタムID] を選択します。 トピック マシングループのトピック。 トピックは、異なるサーバーによって生成されるログを区別するために使用されます。 詳細については、「ログトピック」をご参照ください。 カスタム識別子 マシングループのカスタム識別子。 識別子は、Sidecarのインストール時に設定した ${your_machine_group_user_defined_id} パラメーターの値と同じである必要があります。 例: nginx-log-sidecar. 詳細については、「ステップ1: Sidecarのインストール」をご参照ください。
ステップ3: Logtail設定の作成
- Log Service コンソールにログインします。
- [データのインポート] セクションで、[区切り文字モード-テキストログ] をクリックします。 この例では、デリミタモードが使用されています。 その他の収集モードについては、「テキストファイルの収集」をご参照ください。
- プロジェクトとLogstoreを選択します。 [次へ] をクリックします。 Logtailコンポーネントのインストールに使用したプロジェクトと、作成したLogstoreを選択します。
- [既存のマシングループを使用] をクリックします。
- [ソースサーバーグループ] セクションからマシングループを選択し、マシングループを [応用サーバーグループ] セクションに移動します。 次に、次へ をクリックします。
ステップ2: マシングループを作成する で作成したマシングループを選択します。
重要 マシングループを作成した直後にマシングループを有効にすると、マシングループのハートビートステータスがFAILになる可能性があります。 この問題は、マシングループがLog Serviceに接続されていない場合に発生します。 この問題を解決するには、[自動再試行] をクリックします。 問題が解決しない場合は、「Logtailマシングループにハートビートがない場合の対処方法」をご参照ください。 - Logtail設定を作成し、[次へ] をクリックします。 シンプルモード、NGINXモード、デリミタモード、JSONモード、またはフル正規表現モードでログを収集できます。 詳細については、「テキストログの収集」をご参照ください。重要 Sidecarモードでは、Dockerファイルをオフにする必要があります。
- データをプレビューし、インデックスを設定し、[次へ] をクリックします。 デフォルトでは、Log Serviceでフルテキストインデックスが有効になっています。 手動モードまたは自動モードで収集したログに基づいてフィールドインデックスを設定することもできます。 自動モードでフィールドインデックスを設定するには、[自動インデックス生成] をクリックします。 これにより、Log Serviceは自動的にフィールドインデックスを作成します。 詳細については、「インデックスの作成」をご参照ください。重要 ログをクエリおよび分析する場合は、フルテキストインデックス作成またはフィールドインデックス作成を有効にする必要があります。 フルテキストインデックスとフィールドインデックスの両方を有効にすると、フィールドインデックスのみが使用されます。
- [ログクエリ] をクリックします。 Logstoreのクエリと分析ページにリダイレクトされます。 インデックスが有効になるまで約1分待つ必要があります。 そして、収集したログを Raw Logsタブで確認することができます。 詳細については、「データのクエリと分析」をご参照ください。
トラブルシューティング
Logtailを使用して標準コンテナやKubernetesコンテナなどのコンテナからログを収集するときに例外が発生した場合、次のトピックに基づいて問題のトラブルシューティングを行うことができます。