1. Elastic Stackとは
Elastic Stackとは、elasticが提供する検索や分析、可視化のための検索プラットフォームです。
Elastic Stackは以下で構成されています。
- Elasticsearch:心臓部となるJSONベースの検索/分析エンジン
- Kibana:検索、可視化用のUI
- Beats:アプリやインフラの統計情報等のデータ収集ツール
- Logstash:データ収集パイプライン
2.Elasticsearchとは
Elasticsearchとは、Elastic社が提供しているLuceneベースの全文検索エンジンです。
大容量のデータの中から必要なデータを高速で取り出すことができます。
Elasticsearchに格納されたデータは、Elasticsearch API を使用してドキュメントの検索と取得ができます。
API・Logstash・Amazon Kinesis Firehoseといった取り込みツールを使用し、JSONドキュメント形式でデータをElasticSearchへ送信することが可能です。
その他にも、Java、Python、PHPなどの言語をサポートしている。
Elasticsearchは、事前のデータマッピング(スキーマ定義)を行わないでデータ投入を始めることができます。
3.基本概念
説明 | |
---|---|
クラスタ | 可用性・耐障害性を実現するため、複数のサーバー上で実行。クラスタ1つ以上のノード(Elastic Server)で構成される。Elasticsearchは検索トラフィックの増加とデータ量や書き込み速度の分散をノードを増やすことで対応することができる |
ノード | ノードは、Elasticsearch のプロセス(≒ サーバー)です。基本できには1つのサーバーに、1つのElasticsearch を稼働するので、ノード数=サーバー数となります。 |
インデックス | ドキュメント(データ)を保存する場所で、RDBでいうDatabase。1つのクラスタに複数のインデックスを作成することができる。 |
タイプ | ドキュメントの構成やフィールド型などの定義。RDBのTableに相当。1つのインデックスに複数のタイプを作成することができる。 |
ドキュメント | RDBのレコード(データ)に相当。ドキュメントは複数のフィールドを持っている。JSON形式の情報を格納する。また、ドキュメントはタイプ内で一意のタイプIDを持つ。ドキュメントはJSONのため、フィールドと値を持つ。 |
シャード | 大量のデータを使用する際、それぞれのノードでデータを分割して保持。その際にシャードと呼ばれるインデックスの一部で分割。 |
レプリカ | それぞれのノードにはシャードのレプリカが存在。更新はプライマリのシャードに対して行われるが、万が一プライマリのシャードが失われると新しくレプリカのシャードがプライマリとなる。 |
Elasticsearch の物理的なインデックスは、クラスタ、ノード、シャード の3つの要素から構成されている。
4.Kibanaとは
Kibanaとは、Elastic社が開発したログデータの可視化ツール。
Kibanaの主な3つの機能
- Elasticsearchのデータを検索し、視覚的に優れたダッシュボードを構築
- UIによるセキュリティ設定の管理、ユーザーロールの割り当て、スナップショットの作成、データのロールアップの実行
- ログ分析からドキュメント検出、SIEM(セキュリティ情報&イベント管理)まで、あらゆる"Elastic Stack"の機能にアクセスするためのポータル
5.Logstashとは
Logstashとは、ログデータだけではなく様々な形式のデータを収集・変換し、任意の場所に保管することができるオープンソースソフトウェアである。Logstashを利用すると、ログファイルに溜まっているデータを解析して、データベースへ格納するなど、用途にあった形にデータを変換・保存することができる。ElasticsearchにLogstashで解析した情報を保存し、Kibanaを使って可視化するという使い方も可能である。
6.Beatsとは
Beatsとは、Elasticsearch用のデータ転送エージェント、「軽量ログデータ収集ツール」です。
複数形になっている理由は、取り込み対象のデータ毎に専用プロダクトに分かれているためです。
以下のBeatsが存在します。
- Filebeat
ログファイル - Metricbeat
CPU使用状況、メモリ、ファイルシステム、ディスクI/O、ネットワークI/Oなどの統計情報 - Packetbeat
ネットワークパケット - Winlogbeat
Windosイベントログ - Auditbeat
auditdと同様の監査データ - Heartbeat
アプリの稼働状況 - Functionbeat
クラウドのインフラ情報
エージェントとしてインストールされたFilebeatは、指定したログファイルなどを監視し、ログイベントを収集して、インデックス作成のためにElasticsearchやLogstashに転送します。