0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【備忘録】Elasticsearchとは

Last updated at Posted at 2022-12-09

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に転送します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?