Log Service では、Logtail で Kubernetes クラスタのログを収集することができます。ログの収集条件は、CustomResourceDefinition (CRD) API で設定します。本ドキュメントでは、Logtail をインストールし、Logtail で Kubernetes クラスタログを収集する方法について説明します。

手順

  1. alibaba-log-controller Helm パッケージをインストールします。
  2. 収集条件を設定します。

    Log Service コンソールや CDR API を使用して収集条件を設定します。次の手順に従い、コンソールで収集条件を設定します。

図 1. 手順


1.パッケージをインストール

  1. Container Service for Kubernetes のマスターノードにログインします。

    ログイン方法については、「Kubernetes クラスターへの SSH キーペアを用いたアクセス」をご参照ください。

  2. パラメータを置き換え、次のコマンドを実行します。
    次のインストールコマンドの ${your_k8s_cluster_id}をお客様の Kubernetes クラスタ ID に置き換えて実行します。
    wget http://logtail-release.oss-cn-hangzhou.aliyuncs.com/linux64/alicloud-log-k8s-install.sh -O alicloud-log-k8s-install.sh; chmod 744 ./alicloud-log-k8s-install.sh; sh ./alicloud-log-k8s-install.sh ${your_k8s_cluster_id}

インストールの例

インストールコマンドを実行すると、次のように表示されます。

[root@iZbp******biaZ ~]# wget http://logtail-release.oss-cn-hangzhou.aliyuncs.com/linux64/alicloud-log-k8s-install.sh -O alicloud-log-k8s-install.sh; chmod 744 ./alicloud-log-k8s-install.sh; sh ./alicloud-log-k8s-install.sh c12ba20**************86939f0b
....
....
....
alibaba-cloud-log/Chart.yaml
alibaba-cloud-log/templates/
alibaba-cloud-log/templates/_helpers.tpl
alibaba-cloud-log/templates/alicloud-log-crd.yaml
alibaba-cloud-log/templates/logtail-daemonset.yaml
alibaba-cloud-log/templates/NOTES.txt
alibaba-cloud-log/values.yaml
NAME: alibaba-log-controller
LAST DEPLOYED: Wed May 16 18:43:06 2018
NAMESPACE: default
STATUS: DEPLOYED


RESOURCES:
==> v1beta1/ClusterRoleBinding
NAME AGE
alibaba-log-controller 0s


==> v1beta1/DaemonSet
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
logtail 2 2 0 2 0 0s


==> v1beta1/Deployment
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
alibaba-log-controller 1 1 1 0 0s


==> v1/Pod(related)
NAME READY STATUS RESTARTS AGE
logtail-ff6rf 0/1 ContainerCreating 0 0s
logtail-q5s87 0/1 ContainerCreating 0 0s
alibaba-log-controller-7cf6d7dbb5-qvn6w 0/1 ContainerCreating 0 0s


==> v1/ServiceAccount
NAME SECRETS AGE
alibaba-log-controller 1 0s


==> v1beta1/CustomResourceDefinition
NAME AGE
aliyunlogconfigs.log.alibabacloud.com 0s


==> v1beta1/ClusterRole
alibaba-log-controller 0s




[SUCCESS] install helm package : alibaba-log-controller success.

helm status alibaba-log-controllerのように「helm status」でポッドのステータスを確認します。「Running」ステータスであれば、インストールに成功していることになります。

Log Service には、名前がk8s-logで始まるプロジェクトが作成されます。作成されたプロジェクトk8s-logを Log Service コンソールでキーワード検索します。

2.収集条件を設定

Logstore を作成し、すべての K8 コンテナから標準出力 (stdout) を収集する手順は、次のとおりです。
  1. Logstore リストページに移動

    ステップ 1 で作成したプロジェクトをクリックして Logstore リストページに移動します。

  2. Logstore の作成
    右上にある作成をクリックし、表示されるダイアログボックスで Logstore を作成します。
    図 2. Logstore の作成


  3. 収集情報の設定
    1. データインポートウイザードページへ移動します。
    2. サードパーティー製のソフトウェアからDocker Stdoutを選択します。

      設定ページのマシングループに適用をクリックします。全コンテナの全 stdout ファイルが収集されます。

      図 3. Docker stdout


  4. 設定をマシングループに適用
    マシングループに適用するページで、マシングループを選択して、次へをクリックします。
    図 4. 設定をマシングループに適用


以上で収集条件の設定の完了です。 続けて、インデックス作成とログ送信の設定を行います。なお、ページを終了して設定を完了することもできます。

収集ログの表示

設定した収集条件に基づいて、クラスタ内のコンテナが stdout 入力を受信すると、1 分後にstdout ログを収集します。 Logstore リストページで、表示をクリックすると収集されたログはすばやく表示されます。また検索をクリックして検索条件を指定して、ログを検索し分析することができます。
図 5. 表示と検索


下図の検索ページのように、ログの任意のキーワードをクリックすると、すばやく検索できます。特定のログを検索するには、検索ボックスにキーワードを指定します。

図 6. ログの検索


他の方法による収集条件を設定

他の方法で収集条件を設定するには、以下をご参照ください。

コンソールで設定

コンソール設定の詳細については、以下をご参照ください。

  • コンテナのテキストログ (推奨)
  • コンテナの標準出力 (推奨)
  • host テキストファイル

    デフォルトでは、Logtail コンテナの「/logtail_host」ディレクトリに、ホストのルートディレクトリがマウントされています。 パスを設定する際に、このプレフィックスを追加します。 たとえば、ホストの /home/logs/app_log/ディレクトリのデータを収集するには、設定ページでログのパスを/logtail_host/home/logs/app_log/に指定します。

CRD の設定

CRD (CustomResourceDefinition) 設定の詳細については、「CRD に Kubernetes ログ収集を設定」をご参照ください。