エンジニアリング

Elastic Agent&Fleetで、システムをElasticに簡単に接続

本日Elasticは、3つの重要な機能強化をリリースしたことを発表しました。一連のリリースにより、ユーザーは、使用するシステムやアプリケーションをElastic Stackに一層手軽に統合できるようになっています。1つ目は、一般提供(GA)に移行したElastic Agentのリリースです。Elastic Agentは、オブザーバビリティとセキュリティの双方に対応する単体の一元的なエージェントです。この一元的なエージェントを活用すると、新規データの導入に伴う設定やインストールの手順が減り、プロセスがシンプルになります。

2つ目は新たにKibanaに登場したアプリで、今回GAリリースに移行したFleetです。Fleetを使うと、多数のElastic Agentからなる集団全体を、一元的に管理することができます。Fleetはコントロールプレーンとして動作し、エージェントのステータスをリアルタイムに表示します。さらにエージェントのアップグレード、各ホストでのクエリ実行、セキュリティ脅威の阻止をリモートで実施します。

3つ目に、Elasticで初めてGAで提供される一連の統合機能とともに、IntegrationsアプリがKibanaに登場しました。これにより、ユーザーはクリック1つでシステムやアプリケーションをElastic Stackに統合できます。一連の統合機能は、設定不要のログパース機能やダッシュボード、機械学習ジョブなども提供します。Fleetを使って統合機能をElastic Agentにデプロイし、わずか数秒でデータからインサイトを抽出することが可能となっています。

大規模なデータインジェストに伴う課題

エージェントを大規模にデプロイ、管理する作業に時間がかかる問題は、監視ソリューションやセキュリティソリューションを採用する上で重要な課題となっています。重要なビジネス目標に遅延をもたらし、また総所有コストの増大要因になるためです。大規模組織の場合、数百ものチームが数十万ものサーバーやノートPC、アプリケーションを使用することもあります。複数のチームと環境全体にわたって、検証からカスタマイズ、オペレーション、セキュリティコンプライアンス認証、デプロイの全工程を遂行すると、何か月もかかりかねません。また監視やセキュリティ用のインフラに問題が発生すれば、企業に劇的で致命的な影響が生じる可能性があります。

Elastic Stackにデータをシッピングする既存のソリューションとして、ElasticはBeatsを提供しています。Beatsはsyslogのような汎用ソリューションよりも、多くのことを簡単に行うことができます。一方で現在Elasticが、APMエージェント群とAPM Server、Endpoint Securityなどに加えて、合計7種類のBeatsが提供していることも事実です。多数のバイナリをインストールする場合、特にエンタープライズ環境で、各バイナリに対し、設定管理ソリューションや、プログレッシブなデプロイ、変更管理、監査要件によるインストールが求められるケースの作業は非常に複雑です。

これとは別に、新規のデータソース向けに統合機能を追加するプロセスにも課題があります。これまで、ユーザーはYAMLファイルを編集し、それをすべてのサーバーにアップロードする必要がありました。この設定のプッシュには、AnsibleやChefなどのツールがしばしば使われます。残念ながら、このようにサードパーティツールを使用したり、複数のチームにわたり専門的な技術者と協働する必要が多く生じたりするために、新規データソースを追加するプロセスが複雑になっている側面がありました。また複数のネットワークとデータセンターにわたり、数百、数千というエージェントが稼働しているようなケースでは、作業は一層複雑になります。

エージェント1つですべて統括

Elastic Agentはログ、メトリック、APMトレース、シンセティックデータに対応し、システムの保護も実施する単一の、一元的なエージェントです。このエージェントは1つのコマンドでインストールでき、シンプルに導入して使いはじめることができます。Elastic Agentの導入後は複数のBeatsをデプロイする必要がありません。またデプロイだけでなく、長期的にインフラ全体での保守作業が短縮化されます。Elastic Agentは、単一の、一元的な設定画面を通じて管理可能です。FilebeatやMetricbeatなどと異なり、複数の設定ファイルを編集する必要がなく、統合機能の追加手順もずっと簡単です。設定のアップデートはFleetから実施でき、統合やデータインジェスト、エージェントの動作のカスタマイズをすばやく実行できます。

統合と設定が手軽に

Kibana向けのWebベースUI、Integrationアプリが新登場しました。人気のサービスやプラットフォーム向けに統合機能を追加したり、管理したりできます。一連の統合機能を活用して新規データソースを簡単に追加できるほか、ダッシュボードや可視化、パイプラインなど設定不要で使えるアセットをシッピングして、ログから構造化フィールドを抽出することも可能です。各種設定は自動で完了するため、ユーザーがシステム設定に手間取ることがありません。設定が手軽になり、わずか数秒でインサイト抽出が完了します。 

Elasticが今回新たにリリースしたGAの統合機能は、サーバー、ノートPC、コンテナー、VMなどを含むシステムインフラの監視に対応します。さらにセキュリティ脅威からシステムを保護し、セキュリティイベントを分析できます。Elasticは現在70以上の統合機能を提供しており、今後の拡充も予定しています。

blog-agent-fleet-ga-1.png

今回Elasticは、ユーザーのシステムおよびアプリケーションとの統合を設定するWebベースUIもリリースしています。無関係な設定を含む長いYAMLファイルを編集する作業と比べてWeb UIは簡潔に使用でき、ガイダンスや検証機能も利用可能です。一般的なログやメトリックのロケーション向けにデフォルトの値があらかじめ入力されており、ユーザーはクリック1つで統合機能をデプロイできます。

blog-agent-fleet-ga-2.png

このNginx統合機能は、単体のエージェント、またはエージェントのグループにポリシーの一部として追加することが可能です。エージェントポリシーを使う場合、対象数を問わず、同一の統合機能を複数のエージェントに一律に適用でき、多数のエージェントの大規模な管理が簡単になります。エージェントは、次にFleetにチェックインするタイミングでアップデートを受信します。

スキルの高いユーザーはYAMLファイルやAPI、コードとしてのインフラ(IaaC)を好むことがありますが、FleetはAPIを優先して設計されており、あらゆる操作をUIだけでなく、APIで実行することが可能です。つまり、API経由で他のシステムと統合できます。またFleetを使用せず、スタンドアローンモードでYAMLを使用してElastic Agentを設定することも可能です。

Fleetを一元管理

コントロールプレーンとして動作するFleetを使うと、エージェントの大規模グループを一元的に管理できます。たとえばFleetの画面で、すべてのエージェントの状態を確認できます。オンライン、かつ状態が良好なエージェントがどれか、状態が不良なものはどれかといったことや、最終チェックインの時刻も把握できます。エージェントバイナリ、およびエージェントポリシーのバージョンも表示されます。

blog-agent-fleet-ga-3.png

ユーザーはエージェントポリシーを使用して、複数のエージェントグループを定義できます。ユーザーが1つのエージェントポリシーを変更すると、次にチェックインするタイミングですべてのエージェントがアップデートを受信します。つまり、SSHやAnsible playbooks、その他の設定手法を用いてアップデートを各エージェントに配布する必要はありません。

またFleetのもう1つのメリットとして、エージェントをより安全に保つことができるという側面があります。Fleetは各エージェントに対し、実行中の統合に必要とされる最小権限のElasticsearch APIキーを自動で生成します。このAPIキーはエージェントベースで取り消し可能であり、ユーザーはホストごとに広範な権限を持つ共有の資格情報を格納する必要がなくなります。さらにElastic AgentのEndpoint Securityを実行すると、ホストで活動する脅威に対して保護を講じることができます。

Fleet Serverは、Elastic Agentsの通信を管理するインフラストラクチャーコンポーネントです。Fleet Serverはコントロールプレーンとしてエージェントをアップデートするほか、複数のホストを横断してosqueryを実行する、あるいはネットワークレイヤーでホストを切り離してセキュリティ脅威を封じ込めるなどのアクションを実行します。一元的にデプロイすることも、プライベートネットワークのエッジにデプロイすることも可能です。 

データストリームで、データ管理を簡単に

Elastic Agentsは、新たなデータストリームネーミングスキームを用いて収集データを格納します。したがってBeatsと比較すると、データを格納するインデックスがより細かくなります。この結果、インデックスごとのフィールド数が少なくなるほか、予測入力の高速化、格納効率の向上、データボリュームのソースに対する可視性向上、ライフサイクル管理ポリシーとインデックス権限に対する管理性といった多数のメリットがもたらされます。名前空間では、環境ごとやチーム名ごとなど、お好みの方法でデータをグループ化することができます。

blog-agent-fleet-ga-4.png

Beatsユーザーはどうすればいい?

Beatsはすぐに消えるわけではありません。今後も使い続けることができ、Elastic Agentとも併用できます。システムをBeatsからElastic Agentに切り替える場合も、2つを並列で実行できます。

Elastic AgentとFleetは驚くほど使い勝手にすぐれますが、ときにはBeatsを使う方が適切というケースもあります。Elasticは今後、このギャップを徐々になくしていく予定です。Fleetは現時点でまだLogstashやKafkaへのアウトプットをサポートしていません。これにはスーパーユーザーロールと、Elasticパッケージレジストリから統合機能リストをダウンロードするためのインターネット接続が必要です。この他にElasticは、現在も維持されているいくつかのBeatsモジュールを統合機能に転換する作業を継続しています。BeatsとElastic Agentの違いについて詳しくは、比較ページをご覧ください。

試してみる

Kibanaを開いて[メインメニュー]>[Integrationsアプリ]に進み、ぜひ新機能に触れてみてください。統合機能リストを確認できるほか、アプリにElastic Agentsを追加するプロセスのガイダンスが表示されます。別の方法として、Fleetアプリを開き、Elastic Agentsを直接追加するやり方もあります。

Elastic AgentとFleetはいずれも、無料かつオープンに提供されています。Elasticはユーザーコミュニティのコラボレーションを積極的に支援しており、GitHubにFleetElastic Agentのコードを公開中です。Elasticの開発を前進させる、このコミュニティへのご参加をお待ちしております。

このリリース記事を通じて、Elastic Stackにお使いのシステムやアプリを統合する作業が簡単になったことをお伝えできましたら幸いです。また皆様からのフィードバックは、プロダクトやソリューションの継続的な改善に役立てられています。新機能へのご意見を、ぜひディスカッションフォーラムへお寄せください。