ELKスタックチュートリアル:Kibana、 Logstash & Elasticsearch

⚡ スマートサマリー

ELK Stack は、Elasticsearch、 Logstashまた、Kibanaは、マシンデータを収集、保存、検索、視覚化することで、エンジニアリングチームにサーバーやアプリケーション全体にわたる迅速なトラブルシューティングのための集中ログ記録とリアルタイム分析を提供します。

  • 🧩 スタックロール: Elasticsearchはデータを保存およびインデックス化し、 Logstash Kibanaは、処理ログと出荷ログを処理し、その結果を視覚化します。
  • 🔎 Elasticsearch: LuceneベースのNoSQL検索エンジンで、異種データをインデックス化し、REST APIを通じてほぼリアルタイムで全文検索結果を返します。
  • 🛠️ Logstash: 複数のソースからログを取り込み、フィルタリング、変換してからElasticsearchに供給するパイプライン。
  • 📊 キバナ: インデックス化されたデータを、インタラクティブなチャート、マップ、グラフに変換し、迅速な探索を可能にするウェブダッシュボード。
  • 📦 エラスティックスタック: 軽量なBeatsシッパーはエッジでデータを収集するため、ElasticはELKをElastic Stackに改名した。
  • 🏢 生産用途: NetflixLinkedInやMediumなどは、ログ記録、セキュリティ、監視のために、大規模なクラスター上でELKスタックを実行している。
  • <XNUMXxEXNUMX><XNUMXxEXNUMX><XNUMXxXNUMXA><XNUMXxXNUMX><XNUMXxXNUMXA>️️ ELKとSplunkの比較: ELKは無料のオープンソースソフトウェアである一方、Splunkは処理速度が速く、より幅広い連携機能を備えた商用プラットフォームである。

Kibana、ELK Stack アーキテクチャがどのように機能するかを示しています。 LogstashElasticsearch と連携して、ログ記録と分析を一元化します。

ELKスタックは、集中ログ記録とログ分析のための最も広く使用されているオープンソースソリューションの1つです。このELKスタックチュートリアルでは、Elasticsearch、 LogstashKibanaとは何か、これら3つのツールがどのように連携するのか、そしてこのプラットフォームが実際の監視や可観測性に関する作業でどのように使用されているのかについて説明します。

ELK スタックとは何ですか?

その ELKスタック は、Elasticsearch という 3 つのオープンソース製品のコレクションです。 LogstashKibanaと連携することで、サーバーやアプリケーションの問題を特定するための集中ログ管理が可能になります。すべてのログを1か所で検索できるため、問題解決に役立ちます。また、特定の期間内に複数のサーバー間でログを関連付けることもできます。

  • E Elasticsearchの略で、ログの保存に使用されます。
  • L の略 Logstash: 船に使用pingログの処理と保存。
  • K Kibana の略です。 可視化ツール NginxまたはApacheを介してホストされる(Webインターフェース)。

Elasticsearch、 Logstash、および Kibana はすべて、という会社によって開発、管理、保守されています。 エラスティック.

ELKスタックは、あらゆるソースからあらゆる形式のデータを取り込み、そのデータをリアルタイムで検索、分析、視覚化できるように設計されています。

ELKスタック Archi構造

スタックとは何かを理解したところで、このセクションではELKアーキテクチャと、コンポーネント間でのデータの流れについて説明します。

ELKパイプラインは明確な順序で動作し、各ツールにはそれぞれ専用の役割があります。

  • ログ: 分析が必要なサーバーログが特定されました。
  • Logstash: ログとイベントデータを収集し、解析および変換します。
  • Elasticsearch: 変換されたデータ Logstash 保存、検索、インデックス化されます。
  • キバナ: Elasticsearchデータベースを使用して、データの探索、可視化、および分析結果の共有を行います。

しかし、データ収集のために、Beatsと呼ばれる4つ目のコンポーネントが追加されることがよくあります。Beatsはサーバーにインストールされる軽量なデータ転送ツールであり、Beatsの追加により、ElasticはELKをElastic Stackに改名しました。

ELKスタックのアーキテクチャ図 LogstashElasticsearch、Kibanaのデータフロー

非常に大量のデータを扱う場合、バッファリングと耐障害性を高めるために、パイプラインの前にKafkaやRabbitMQを追加することがあります。

セキュリティを強化するために、Nginxなどのリバースプロキシをスタックの前に配置することができます。

データ収集のためにBeatsを追加したELKスタックアーキテクチャ

アーキテクチャを念頭に置き、以降のセクションでは、スタックに含まれる各オープンソース製品を詳しく見ていきます。

エラスティックサーチとは?

Elasticsearch は、 NoSQLデータベース Lucene検索エンジンをベースに、RESTful APIで構築されています。シンプルな導入、高い信頼性、容易な管理を実現し、すべてのデータを一元的に保存するため、高度なクエリの実行や迅速なドキュメント検索が可能です。

Elasticsearchは、大量のデータを保存、検索、分析する機能も備えています。高度な検索要件を持つアプリケーションの基盤となるエンジンとして最もよく利用されています。

Elasticsearchは、高速検索に加えて分析機能や多くの高度な機能を備えているため、最新のWebアプリケーションやモバイルアプリケーション向けの検索プラットフォームで広く採用されています。

Elasticsearchの機能

Elasticsearchは、データのインデックス作成と検索のための豊富な機能を提供します。

  • オープンソースの検索サーバー Java.
  • あらゆる種類の異種データをインデックス化できます。
  • JSON形式で出力されるREST APIウェブインターフェースを提供します。
  • 全文検索。
  • ほぼリアルタイム(NRT)検索。
  • シャーディングされ、複製され、検索可能なJSONドキュメントストア。
  • スキーマレス、RESTおよびJSONベースの分散型ドキュメントストア。
  • 多言語対応および位置情報サポート。

Elasticsearch の利点

  • スキーマレスデータを保存し、データ用のスキーマを作成することもできます。
  • 複数ドキュメントAPIを使用して、レコードを1つずつ操作できます。
  • データ分析のためのデータフィルタリングとクエリをサポートします。
  • Apache Luceneをベースにしており、RESTful APIを提供します。
  • リアルタイムのインデックス作成と高速検索を実現するため、水平方向の拡張性、信頼性、マルチテナント機能を提供します。
  • 縦方向と横方向の両方にサイズ調整できます。

以下の表は、Elasticsearchを使用する際に遭遇する主要な用語を説明しています。

契約期間 使用法
Cluster クラスターとは、データを保持し、インデックス作成機能と検索機能を統合的に提供するノードの集合体です。
Node ノードとは、単一のElasticsearchインスタンスのことです。Elasticsearchインスタンスが起動すると、ノードが作成されます。
目次 インデックスとは、顧客データや製品カタログなど、類似した特性を持つドキュメントの集合です。インデックス作成、検索、更新、削除といった操作に役立ち、1つのクラスタ内に複数のインデックスを定義できます。
ドキュメント ドキュメントは、インデックス化可能な情報の基本単位です。JSON形式のキーと値のペアで表現され、すべてのドキュメントにはタイプと一意のIDが関連付けられています。
シャード インデックスは、データを分散させるために複数のシャードに分割できます。シャードはインデックスの最小単位であり、ノードを追加するにつれてクラスタ全体に分散させることができます。

何ですか Logstash?

Logstash これは、スタックにおけるデータ収集パイプラインツールです。データ入力を収集し、Elasticsearchに供給することで、さまざまなソースからあらゆる種類のデータを収集し、後続の処理に利用できるようにします。

Logstash さまざまなソースからのデータを統合し、選択した宛先に正規化できます。これにより、幅広い分析や視覚化のユースケースに対応できるよう、すべてのデータをクリーンアップし、誰もが利用できるようにすることができます。

これは XNUMX つのコンポーネントで構成されます。

  • 入力: ログを入力として受け取り、機械が読み取り可能な形式に変換します。
  • フィルタ: ある事象に対して特定のアクションを実行するための条件の集合。
  • 出力: 処理された各イベントまたはログをルーティングする意思決定者。

の特長 Logstash

Logstash ログ処理を柔軟にするいくつかの機能が含まれています。

  • イベントは内部キューを使用して各フェーズを通過します。
  • ログへの入力を複数指定できます。
  • ログのフィルタリングと解析をサポートします。

のメリット Logstash

  • データ処理を一元化します。
  • 構造化データと非構造化データ、およびイベントの幅広い種類を分析します。
  • 様々な種類の入力ソースやプラットフォームと接続するためのプラグインを提供します。

キバナとは何ですか?

Kibanaは、ELKスタックを完成させるデータ可視化ツールです。Elasticsearchドキュメントを可視化するために使用され、インタラクティブな図、地理空間データ、グラフなどを通じて、開発者がデータに関する洞察を迅速に得られるよう支援します。これにより、複雑なクエリも容易に理解できます。

Kibana を使用すると、Elasticsearch インデックスに保存されているデータを検索、表示、操作できます。また、高度な操作を実行するのにも役立ちます。 データ分析 そして、データをさまざまな表、グラフ、地図で提示してください。

Kibanaは、データを検索するための複数の方法をサポートしています。最も一般的な検索タイプは以下のとおりです。

検索の種類 使用法
フリーテキスト検索 特定の文字列を検索するために使用されます。
フィールドレベルの検索 特定のフィールド内で文字列を検索するために使用されます。
論理的なステートメント 検索結果を論理的なステートメントにまとめるために使用されます。
近接検索 特定の文字の近接範囲内にある語句を検索するために使用されます。

Kibanaは、インデックス付きデータを探索するための強力な機能も多数提供しています。

  • Elasticsearchクラスターからインデックス化された情報を視覚化する、強力なフロントエンドダッシュボード。
  • インデックス化された情報のリアルタイム検索を可能にします。
  • Elasticsearchに保存されているデータを検索、表示、操作できます。
  • データに対してクエリを実行し、結果をグラフ、表、地図で視覚化します。
  • データを細かく分析できる設定可能なダッシュボード Logstash Elasticsearchにログが保存されます。
  • グラフやチャートなどの形式で過去のデータを提供します。
  • 設定が容易なリアルタイムダッシュボードを提供します。

Kibanaの利点と欠点

他のツールと同様に、Kibanaにもその人気を説明する明確な強みがあります。

  • データの視覚化が容易。
  • Elasticsearchと完全に統合されています。
  • 専用の可視化ツールとして機能します。
  • リアルタイム分析、グラフ作成、要約、デバッグ機能を提供します。
  • 直感的で使いやすいインターフェースを提供します。
  • 検索したログのスナップショットを共有できます。
  • 複数のダッシュボードを保存および管理できます。

また、留意すべきいくつかの制限事項もあります。

  • データソースとしてElasticsearchのみに対応しています。
  • 複雑なダッシュボードの構築と調整には、かなりの学習期間が必要となる場合がある。

なぜログ分析を行うのか?

クラウドベースのインフラストラクチャでは、パフォーマンスと分離性は非常に重要です。

クラウド上の仮想マシンのパフォーマンスは、特定の負荷、環境、アクティブユーザー数によって変動するため、信頼性やノード障害が重大な問題となる可能性があります。

A ログ管理プラットフォーム これらの問題をすべて監視できます。また、オペレーティングシステムのログ、トラフィック分析用の Nginx および IIS Web サーバー ログ、アプリケーション ログ、および AWS で生成されたログを処理できます (Amazon ウェブサービス).

最終的に、ログ管理は DevOps エンジニアやシステム管理者は、データに基づいたより的確な意思決定を行うことができる。そのため、Elastic Stackなどのツールを用いたログ分析が不可欠となっている。

ELK 対 Splunk

よくある質問は、ELKスタックは Splunk人気のある市販の代替品です。以下の表に主な違いをまとめました。

ELK Splunk
ELKはオープンソースのツールです。 Splunk は商用ツールです。
ELKは提供していません Solaris Kibanaのおかげで、持ち運びが容易になった。 Splunk のオファー Solaris 移植性。
処理速度は厳しく制限されています。 正確かつ迅速な処理を提供します。
ELK は Elasticsearch と ELK を組み合わせたテクノロジー スタックです。 Logstash、そしてKibana。 Splunkは、オンプレミス型とクラウド型の両方のソリューションを提供する独自のツールです。
ELKスタックでは、検索、分析、および視覚化は、スタックがセットアップされた後にのみ可能になります。 Splunkは、すぐに使える完全なデータ管理パッケージです。
ELKは、他のツールとの組み込み統合機能が限定的に提供されています。 Splunkは、他のツールとの連携を設定する際に役立ちます。

ケーススタディ

多くの有名企業が、大規模なログ記録と分析を実行するためにELKスタックを利用しています。以下の例は、本番環境でのELKスタックの利用例を示しています。

Netflix

Netflix 同社は、顧客サービス業務のセキュリティログを監視および分析するためにELKスタックに大きく依存している。このプラットフォームは、 Netflix 約800個のノードで構成される15以上のクラスターにわたって、文書のインデックス作成、保存、検索を行う。

LinkedIn

プロフェッショナル向けソーシャルネットワーキングサイトのLinkedInは、パフォーマンスとセキュリティの監視にELKスタックを使用しています。同社のチームはELKとKafkaを統合してリアルタイムで負荷を処理しており、その運用は6つのデータセンターにまたがる100以上のクラスターに及んでいます。

Tripwireの

世界的なセキュリティ情報およびイベント管理(SIEM)プロバイダーであるTripwireは、情報パケットログの分析をサポートするためにELKスタックを使用しています。

技法

人気のブログ公開プラットフォームである Medium は、ELK スタックを使用して本番環境の問題をデバッグし、 DynamoDB ホットスポット。このシステムのおかげで、同社は毎週25万人のユニークユーザーと数千件の新しい投稿をサポートできるようになった。

ELKスタックの利点と欠点

優位性

ELKスタックには、広く採用されている理由となるいくつかの利点があります。

  • 企業内の様々なアプリケーションからのログが単一のELKインスタンスに集約される場合に、最も効果を発揮します。
  • これにより、単一のインスタンスから豊富な洞察が得られ、数百もの個別のデータソースにログインする必要がなくなります。
  • 迅速なオンプレミスインストール。
  • 導入が容易で、縦横どちらの方向にも拡張可能です。
  • ElasticはRubyを含む多くの言語クライアントを提供しています。 PythonPHP、Perl、.NET、 Java, Java脚本。
  • 多くのプログラミング言語やスクリプト言語に対応したライブラリが利用可能です。

デメリット

ELKスタックには多くの利点がある一方で、考慮すべきいくつかの欠点もある。

  • より複雑な構成に移行すると、さまざまなコンポーネントの管理が難しくなる可能性がある。
  • 習得にはかなりの時間がかかるので、経験を積むにつれて試行錯誤を繰り返すことになるでしょう。

よくあるご質問

Beatsは、サーバーにエージェントとしてインストールされる軽量のオープンソースデータシッパーです。Filebeatはログファイルを転送し、Metricbeatはシステムメトリクスを収集します。データはElasticsearchに直接送信されるか、 Logstashデータ収集のためにBeatsを追加したことで、ElasticはELKスタックをElastic Stackに改名しました。

ELKはElasticsearchの略です。 LogstashそしてKibana。Elasticが軽量データシッパーのファミリーであるBeatsを追加した際、統合された製品はElastic Stackと改名されました。したがって、Elastic Stackとは、上記3つのツールに加えて、Beatsとセキュリティや機械学習などの追加機能を含む製品を指します。

はい。Elasticsearch、 LogstashElasticsearch、Kibanaは無料でダウンロードできます。2024年以降、ElasticはSSPLおよびElastic Licenseに加え、オープンソースのAGPLv3ライセンスでElasticsearchとKibanaを提供しています。機械学習やアラートなどの高度な機能を利用するには、有料のサブスクリプションプランが必要です。

Elasticsearchは、Apache Luceneを基盤としたスキーマ柔軟性の高いドキュメント指向のNoSQLデータベースであり、REST APIを介してクエリを実行します。リレーショナルデータベースは、固定されたテーブル、行、およびACIDトランザクションを備えたSQLを使用します。Elasticsearchは、厳密なトランザクションの一貫性よりも、全文検索とほぼリアルタイムの分析に最適化されています。

プロダクションノードは通常、少なくとも 16 GB の RAM を必要とし、JVM ヒープはメモリの約 50 % に設定され、約 30 GB 未満に保たれます。小規模なテストまたはスタンドアロンのセットアップは、より少ないメモリで動作します。Beats と Logstash Elasticsearchよりもはるかに少ないリソースで済みます。

Grokは Logstash 正規表現に基づいて構築された再利用可能なパターンを使用して、非構造化ログ行を構造化された名前付きフィールドに解析するフィルタプラグイン。tracElasticsearchにインデックスを作成する前に、Webサーバーとアプリケーションのログからタイムスタンプ、IPアドレス、ステータスコードを抽出します。

Elasticsearchには、通常のログ動作をモデル化し、異常を自動的に検出する機械学習機能が組み込まれています。これらのAIOps機能は、類似したメッセージをグループ化し、異常なボリュームを検出し、根本原因分析を高速化することで、解決までの平均時間を短縮します。ただし、エンジニアは、検出されたイベントに対して対応する前に、必ず内容を確認する必要があります。

はい。 AI言語モデルを活用してコードのデバッグからデータの異常検出まで、 (NAIST) と GitHubコパイロット ドラフトできる Logstash 短いプロンプトから、grokパターン、ElasticsearchクエリDSL、Kibana設定を操作できます。AIが古いフィールド名や非推奨の構文を参照する可能性があるため、生成されたパイプラインは必ずテストしてください。