Fleet を使用すると、Elastic Agent を一元管理し、収集したデータを Elasticsearch にルーティングできます。このガイドでは、Elastic Compute Service (ECS) インスタンスに Fleet エージェントをデプロイして、カスタムログファイルを収集し、Elasticsearch にインデックス付けする手順を説明します。
前提条件
開始する前に、次のものがあることを確認してください:
バージョン V7.16 または V8.5 の Alibaba Cloud Elasticsearch クラスター。このガイドでは V8.5 を使用します。設定手順については、「Alibaba Cloud Elasticsearch クラスターの作成」をご参照ください。
Elasticsearch クラスターと同じ VPC 内にある ECS インスタンス。このインスタンスは、Fleet エージェントがデータを収集するソースサーバーとして機能します。設定手順については、「ウィザードを使用したインスタンスの作成」をご参照ください。
仕組み
Fleet は、次の 2 つのコンポーネントで構成されています:
Fleet エージェント:ホスト上で実行され、そこからデータを収集する軽量のデータ収集エージェントです。単一の Fleet エージェントで、異なるオペレーティングシステムにまたがる複数のデータ型を収集できます。
Fleet サーバー:すべての Fleet エージェントを管理し、収集したデータを Elasticsearch に転送する中央ノードです。
エンドツーエンドのフローは次のとおりです:
エージェントポリシーを作成し、Fleet サーバーと Custom Logs 統合を追加します。
Fleet サーバーホストと Elasticsearch の出力を設定します。
ECS インスタンスに Fleet エージェントをインストールします。
ログデータが Elasticsearch に表示されることを確認します。
エージェントポリシーの作成と統合の追加
ステップ 1:エージェントポリシーの作成
Elasticsearch クラスターの Kibana コンソールにログインします。手順については、「Kibana コンソールへのログイン」をご参照ください。
左上隅の
アイコンをクリックし、左側のナビゲーションウィンドウで [管理] > [フリート] を選択します。[Fleet] ページで、[エージェントポリシー] タブをクリックし、次に [エージェントポリシーの作成] をクリックします。
[Create agent policy] パネルで、次の操作を行います:
[Name] フィールドに
custom-logと入力します。[Collect system logs and metrics] の選択を解除します。
[Advanced options] をクリックします。[Agent monitoring] セクションで、[Collect agent logs] と [Collect agent metrics] の選択を解除します。
説明このガイドではカスタムログのみを収集するため、システムログ、エージェントログ、エージェントメトリックは不要です。
[Create agent policy] をクリックします。
ステップ 2:Fleet Server 統合の追加
[Agent policies] タブで、custom-log ポリシーをクリックします。
[統合] タブで、[統合の追加] をクリックします。
[Browse integrations] タブで
Fleet Serverを検索し、[Fleet Server] カードをクリックします。Fleet Server 統合をインストールします:
[Fleet Server] ページで、[Settings] タブをクリックします。
[Install Fleet Server assets] をクリックします。確認ダイアログで [Install Fleet Server] をクリックします。
説明インストール後、統合バージョンが [Settings] タブに表示されます。
右上の [Add Fleet Server] をクリックします。
[Add Fleet Server integration] ページで、次の操作を行います:
[Configure integration] セクションで、[Integration name] フィールドに名前を入力します。
[Where to add this integration] セクションで、[Agent policy] ドロップダウンリストから
custom-logを選択します。
[Save and continue] をクリックします。確認メッセージで [Add Elastic Agent later] をクリックします。
ステップ 3:Custom Logs 統合の追加
custom-log ポリシーの [Integrations] タブで、[Add integration] をクリックします。
[Browse integrations] タブで
Custom Logsを検索し、[Custom Logs] カードをクリックします。Custom Logs 統合をインストールします:
[Custom Logs] ページで、[Settings] タブをクリックします。
[Install Custom Logs assets] をクリックします。確認ダイアログで [Install Custom Logs] をクリックします。
説明インストール後、統合バージョンが [Settings] タブに表示されます。
右上の [Add Custom Logs] をクリックします。
[Add Custom Logs integration] ページで、次の操作を行います:
[Configure integration] セクションで、[Integration name] フィールドに名前を入力します。
[Custom log file] セクションで、[Log file path] フィールドにログファイルのパス (例:
/var/log/a2.log) を入力します。[Advanced options] をクリックし、[Dataset name] フィールドに名前を入力します。
説明データセット名は、収集されたデータが保存される Elasticsearch インデックスを決定します。これは Elasticsearch のインデックス命名規則に従う必要があり、文字、数字、アンダースコア (
_) のみを含めることができます。データはデータセットと同じ名前のインデックスにルーティングされるため、データ管理がより柔軟になります。[Where to add this integration] セクションの [Existing hosts] タブで、[Agent policy] ドロップダウンリストから
custom-logを選択します。
[Save and continue] をクリックします。確認メッセージで [Add Elastic Agent later] をクリックします。
Fleet エージェントの追加
ステップ 1:Fleet サーバーホストの設定
Kibana コンソールにログインし、[Management] > [Fleet] に移動します。
[Fleet] ページで、[Settings] タブをクリックします。
Fleet サーバーホストを設定します:
[Fleet server hosts] セクションで、[Edit hosts] をクリックします。
[Fleet Server hosts] パネルで、[Specify host URL] フィールドに
https://<private-ip-of-ECS>:<port>のフォーマットで Fleet サーバーの URL を入力します (例:https://172.16.*.*:8220)。[Save and apply settings] をクリックし、確認ダイアログで [Save and deploy] をクリックします。説明ご利用の ECS インスタンスのプライマリプライベート IP アドレスを入力してください。Fleet サーバーホストの設定に関する詳細については、「Fleet Server hosts」をご参照ください。
Elasticsearch の出力を設定します:
「出力」セクションで、「操作」列の
アイコンをクリックします。[Edit output] パネルで、[Hosts] フィールドに
http://<internal-endpoint>:<port>のフォーマットで Elasticsearch クラスターの URL を入力します (例:http://es-cn-uqm3auln80001****.elasticsearch.aliyuncs.com:9200)。[Save and apply settings] をクリックし、[Save and deploy] をクリックします。
ステップ 2:ECS インスタンスへの Fleet エージェントのインストール
複数のソースサーバーからログを収集するには、サーバーごとにこれらの手順を繰り返します。各 Fleet エージェントは独立してデータを収集し、Fleet サーバーがそれらすべてを一元的に管理します。
[Fleet] ページで、[Agent policies] タブをクリックします。
「custom-log」ポリシーを見つけ、[操作] 列の
アイコンをクリックし、[エージェントの追加] を選択します。「Fleet への登録」タブで、「エージェントの追加」パネルの「Fleet サーバーの追加」をクリックします。
[Add a Fleet Server] パネルで、[Advanced] をクリックします。[Select a policy for Fleet Server] セクションで、デフォルト値の
custom-logを維持します。[Choose a deployment mode for security] セクションで、デフォルト値の [Quick start] を維持します。
[Add your Fleet Server host] セクションで、[Add host] をクリックします。
[Generate a service token] セクションで、[Generate service token] をクリックします。
[Install Fleet Server to a centralized host] セクションで、生成されたコマンドをコピーし、ECS インスタンスで実行します。出力に
Successfullyが含まれている場合、Fleet エージェントはインストールされ、実行中です。
収集されたデータの検証
このセクションでは、上記の例のログパス /var/log/a2.log とデータセット generic を使用します。
検証する前に、指定したログファイルのパスにデータが存在することを確認してください。
ステップ 1:データストリームの特定
アイコンをクリックし、[Management] > [Stack Management] を選択します。左側のナビゲーションウィンドウで、[Data] > [Index Management] を選択します。
[Data Streams] タブで、名前に
genericを含むデータストリーム (例:logs-generic-default) を探します。
ステップ 2:インデックスのクエリ
アイコンをクリックし、[Management] > [Dev Tools] を選択します。[Console] タブで、次のコマンドを実行してデータストリームのインデックス名を取得します:
GET _data_Stream/logs-generic-default応答の
index_nameフィールドがバッキングインデックス名です。インデックス内のログデータをクエリします:
GET <index_name>/_search { "query":{ "match":{ "log.file.path":"/var/log/a2.log" } } }<index_name>を前のステップで取得した値に置き換えます。一致するドキュメントがあれば、Fleet エージェントがカスタムログデータを正常に収集し、インデックス付けしていることが確認できます。