このトピックでは、KubernetesクラスターにLogtailコンポーネントをインストールする方法について説明します。

このタスクについて

Kubernetesクラスターからコンテナーログを収集するには、Logtailコンポーネントをインストールする必要があります。
Logtailコンポーネントをインストールすると、システムは自動的に次の操作を完了します。
  1. alibaba-log-configurationという名前のConfigMapを作成します。 ConfigMapには、プロジェクトなどのLog Serviceの設定情報が含まれています。
  2. オプションです。 AliyunLogConfigという名前のカスタムリソース定義 (CRD) を作成します。
  3. オプションです。 alibaba-log-controllerという名前の配置コントローラーを作成します。 デプロイメントコントローラーは、AliyunLogConfig CRDの変更とLogtail設定の作成を監視するために使用されます。
  4. logtail-dsという名前のDaemonSetを作成して、ノードからログを収集します。

Alibaba Cloud Container Service for Kubernetes (ACK) クラスター

既存のACKクラスターにLogtailコンポーネントをインストールできます。 ACKクラスターの作成時にLogtailコンポーネントをインストールすることもできます。 ACKクラスターの作成時にLogtailコンポーネントをインストールするには、[Log Serviceの有効化] を選択する必要があります。

既存のACKクラスターにLogtailコンポーネントをインストールする

重要
  • ACKクラスターが専用KubernetesクラスターまたはマネージドKubernetesクラスターの場合、このセクションで説明されている手順に従って、Logtailコンポーネントをクラスターにインストールできます。
  • ACKクラスターとLog Serviceが異なるAlibaba Cloudアカウントに属している場合、Log Serviceが属しているAlibaba CloudアカウントのIDをクラスターのユーザー識別子として設定する必要があります。 詳細については、「Alibaba CloudアカウントのIDをユーザー識別子として設定する」をご参照ください。
  1. ACK コンソールにログインします。
  2. 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
  3. [クラスター] ページで、Logtailコンポーネントをインストールするクラスターを見つけてクリックします。
  4. 表示されるページの左側のナビゲーションウィンドウで、[操作] > [アドオン] を選択します。
  5. [ログとモニタリング] タブで、[logtail-ds] を見つけ、[インストール] をクリックします。
    After logtail-dsはインストール、Log Service自動的に作成プロジェクト名前k8s-log -${your_k8s_cluster_id} 、マシングループ名前k8s-group-${your_k8s_cluster_id} 、とLogstore名前設定操作ログで
    重要 config-operation-log Logstoreは削除しないでください。

ACKクラスターの作成時にLogtailコンポーネントをインストールする

  1. ACK コンソールにログインします。
  2. 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
  3. [クラスター] ページで、[Kubernetesクラスターの作成] をクリックします。
  4. [コンポーネント設定] ステップで、[Log Serviceの有効化] を選択します。
    説明 この例では、Log Serviceの有効化に必要な手順のみを示します。 ACKクラスターの作成方法の詳細については、「マネージド Kubernetes クラスターの作成」をご参照ください。

    Log Serviceの有効化を選択した場合、Log Serviceプロジェクトを作成するように求められます。 Log Serviceでのログの管理方法の詳細については、「プロジェクト」をご参照ください。 次のいずれかの方法を使用して、プロジェクトを作成できます。

    • プロジェクトの選択

      既存のプロジェクトを選択して、収集されるコンテナログを管理できます。

      Logtailコンポーネントのインストール
    • プロジェクトの作成

      Log Serviceは、収集されたコンテナログを管理するために、k8s-log-{ClusterID} という名前のプロジェクトを自動的に作成します。 ClusterIDは、作成されたACKクラスターの一意のIDを示します。

      Logtailコンポーネントのインストール
    Logtailコンポーネントをインストールすると、k8s-group-${your_k8s_cluster_id} という名前のマシングループとconfig-operation-logという名前のLogstoreがプロジェクトに自動的に作成されます。
    重要 config-operation-log Logstoreは削除しないでください。

自己管理型Kubernetesクラスター

  1. Log Service コンソールにログインします。
  2. 名前がk8s-log-custom- で始まるプロジェクトを作成します。
    例: k8s-log-custom-sd89ehdq。 詳細については、「プロジェクトの作成」をご参照ください。
  3. Kubernetesクラスターにログインします。
  4. 次のコマンドを実行して、Logtailおよび依存コンポーネントをインストールします。
    重要
    • コマンドを実行するマシンにkubectlコマンドラインツールがインストールされていることを確認します。
    • alibaba-log-controllerはKubernetes 1.6以降でのみ使用できます。
    • CRDを使用する必要がなくなった場合は、alibaba-cloud-log/templates/alicloud-log-config.yamlファイルを削除し、次のコマンドを再実行します。 の場合。/alicloud-log-k8s-custom-install.sh: 行111: /root/alibaba-cloud-log/templates/alicloud-log-crd.yaml: このようなファイルまたはディレクトリのエラーメッセージが表示されません。エラーは無視できます。
    1. インストールスクリプトをダウンロードします。
      wget http://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/kubernetes/alicloud-log-k8s-custom-install.sh
    2. インストールスクリプトへのアクセスを制限する権限を変更します。
      chmod 744。/alicloud-log-k8s-custom-install.sh
    3. Logtailと依存コンポーネントをインストールします。
      sh。/alicloud-log-k8s-custom-install.sh your-project-suffix region-id aliuid access-key-id access-key-secret

      次の表に、上記のコマンドに含まれるパラメーターを示します。 ビジネス要件に基づいてパラメーターを設定できます。

      パラメーター説明
      your-project-suffixk8s-log-custom後に指定されたパーツ-プロジェクトの名前。 2 で作成したプロジェクトを使用します。 たとえば、プロジェクト名がk8s-log-custom-sd89ehdqの場合、値をsd89ehdqに設定します。
      region-idプロジェクトが配置されているリージョンの ID です。 たとえば、中国 (杭州) リージョンのIDはcn-Hangzhouです。 詳細については、「サポートされるリージョン」をご参照ください。
      aliuidAlibaba CloudアカウントのID。 詳細については、「Log Serviceが属するAlibaba CloudアカウントのIDの取得」をご参照ください。
      access-key-idAlibaba CloudアカウントのAccessKey ID。 RAMユーザーのAccessKeyペアを使用し、AliyunLogFullAccessポリシーをRAMユーザーにアタッチすることを推奨します。 詳細については、「RAM ユーザーに Log Service へのアクセスを許可」をご参照ください。
      access-key-secretAlibaba CloudアカウントのAccessKeyシークレット。 RAMユーザーのAccessKeyペアを使用し、AliyunLogFullAccessポリシーをRAMユーザーにアタッチすることを推奨します。 詳細については、「RAM ユーザーに Log Service へのアクセスを許可」をご参照ください。

    Logtailとコンポーネントがインストールされると、k8s-group-${your_k8s_cluster_id} という名前のマシングループとconfig-operation-logという名前のLogstoreがプロジェクトに自動的に作成されます。

    重要
    • config-operation-log Logstoreは削除しないでください。
    • 自己管理型KubernetesクラスターにLogtailコンポーネントをインストールすると、Logtailに特権権限が付与されます。 これにより、他のポッドが削除されたときに発生するコンテナーテキストファイルのビジーエラーを防ぐことができます。 詳細については、「バグ1468249」、「バグ1441737」、および「課題34538」をご参照ください。

エラー

  • コンテナイメージのバージョンを表示するにはどうすればよいですか?
    次のいずれかのイメージリポジトリにアクセスして、コンテナイメージのバージョンを表示できます。
  • 複数のKubernetesクラスターから同じLog Serviceプロジェクトにコンテナーログを収集する方法を教えてください。
    • Alibaba Cloud ACKクラスター

      複数のACKクラスターから同じLog Serviceプロジェクトにコンテナログを収集する場合は、ACKクラスターを作成するときに同じプロジェクトを選択する必要があります。

    • 自己管理型Kubernetesクラスター

      複数のセルフマネージドKubernetesクラスターから同じLog Serviceプロジェクトにコンテナーログを収集する場合は、各KubernetesクラスターにLogtailコンポーネントをインストールするときに指定した値と同じ値に {your-project-suffix} パラメーターを設定する必要があります。

    説明 複数の自己管理Kubernetesクラスターから同じLog Serviceプロジェクトにコンテナーログを収集できるのは、Kubernetesクラスターが同じリージョンにある場合のみです。
  • Logtailのログを表示するにはどうすればよいですか?

    Logtailのログは、Logtailコンテナの /usr/local/ilogtail/ ディレクトリにあるilogtail.LOGおよびlogtail_plugin.LOGファイルに保存されます。

    コンテナの標準出力は、この場合には無関係である。 次の標準出力を無視します。

    umount役に立たないマウントポイントを開始, /shm$|/merged$|/mqueue $
    umount: /logtail_host/var/lib/docker/overlay2/3fd0043af174cb0273c3c7869500fbe2bdb95d13b1e110172ef57fe840c8215 5/merged: アンマウントするにはスーパーユーザーである必要があります
    umount: /logtail_host/var/lib/docker/overlay2/d5b10aa19399992755de1f85d25009528daa749c1bf8c16edff44beab6e69718/merged: アンマウントするにはスーパーユーザーである必要があります
    umount: /logtail_host/var/lib/docker/overlay2/5c3125daddacedec29df72ad0c52fac800cd56c6e880dc4e8a640b1e16c2 2dbe/merged: アンマウントするにはスーパーユーザーである必要があります
    ......
    xargs: umount: ステータス255で終了しました。中止
    umount done
    開始logtail
    ilogtailが実行中です
    logtailステータス:
    ilogtailが実行中です
  • KubernetesクラスターでLogtailコンポーネントのステータスを表示するにはどうすればよいですか。
    以下のコマンドを実行します。
    kubectl get deploy alibaba-log-controller -n kube-system
    kubectl get ds logtail-ds -n kube-system
  • alibaba-log-controllerの起動に失敗した場合はどうすればよいですか?
    次の方法でalibaba-log-controllerがインストールされているかどうかを確認します。
    • Kubernetesクラスターのマスターノードでインストールコマンドを実行します。
    • インストールコマンドでKubernetesクラスターのIDを指定します。

    上記の方法でalibaba-log-controllerがインストールされていない場合は、kubectl delete -f deployコマンドを実行して、生成されたインストールテンプレートを削除します。 次に、インストールコマンドを再実行します。

  • KubernetesクラスターでLogtail DaemonSetのステータスを表示するにはどうすればよいですか。
    kubectl get ds -n kube-systemコマンドを実行し、Logtail DaemonSetのステータスを表示します。
    説明 Logtailコンテナが存在するデフォルトの名前空間はkube-systemです。
  • Logtailのバージョン番号、IPアドレス、起動時間、ステータスを表示するにはどうすればよいですか。
    • 次のコマンドを実行して、Logtailのステータスを表示します。
      kubectl get po -n kube-system | grep logtail

      次の出力が返されます。

      名前準備ができているステータスの履歴書
      logtail-ds-gb92k 1/1ランニング0 2h
      logtail-ds-wm7lw 1/1ランニング0 4d
    • 次のコマンドを実行して、Logtailのバージョン番号とIPアドレスを表示します。
      kubectl exec logtail-ds-gb92k -n kube-system cat /usr/local/ilogtail/app_info.json

      次の出力が返されます。

      {
         "UUID": ""、
         "hostname" : "logtail-ds-gb92k",
         "instance_id" : "0EBB2B0E-0A3B-11E8-B0CE-0A58AC140402_172.20.4.2_1517810940",
         "ip" : "192.0.2.0" 、
         "logtail_version": "0.16.2"、
         "os": "Linux; 3.10.0-693.2.2.el7.x86_64;#1 SMP Tue Sep 12 22:26:13 UTC 2017; x86_64"、
         "update_time" : "2021-02-05 06:09:01"
      }
  • Logtailの操作ログを表示するにはどうすればよいですか?

    Logtailの操作ログは、/usr/local/ilogtail/ ディレクトリのilogtail.LOGファイルに保存されます。 ログファイルがローテーションされると、生成されたファイルは圧縮され、ilogtail.LOG.x.gzとして保存されます。

    例:
    kubectl exec logtail-ds-gb92k -n kube-system tail /usr/local/ilogtail/ilogtail.LOG
    [2018-02-05 06:09:02.168693] [情報] [9] [build/release64/sls/ilogtail/LogtailPlugin.cpp:104] logtail plugin Resume:start
    [2018-02-05 06:09:02.168807] [情報] [9] [build/release64/sls/ilogtail/LogtailPlugin.cpp:106] logtail plugin Resume:success
    [2018-02-05 06:09:02.168822] [INFO] [9] [build/release64/sls/ilogtail/EventDispatcher.cpp:369] 既存のチェックポイントイベントの追加を開始、サイズ: 0
    [2018-02-05 06:09:02.168827] [INFO] [9] [build/release64/sls/ilogtail/EventDispatcher.cpp:511] 既存のチェックポイントイベントを追加、サイズ: 0キャッシュサイズ: 0イベントサイズ: 0成功カウント: 0
  • ポッドのLogtailを再起動するにはどうすればよいですか?
    1. Logtailを停止します。

      次のコマンドでは、logtail-ds-gb92k -nはコンテナーを指定し、kube-systemは名前空間を指定します。 ビジネスシナリオに基づいてパラメーターを設定します。

      kubectl exec logtail-ds-gb92k -n kube-system /etc/init.d/ilogtaild stop
      次の出力が返された場合、Logtailは停止します。
      kill process Name: ilogtail pid: 7
      kill process Name: ilogtail pid: 9
      成功を止める
    2. Logtailを起動します。

      次のコマンドでは、logtail-ds-gb92k -nはコンテナーを指定し、kube-systemは名前空間を指定します。 ビジネスシナリオに基づいてパラメーターを設定します。

      kubectl exec logtail-ds-gb92k -n kube-system /etc/init.d/ilogtaild start
      次の出力が返されると、Logtailが起動されます。
      ilogtailが実行されています 
  • 制御プレーンコンポーネントのログを収集するにはどうすればよいですか?
    • ACK管理クラスターから制御プレーンコンポーネントのログを収集するには、ACKコンソールでログ収集機能を有効にします。 詳細については、「t2020982.html#task_2020982」をご参照ください。
    • 自己管理型KubernetesクラスターまたはACK専用クラスターから制御プレーンコンポーネントのログを収集する方法については、「コンテナ標準出力」をご参照ください。

次のタスク

コンテナログを収集するためのLogtail設定を作成します。