Alibaba Cloud Filebeat を使用して、Container Service for Kubernetes(ACK)クラスタのログを収集し、収集したログを Alibaba Cloud Elasticsearch に送信して分析および表示できます。このトピックでは、Filebeat シッパーを設定して ACK クラスタのログを収集する方法と、シッパー用に ACK クラスタにデプロイされているリソースを表示する方法について説明します。
前提条件
Alibaba Cloud Elasticsearch クラスタが作成されていること。
詳細については、「Alibaba Cloud Elasticsearch クラスタを作成する」をご参照ください。
Elasticsearch クラスタで自動インデックス作成機能が有効になっており、この機能に基づいて自動的に作成されるインデックスの名前にプレフィックスがカスタマイズされていること。
ロールオーバー中に生成されるインデックスのエイリアスとインデックスの名前の間の競合を避けるために、インデックス名に filebeat- プレフィックスをカスタマイズすることをお勧めします。[カスタム] フィールドに +.*,+filebeat-*,-* と入力できます。詳細については、「YML ファイルを設定する」をご参照ください。
重要Elasticsearch クラスタのインデックスのライフサイクル管理を 設定する際に [ローリングアップデート] 機能を有効にする場合は、ローリングアップデート後に生成されるインデックスのエイリアスとインデックスの名前の間の競合を避けるために、自動インデックス作成機能を無効にする必要があります。インデックスに対して [ローリングアップデート] 機能を有効にしない場合は、自動インデックス作成機能を有効にする必要があります。インデックス名にプレフィックスをカスタマイズすることをお勧めします。
Beats および ACK クラスタに対する権限が RAM ユーザーに付与されていること。
詳細については、「カスタムポリシーを作成する」および「RAM ユーザーに権限を付与する」をご参照ください。
ACK クラスタが作成され、クラスタ内にポッドが作成されていること。この例では、NGINX コンテナが使用されています。
詳細については、「ACK マネージドクラスタを作成する」をご参照ください。
注意事項
Alibaba Cloud Filebeat シッパーは Docker コンテナのみをサポートしています。containerd コンテナやサンドボックス化されたコンテナなどのコンテナはサポートしていません。Docker コンテナ以外のコンテナを使用すると、Filebeat シッパーは作成後にアクティブ状態のままになります。
Alibaba Cloud Filebeat シッパーは、ACK 専用クラスタまたは ACK マネージドクラスタにのみインストールできます。
重要Filebeat シッパーは、1.18 または 1.20 の Kubernetes クラスタにのみインストールできます。
手順
Alibaba Cloud Elasticsearch コンソール にログインします。
Beats データシッパーページに移動します。
上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションペインで、[beats データシッパー] をクリックします。
(オプション) [beats データシッパー] ページに初めてアクセスする場合は、表示されるメッセージに表示される情報を確認し、[OK] をクリックして、システムがアカウントのサービスリンクロールを作成することを承認します。
説明Beats がさまざまなデータソースからデータを収集する場合、Beats はサービスリンクロールとロールに指定されたルールに依存します。サービスリンクロールを削除しないでください。削除すると、Beats の使用に影響します。詳細については、「Elasticsearch サービスリンクロール」をご参照ください。
[シッパーの作成] セクションで、ポインタを [filebeat] に移動し、[ACK ログ] をクリックします。
[デスティネーション Elasticsearch クラスタの選択] ステップで、パラメータを設定します。

パラメータ
説明
シッパー名
シッパーの名前。名前は 1 ~ 30 文字で、文字、数字、アンダースコア(_)、ハイフン(-)を含めることができます。名前は文字で始める必要があります。
バージョン
Filebeat でサポートされている唯一のバージョンである 6.8.13 に設定します。
出力
シッパーによって収集されたデータのデスティネーション。デスティネーションは、作成した Elasticsearch クラスタです。プロトコルは、選択した Elasticsearch クラスタのプロトコルと同じである必要があります。
重要Elasticsearch V8.X クラスタはサポートされていません。
ユーザー名/パスワード
Elasticsearch クラスタへのアクセスに使用するユーザー名とパスワード。デフォルトのユーザー名は elastic です。パスワードは、Elasticsearch クラスタの作成時に指定します。パスワードを忘れた場合は、リセットできます。パスワードをリセットする手順と注意事項については、「Elasticsearch クラスタのアクセスパスワードをリセットする」をご参照ください。
Kibana 監視を有効にする
シッパーのメトリックを監視するかどうかを指定します。[出力] に [elasticsearch] を選択した場合、Kibana モニターは、[出力] パラメータに設定した Elasticsearch クラスタをデスティネーションとして使用します。
Kibana ダッシュボードを有効にする
デフォルトの Kibana ダッシュボードを有効にするかどうかを指定します。Alibaba Cloud Kibana は仮想プライベートクラウド(VPC)にデプロイされます。Kibana 設定ページで Kibana のプライベートネットワークアクセス機能を有効にする必要があります。詳細については、「Kibana のパブリックまたはプライベート IP アドレスホワイトリストを設定する」をご参照ください。
[次へ] をクリックします。[収集オブジェクトの設定] ステップで、収集オブジェクトを設定します。
[ソース ACK クラスタ] ドロップダウンリストから目的の ACK クラスタを選択します。
重要Elasticsearch クラスタと同じ VPC にあり、ACK エッジクラスタではない実行中の ACK クラスタを選択する必要があります。詳細については、「ACK Edge とは」をご参照ください。
[インストール] をクリックして、ACK クラスタに ES-operator をインストールします。Beats は ES-operator に依存しています。
[インストール] ボタンが表示されていない場合は、ES-operator がインストールされています。ES-operator をインストールした後に [インストール] ボタンが表示されない場合は、インストールは成功です。
左下隅にある [収集オブジェクトの作成] をクリックして、収集オブジェクトを設定します。複数の収集オブジェクトを設定できます。

パラメータ
説明
オブジェクト名
収集オブジェクトの名前。複数の収集オブジェクトを作成できます。各収集オブジェクトの名前は一意である必要があります。
名前空間
ログを収集するポッドがデプロイされている ACK クラスタの名前空間。デフォルトでは、ポッドの作成時に名前空間を指定しない場合、名前空間 default が使用されます。
ポッドラベル
ポッドのラベル。複数のラベルを指定できます。指定されたラベルには論理 AND 関係があります。
重要指定したラベルを削除できるのは、少なくとも 2 つのラベルが指定されている場合のみです。
ポッドに定義されているラベルのみを指定できます。デプロイメントなどの他のオブジェクトに定義されているラベルを指定すると、シッパーの作成に失敗します。
コンテナ名
コンテナの完全な名前。このパラメータを空のままにすると、シッパーは、ポッドに追加されたラベルに準拠する名前空間内のすべてのコンテナからログを収集します。
説明名前空間、ラベル、名前など、ポッドの構成を取得する方法については、「ポッドを管理する」をご参照ください。
[次へ] をクリックします。[ログ収集の設定] ステップで、左下隅にある [ログ収集設定の追加] をクリックして、ログ収集情報を設定します。ログを収集する複数のコンテナを指定できます。

パラメータ
説明
ログ名
ポッドごとに複数のコンテナを指定できます。各コンテナはログ名に対応しています。各ログ名は一意である必要があります。ログ名はインデックス名の一部にすることができ、後続の収集出力に使用されます。
シッパーの設定
Docker コンテナからログを収集するための一般的なテンプレートが使用されます。Autodiscover プロバイダーはログ収集設定に統合されています。収集設定は Docker 入力 をサポートしています。
type: 入力タイプ。コンテナからログを収集する場合、このパラメータの値は docker です。このパラメータの値は入力タイプによって異なります。詳細については、「入力を設定する」をご参照ください。
combine_partial: 部分メッセージの結合を有効にするかどうかを指定します。詳細については、「Docker 入力(combine_partial)」をご参照ください。
container ids: ログを収集する Docker コンテナの ID。詳細については、「Docker 入力(containers.ids)」をご参照ください。
fields.k8s_container_name: shipper の出力情報に k8s_container_name フィールドを追加して、変数 ${data.kubernetes.container.name} を参照します。
説明Autodiscover プロバイダーは Docker コンテナ設定に統合されています。Autodiscover プロバイダーの設定を参照して、Docker コンテナを設定できます。
fileds.k8s_node_name: 変数 ${data.kubernetes.node.name} を参照するために、k8s_node_name フィールドをシッパーの出力情報に追加します。
fileds.k8s_pod: shipper の出力情報に k8s_pod フィールドを追加して、変数 ${data.kubernetes.pod.name} を参照します。
fileds.k8s_pod_namespace: k8s_pod_namespace フィールドをシッパーの出力情報に追加して、変数 ${data.kubernetes.namespace} を参照します。
fields_under_root: このパラメータを true に設定すると、フィールドは出力ドキュメントのトップレベルフィールドとして保存されます。詳細については、「Docker 入力(fields_under_root)」をご参照ください。
説明一般的なテンプレートが要件を満たしていない場合は、設定を変更できます。詳細については、「Filebeat Docker 入力」をご参照ください。
各収集設定では、1 つの Docker コンテナのみを設定できます。複数の Docker コンテナを設定する場合は、[ログ収集設定の追加] をクリックして操作を実行します。
(オプション) [次へ] をクリックします。[インデックスストレージの管理] ステップで、ビジネス要件に基づいて「収集データのインデックスストレージ管理」機能を有効にし、設定します。
「収集データのインデックスストレージ管理」機能を有効にした後、[管理ポリシーの追加] をクリックして、インデックス管理ポリシーを作成および設定します。複数のインデックス管理ポリシーを設定できます。インデックス管理ポリシーを作成および設定するには、次のパラメータを設定します。

パラメータ
説明
ポリシー名
ポリシーの名前。名前をカスタマイズできます。
ログ名
ポリシーに関連付けるログファイルの名前。少なくとも 1 つの名前を選択する必要があります。複数のログファイルを同じポリシーに関連付けることができますが、各ログファイルは 1 つのポリシーにのみ関連付けることができます。
最大ストレージ容量
インデックス(インデックスのレプリカシャードを含む)によって消費されるディスク容量がこのパラメータの値に達すると、システムはディスク容量を節約するために古いデータを削除します。
ライフサイクル管理
インデックスのライフサイクル管理を有効にするかどうかを指定します。「ライフサイクル管理」を有効にすると、システムはデータノードのホットデータとコールドデータを分離し、古いデータを自動的に削除します。
重要[ローリングアップデート] を有効にすると、シッパーは <ログ名>-<日付>-<シリアル番号> 形式の名前のインデックスにデータを書き込みます(例: log-web-2021.01.22-000001)。
[ローリングアップデート] を有効にしない場合、シッパーは filebeat-<ログ名>-<日付> 形式の名前のインデックスにデータを書き込みます。
[有効にする] をクリックします。
シッパーが有効になったら、「シッパーの管理」セクションでシッパーに関する情報を表示できます。次の表に示す操作を実行することもできます。
説明デフォルトでは、シッパーのリソースは ACK クラスタの logging 名前空間にデプロイされます。リソースがデプロイされた後、ACK クラスタにアクセスして、インデックス管理用のコンテナやインデックスライフサイクルのローリングアップデートポリシーなどのリソースを表示できます。詳細については、「シッパー用に ACK クラスタにデプロイされているリソースを表示する」をご参照ください。
操作
説明
設定の表示
デスティネーション Elasticsearch クラスタ、ソース ACK クラスタ、シッパーのログ収集タスクの名前などの情報を表示します。情報は変更できません。
設定の変更
収集オブジェクト、ログ収集設定、インデックスストレージ管理ポリシーを変更します。
詳細
ログ収集タスクを有効化、無効化、再起動、または削除し、ダッシュボードと helm チャートでタスクに関する情報を表示します。
シッパー用に ACK クラスタにデプロイされているリソースを表示する
次のコマンドを実行し、kubectl を使用して ACK クラスタに接続し、logging 名前空間でシッパーのリソースを表示します。詳細については、「クラスタの kubeconfig ファイルを取得し、kubectl を使用してクラスタに接続する」をご参照ください。
kubectl get pods -n logging
logging 名前空間にデプロイされているリソースを削除したり、リソースに対して他の操作を実行したりすることはできません。リソースに対して操作を実行すると、シッパーは期待どおりに実行されません。
ポッド名 | 説明 | 例 |
クラスタ名-binding-シリアル番号 | 古いデータを定期的に削除するために使用されるコンテナなど、インデックスを管理するために使用されるコンテナ。 | ct-cn-ew8qx563gu4ng4ot6-binding-7e245-1617347400-c**** |
クラスタ名-policy-シリアル番号 | インデックスのローリングアップデートのポリシー。 | ct-cn-ew8qx563gu4ng4ot6-policy-696b7-hot-rollover-1g-16173v**** |
クラスタ名-シリアル番号 | シッパーがインストールされているコンテナ。 | ct-cn-ew8qx563gu4ng4ot6-q**** |
es-operator-シリアル番号 | ES-operator がインストールされているコンテナ。 | es-operator-cb63cc9a6302e4e90aeb2f79adf358b19-56fcd754db-b**** |