はじめに
弾性スタック 、以前は ELKと呼ばれていました スタック は、ログファイルを取り込み、表示、および管理するための一般的なツールスイートです。オープンソースソフトウェアとして、無料でダウンロードして使用できます(ただし、有料バージョンとクラウドホストバージョンも利用できます)。
このチュートリアルでは、基本的なELKスタックの使用法と機能を紹介します。
前提条件
- Elasticsearchがインストールされているシステム
ELKスタックとは何ですか?
ELKは、Elasticsearch、Logstash、およびKibanaの略です。以前のバージョンでは、ELKスタックのコアコンポーネントは次のとおりでした:
- Elasticsearch –ELKのコアコンポーネント。ログファイルの検索可能なデータベースとして機能します。
- ログスタッシュ –データを取得するためのパイプライン。多くの異なるソースからデータを取得してからElasticsearchに送信するように構成できます。
- キバナ –視覚化ツール。 Webブラウザインターフェイスを使用してデータを整理および表示します。
Beatsと呼ばれる追加のソフトウェアパッケージ 新しい追加です。これらは、個々のタスクに特化した、より小さなデータ収集アプリケーションです。さまざまな目的のために多くの異なるBeatsアプリケーションがあります。たとえば、 Filebeat Packetbeat がログファイルを収集するために使用されます ネットワークトラフィックの分析に使用されます。
ELKの頭字語が急速に成長しているため、 Elastic Stack 名前のより満足のいくスケーラブルなオプションになりました。ただし、ELKとElasticStackは同じ意味で使用されます。
ELKスタックを使用する理由
ELKスタックは、柔軟で信頼性の高いデータ解析環境を作成します。組織、特にクラウドベースのインフラストラクチャを備えた組織は、Elasticスタックを実装して、次の問題に対処することでメリットを得ることができます。
- さまざまなサーバーやアプリケーションで作業すると、人間が読める形式ではない大量のログデータが作成されます。 ELKスタックは、収集のための強力な集中型プラットフォームとして機能します および非構造化情報の管理 、意思決定プロセスで有用な資産に変換します。
- 基本機能を備えたELKスタックはオープンソースであるため、費用対効果が高くなります スタートアップと確立されたビジネスのためのソリューション。
- Elasticスタックは、パフォーマンスとセキュリティを監視するための堅牢なプラットフォームを提供し、最大の稼働時間を保証します。 および規制コンプライアンス 。
Elasticスタックは、ログデータで業界のギャップに対処します。このソフトウェアは、複数のソースからのデータをスケーラブルな一元化されたデータベースに確実に解析できるため、履歴分析とリアルタイム分析の両方が可能になります。
Elastic Stackはどのように機能しますか?
Elasticスタックは、特定の論理的な手順に従います。これらの手順はすべて構成可能です。
1.コンピューターまたはサーバーがログファイルを作成します。すべてのコンピューターには、システム上のイベントを読みにくい形式で記録するログファイルがあります。サーバークラスタなどの一部のシステムは、大量のログファイルを生成します。
ただし、Elastic Stackは、スケーラブルな量のデータの管理に役立つように設計されています。
2.利用可能なさまざまな情報ファイルは、 Beatsによって収集されます 応用。さまざまなビート サーバーのさまざまな部分に連絡し、ファイルを読み取って出荷します。
一部のユーザーは、Beatsを完全にスキップして、Logstashを直接使用する場合があります。他の人はBeatsをElasticsearchに直接接続するかもしれません。
3.ログスタッシュ さまざまなビートからデータを取得して収集するように構成されています アプリケーション(またはさまざまなソースから直接)
大規模な構成では、 Logstash 複数のシステムからのデータをフィルタリングし、情報を1つの場所に収集できます。
4. Elasticsearch データを格納するためのスケーラブルで検索可能なデータベースとして使用されます。 Elasticsearch Logstashがある倉庫です またはビート すべてのデータをパイプします。
5.最後に、キバナ 収集されたデータを確認するためのユーザーフレンドリーなインターフェースを提供します。
高度に構成可能であるため、ニーズに合わせてメトリックを調整できます。 Kibanaは、データのパターンを視覚化して解釈するためのグラフやその他のツールも提供しています。
ELKスタックサポートアプリケーション
追加のサードパーティアプリケーションはElasticStackを強化し、より幅広いユースケースの可能性を提供します。 ELKスタックでサポートされている外部アプリケーションは次のとおりです。
- Apache Kafka
Kafkaはリアルタイムストリーミング配信プラットフォームです。つまり、一度に複数のデータソースを読み取ることができます。 Kafkaはデータバッファとして機能し、ファイルをすばやくストリーミングする際のデータの損失や中断を防ぐのに役立ちます。
- Redis
Redisは、驚異的な読み取り/書き込み速度とさまざまなデータ型を備えたNoSQLKey-Valueデータベースです。 Elasticスタックに追加されると、Redisはデータストリームスパイクのバッファーとして機能することが多く、データが失われないようにします。
- Hadoop
Hadoopは、大規模なバッチ処理データストレージシステムです。 HadoopからリアルタイムのElasticsearchエンジンにデータのインデックスを作成すると、インタラクティブな双方向のデータ検出および視覚化プラットフォームが作成されます。
Hadoopのサポートは、Elasticsearch-Hadoopコネクタを介して提供され、Spark、Streaming、Hive、Storm、MapReduce、およびその他のツールを完全にサポートします。
- RabbitMQ
RabbitMQはメッセージングプラットフォームです。 Elastic Stackユーザーは、このソフトウェアを使用して、ログファイルの安定したバッファ付きキューを構築します。
- Nginx
Nginxは、リバースプロキシとして設定することもできるWebサーバーとして最もよく知られています。ネットワークトラフィックを管理したり、サーバーとインターネットの間にセキュリティバッファを作成したりするために使用できます。
ELKスタックの長所と短所
Elasticスタックには、特定の利点と欠点があります。
利点
- Elasticスタックとコンポーネントは自由に試して使用できます。
- ELKは、オンプレミスであろうとマネージドサービスとして展開されていようと、多数のホスティングオプションを提供します。
- 複雑なクラウド環境からのロギングを一元化する機能により、高度な検索と、単一のプラットフォーム上の複数のソースからの相関関係の作成が可能になります。
- リアルタイムの分析と視覚化により、洞察の発見にかかる時間が短縮され、継続的な監視が可能になります。
- JavaScript、Python、Perl、Goなどの複数のプログラミング言語に対するクライアントのサポート
デメリット
- スタックのデプロイは複雑なプロセスであり、要件によって異なります。 ElasticスタックをKubernetesにデプロイするためのチュートリアルを確認してください。
- ELKスタックの成長と維持にはコストがかかり、データ量とストレージ時間に基づいたコンピューティングとデータストレージが必要です。
- インデックスの制限が存在しないためにデータ量が増えると、安定性と稼働時間が問題になります。
- データの保持とアーカイブには、複数のノード、コンピューティング能力、および一般的なリソースが必要です。
Elasticsearchの概要
ElasticsearchはElasticStackのコアです。主な仕事は2つあります:
- データの保存とインデックス作成。
- データを取得するための検索エンジン。
Elasticsearchの技術的な詳細は次のとおりです。
- クライアント(Java、PHP、Ruby、C#、Python)の堅牢なプログラミング言語サポート。
- REST APIを使用– Elasticsearch用に作成されたアプリケーションは、Webアプリケーションとの優れた互換性を備えています。
- 応答性の高い結果–ユーザーはほぼリアルタイムでデータを見ることができます。
- 分散アーキテクチャ– Elasticsearchは、多くの異なるサーバー間で実行および接続できます。 Elastic Stackは、インフラストラクチャの成長に合わせて簡単に拡張できます。
- 転置インデックス–本のインデックスのように、Elasticsearchはキーワードでインデックスを作成します。これにより、大規模なデータセットへのクエリを高速化できます。
- シャード–データがサーバーに対して大きすぎる場合、Elasticsearchはデータをシャードと呼ばれるサブセットに分割できます。 。
- 非リレーショナル(NoSQL)– Elasticsearchは、非リレーショナルデータベースを使用して、構造化/表形式のデータストレージの制約から解放されます。
- Apache Lucene –これはElasticsearchのベースとなる基本的な検索エンジンです。
ログスタッシュの概要
Logstashは、さまざまなソースからデータを収集して並べ替えるためのツールです。 Logstashはリモートサーバーにアクセスし、特定のログセットを収集して、Elasticsearchにインポートできます。
データの並べ替え、フィルタリング、整理ができます。さらに、いくつかのデフォルト構成が含まれていますが、独自の構成を作成することもできます。これは、統一された(または読み取り可能な)方法でデータを構造化する場合に特に役立ちます。
Logstashの技術的機能:
- さまざまなデータ形式とソースを受け入れます–これにより、さまざまなデータセットを1つの中央の場所に統合できます。
- データをリアルタイムで操作–データがソースから読み取られると、Logstashはデータを分析し、すぐに再構築します。
- 柔軟な出力– LogstashはElasticsearch用に構築されていますが、多くのオープンソースプロジェクトと同様に、他のユーティリティにエクスポートするように再構成できます。
- プラグインのサポート–Logstashの機能を強化するためにさまざまなアドオンを追加できます。
Kibanaの概要
Elasticsearchをインストールするだけで、コマンドラインからElasticsearchを使用できます。ただし、Kibanaは、データをより直感的に生成および表示するためのグラフィカルインターフェイスを提供します。
技術的な詳細は次のとおりです。
- ダッシュボードインターフェイス–グラフ、データソース、および一目でわかるメトリックを構成します。
- 構成可能なメニュー–データの視覚化とメニューを作成して、データセットをすばやくナビゲートまたは探索します。
- プラグイン– Canvasなどのプラグインを追加すると、構造化されたビューとリアルタイムの監視をグラフィカルインターフェイスに追加できます。
ガイド「完全なKibanaチュートリアルでデータを視覚化およびクエリする」でKibanaの使用方法を学びます。
ビートの概要
Beatsは、監視するシステムで実行されます。データを収集して、LogstashやElasticsearchなどの宛先に送信します。
小さいデータセットを実行している場合は、Beatsを使用してデータをElasticsearchに直接インポートできます。
または、Beatsを使用してデータを管理可能なストリームに分割し、Logstashに解析して、Elasticsearchで読み取ることもできます。
単一のサーバーの場合、Elasticsearch、Kibana、およびいくつかのBeatsをインストールできます。各Beatsはデータを収集し、Elasticsearchに送信します。次に、結果をKibanaで表示します。
または、Beatsを複数のリモートサーバーにインストールしてから、サーバーからデータを収集して解析するようにLogstashを構成することもできます。そのデータはElasticsearchに送信され、Kibanaで表示されるようになります。
ビート | データキャプチャ | 説明 |
---|---|---|
Auditbeat | 監査データ | Linuxのスーパーチャージャーバージョンauditd。 auditd の代わりに、Linuxシステムと直接対話できます。 処理する。すでに監査ルールが設定されている場合、Auditbeatは既存の構成から読み取ります。 |
ファイルビート | ログファイル | システムログファイルを読み取って送信します。ハードウェアイベントやアプリケーションログなどのサーバーログに役立ちます。 |
Functionbeat | クラウドデータ | サーバーレスまたはクラウドインフラストラクチャからデータを送信します。クラウドでホストされるサービスを実行している場合は、それを使用してクラウドからデータを照合し、Elasticsearchにエクスポートします。 |
ハートビート | 可用性 | 稼働時間と応答時間を表示します。これを使用して、重要なサーバーやその他のシステムを監視し、それらが実行されて利用可能であることを確認します。 |
ジャーナルビート | システム化されたジャーナル | 転送し、systemdジャーナルログを一元化して送信します。 |
メトリックビート | 指標 | メトリックデータ(CPU使用率、メモリ、ディスク使用率、ネットワーク帯域幅)を読み取ります。これを過給されたシステムリソースモニターとして使用します。 |
パケットビート | ネットワークトラフィック | ネットワークトラフィックを分析します。これを使用して、遅延と応答性、または使用状況とトラフィックパターンを監視します。 |
Winlogbeat | Windowsイベントログ | Windowsイベントログからデータを送信します。ログオンイベント、インストールイベント、さらにはハードウェアまたはアプリケーションのエラーを追跡します。 |
ELKスタックのユースケース
さまざまなリソースからのリアルタイムのログ監視により、Elasticスタックに多くのクリエイティブなユースケースが提供されます。
- セキュリティの監視と警告 。サーバー監視およびアラートシステムは、ELKスタックの重要なセキュリティアプリケーションです。異常なリクエストをチェックしたり、リアルタイムのアラートシステムでサーバー攻撃を検出したりすると、被害が発生したらすぐに軽減できます。
- Eコマースソリューション 。全文検索、索引付け、集計、および高速応答により、ユーザーエクスペリエンスが向上します。検索の傾向と行動を視覚的に監視することで、傾向分析を強化できます。
- ウェブスクレイピング 。さまざまなソースから非構造化データを収集、インデックス作成、検索する機能により、ウェブスクレイピングされた情報の収集と視覚化が簡単になります。
- トラフィックの監視 。 Webサイトのトラフィックデータを監視すると、1台のサーバーが過負荷になっていることを示すのに役立ちます。負荷分散アプリケーション(Nginxなど)を実装して、トラフィックを他のサーバーにシフトします。
- エラー検出 。新しいアプリケーションをデプロイする場合は、そのアプリケーションのエラーを監視できます。これらは、バグを修正したり、アプリケーションの設計を改善したりする領域をすばやく特定するのに役立ちます。
Elastic Stackは、問題を解決し、健全なビジネス上の意思決定を行うために使用できるデータを生成します。