NetFlow は、ネットワークトラフィック分析技術であり、ネットワークフローをリアルタイムで可視化することで、管理者がパフォーマンスを監視し、セキュリティ問題を特定するのに役立ちます。このトピックでは、Kibana の Fleet Server を使用して、NetFlow データを収集し、分析のために Alibaba Cloud Elasticsearch クラスターに送信する Elastic Agent を管理する方法について説明します。
用語
|
用語 |
説明 |
|
Fleet |
Kibana で Elastic Agent インスタンスを管理するための一元化されたアプリケーションです。 |
|
Elastic Agent |
ソースサーバーからデータを収集する軽量のデータシッパーです。 Elastic Agent は、複数のオペレーティングシステムで実行でき、さまざまな種類のデータを収集できます。 |
|
Fleet Server |
接続された Elastic Agent を管理し、そのトラフィックを Elasticsearch にルーティングするコンポーネントです。 |
前提条件
-
Alibaba Cloud Elasticsearch クラスターを作成します。詳細については、「Alibaba Cloud Elasticsearch クラスターの作成」をご参照ください。このトピックでは、Elasticsearch 8.5 クラスターを例として使用します。
-
Elastic Compute Service (ECS) インスタンスを作成します。インスタンスは、Elasticsearch クラスターと同じ Virtual Private Cloud (VPC) 内にある必要があります。詳細については、「ウィザードを使用したインスタンスの作成」をご参照ください。
説明ECS インスタンスは、Elastic Agent が NetFlow データを収集するソースサーバーとして機能します。
エージェントポリシーの作成とインテグレーションの追加
ステップ1:エージェントポリシーの作成
-
Kibana コンソールにログインします。詳細については、「Kibana コンソールへのログイン」をご参照ください。
-
> [Management] > [Fleet] に移動します。 -
[Fleet] ページで、[Agent policies] タブをクリックします。
-
[Create agent policy] をクリックし、表示されるパネルでエージェントポリシーを設定します。
-
名前 に
netflow-logと入力します。 -
[Collect system logs and metrics] チェックボックスをオフにします。
-
詳細設定 をクリックします。[Agent monitoring] で、[Collect agent logs] と [Collect agent metrics] チェックボックスをオフにします。
説明このシナリオでは、NetFlow Records のみを収集する必要があるため、システムログ、メトリクス、およびエージェントモニタリングデータの収集を無効にできます。
-
-
完了したら、右下隅にある [Create agent policy] をクリックします。
ステップ2:Fleet Server インテグレーションの作成
-
[Fleet] ページの [Agent policies] タブで、エージェントポリシー netflow-log をクリックします。
-
統合 タブで、[Add integration] をクリックします。
-
[Browse integrations] タブで、Fleet Server を検索してクリックします。
-
Fleet Server インテグレーションをインストールします。
-
[Fleet Server] ページで、設定 タブをクリックします。
-
[Install Fleet Server assets] をクリックし、表示されるダイアログボックスで [Install Fleet Server] をクリックします。
説明インテグレーションがインストールされると、[Settings] タブにバージョンが表示されます。
-
-
ページの右上隅にある [Add Fleet Server] をクリックします。
-
[Add Fleet Server integration] ページで、インテグレーションの名前を入力し、エージェントポリシー
netflow-logを選択します。 -
右下隅にある [Save and continue] をクリックします。表示されるダイアログボックスで、[Add Elastic Agent later] をクリックします。
ステップ3:NetFlow Records インテグレーションの作成
-
netflow-log エージェントポリシーの 統合 タブで、[Add integration] をクリックします。
-
[Browse integrations] タブで、NetFlow Records を検索してクリックします。
-
NetFlow Records インテグレーションをインストールします。
-
[NetFlow Records] ページで、設定 タブをクリックします。
-
[Install NetFlow Records assets] をクリックし、表示されるダイアログボックスで [Install NetFlow Records] をクリックします。
説明インテグレーションがインストールされると、[Settings] タブにバージョンが表示されます。
-
-
ページの右上隅にある [Add NetFlow Records] をクリックします。
-
[Add NetFlow Records integration] ページで、インテグレーションを設定します。
-
インテグレーション設定 で、[Integration name] に
netflow-1を入力します。 -
[Collect NetFlow logs] の横にある [Change defaults] をクリックします。UDP リスニングアドレスとして
0.0.0.0を入力し、UDP ポートはデフォルトの 2055 のままにします。 -
[Where to add this integration] の [Existing hosts] タブで、エージェントポリシー
netflow-logを選択します。
-
-
完了したら、右下隅にある [Save and continue] をクリックします。表示されるダイアログボックスで、[Add Elastic Agent later] をクリックします。
エージェントの追加と NetFlow サービスの開始
ステップ1:Fleet Server ホストの設定
-
Kibana コンソールにログインします。詳細については、「Kibana コンソールへのログイン」をご参照ください。
-
> [Management] > [Fleet] に移動します。 -
[Fleet] ページで、設定 タブをクリックします。
-
[Fleet Server hosts] で、ホストの編集 をクリックします。
-
[Fleet Server hosts] パネルで、ソースサーバーのプライベート IP アドレスを
https://<private_ip>:<port>形式で入力します (例:https://172.16.*.***:8220)。説明このトピックでは、プライベート IP アドレスは ECS インスタンスのプライマリプライベート IP アドレスです。設定の詳細については、「Fleet Server ホスト」をご参照ください。
-
出力 セクションの Actions 列で、編集アイコン (
) をクリックします。 -
[Edit output] パネルで、Alibaba Cloud Elasticsearch クラスターのプライベート IP アドレスを
http://<private_address>:<port>形式で入力します (例:http://es-cn-xxx.elasticsearch.aliyuncs.com:9200)。 -
[Save and apply settings] をクリックし、表示されるダイアログボックスで 保存とデプロイ をクリックします。
-
ステップ2:Elastic Agent の追加
Elastic Agent を Fleet Server に追加します。
複数のサーバーから NetFlow トラフィックを収集するには、これらの手順を繰り返して、単一の Fleet Server に複数のエージェントを追加します。各エージェントはそれぞれのサーバーからデータを収集し、Fleet Server がすべてのエージェントを一元管理します。
-
> [Management] > [Fleet] に移動します。 -
[Agent policies] タブをクリックします。
-
netflow-log エージェントポリシーの Actions 列で、
> [Add agent] を選択します。 -
[Add agent] パネルの [Enroll in Fleet Server] で、デフォルトのエージェントポリシーが
netflow-logであることを確認します。 -
[Choose a security deployment mode] で、デフォルトの選択である [Quick start] のままにします。
-
[Add Fleet Server host] で、右側の モニターホストを追加 をクリックします。
-
[Generate service token] で、[Generate service token] をクリックします。
-
[Install Fleet Server to a centralized host] で、自動生成されたコードブロックをコピーし、ECS インスタンスで実行します。
curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.5.1-linux-x86_64.tar.gz tar xzvf elastic-agent-8.5.1-linux-x86_64.tar.gz cd elastic-agent-8.5.1-linux-x86_64 sudo ./elastic-agent install \ --fleet-server-es=http://es-cn-xxx.elasticsearch.aliyuncs.com:9200 \ --fleet-server-service-token=AAEAAWVsYXN0aWMvZmxlZXQtc2VydmVyL3Rva2xxx \ --fleet-server-policy=e4b6f6b0-1ef9-11ee-xxxコマンドが完了すると、
Successfullyを含むメッセージが表示され、Elastic Agent が ECS インスタンスにインストールされて実行中であることが確認されます。
ステップ3:NetFlow サービスの設定
この例では、softflowd を使用して NetFlow ログを生成します。ECS インスタンスで次のコマンドを実行して、softflowd をインストールし、起動します。
-
softflowd ソースパッケージをダウンロードします。
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/softflowd/softflowd-0.9.9.tar.gz -
libpcap-devel 依存関係をインストールします。
yum install libpcap-devel -
softflowd をコンパイルしてインストールします。
tar -xvf softflowd-0.9.9.tar.gz cd softflowd-0.9.9 ./configure make make install -
softflowd を実行します。
nohup softflowd -v 9 -D -i eth0 -t maxlife=1 -n localhost:2055 >/dev/null 2>&1 &
データの表示
次のいずれかの方法で NetFlow データを表示できます。
-
方法1:ダッシュボードで NetFlow データを表示する
-
> [Management] > [Fleet] に移動します。 -
[Fleet] ページで、データストリーム タブをクリックします。NetFlow 関連のデータがデータセットのリストに表示されます。
-
対象のデータセットの Actions 列で、
> [View dashboards] を選択し、表示するダッシュボードを選択します。たとえば、[Logs Netflow] Overviewを選択します。
-
-
方法2:Discover でデータを表示する
> [Analytics] > [Discover] に移動してデータを表示します。 -
方法3:開発者ツールを使用してデータをクエリする
-
> [Management] > Developer Tools に移動します。 -
次のコマンドを実行して NetFlow データを表示します。
GET logs-netflow.log-default/_search
-