← 一覧へ
インフラ・クラウド
#ELK#Elasticsearch#로그분석#SIEM#관측성#132회
最終更新 · 2026-07-07

ELKスタック(Elasticsearch · Logstash · Kibana)

1. 概要

A. 定義

大容量のログ・イベントデータを収集(Logstash/Beats)→インデックス化・検索(Elasticsearch)→可視化(Kibana)するオープンソースのログ分析スタックであり、軽量コレクタBeatsを含めてElastic Stackと呼ばれる。

ELKは3つのオープンソースの頭文字を取った名称であるが、本質は「非構造化ログを検索可能な構造に変換し、リアルタイムに照会・分析する」パイプラインである。リレーショナルDBが構造化データを行・列で扱うのとは異なり、ログは形式がまちまちで毎秒数万件ずつ押し寄せるため、従来のRDBMSでは保存・検索が非効率である。ELKはこの問題を転置インデックス(Inverted Index)ベースの検索エンジンで解決する。

B. 登場背景および必要性

MSA・クラウドネイティブ環境では、1つのリクエストが数十のサービスを経由するため、ログが各サーバ・コンテナに散在する。障害が起きると、どのサーバのログを見るべきかさえ把握しにくい。そのため、ログを1か所に集め(中央集約)、サービス・時間・相関関係で検索できるオブザーバビリティ(Observability)基盤が必要となった。ELKは商用APM・SIEMに比べて導入コストが低く、インデックス化・検索・可視化を1つのスタックで提供するため、ログ統合・リアルタイム分析の事実上の標準となった。

2. 構成要素

flowchart LR
  B[Beats<br/>軽量収集エージェント] --> L[Logstash<br/>収集・パース・変換]
  L --> E[Elasticsearch<br/>インデックス・検索・集計]
  E --> K[Kibana<br/>可視化・ダッシュボード]
  B -.直接投入.-> E

各構成要素はパイプラインの1段階を担い、役割が分離されているため、必要に応じて選択的に組み合わせる。例えば変換が不要であれば、BeatsからElasticsearchへ直接投入してLogstashを省略できる。

  • Beats(収集): 各サーバにインストールされる軽量エージェントで、Filebeat(ログファイル)・Metricbeat(メトリクス)・Packetbeat(ネットワーク)のように目的別に分かれている。リソース占有が小さいため、数千台のサーバに負担なく展開できる。
  • Logstash(変換): input→filter→outputのパイプラインでログをパースする。核心はGrokフィルタであり、192.168.0.1 - GET /api 200のような非構造化文字列をclient_ip、method、statusフィールドに構造化する。重い代わりに強力な変換が可能である。
  • Elasticsearch(中核): Luceneベースの分散検索エンジンであり、転置インデックスで全文検索を、集計(Aggregation)で統計をリアルタイムに提供する。ELKの心臓部である。
  • Kibana(可視化): 検索・ダッシュボード・アラートのUI。KQLクエリでログを探索し、時系列・ヒストグラム・地図などで可視化する。
構成 役割 特徴
Beats 軽量収集 サーバごとに展開、低負荷
Logstash パース・変換・投入 Grokなど強力なフィルタ
Elasticsearch インデックス・検索・集計 転置インデックス・分散・リアルタイム
Kibana 可視化・アラート ダッシュボード・探索UI

3. 主要技術原理

ELKの性能は、Elasticsearchの2つの設計に由来する。第一に、転置インデックスは「文書→単語」ではなく、「単語→その単語を含む文書のリスト」へとインデックスを反転させておく。そのため「errorを含むログ」を探す際、全体を走査せずにerror項目が指す文書だけを即座に返す。これが、数億件のログでもミリ秒単位の検索が可能な理由である。

第二に、分散・シャーディングである。インデックスを複数のシャード(shard)に分割してノードに分散し、各シャードをレプリカ(replica)として複製しておく。データが増えればノードを追加し(水平スケーリング)、ノードがダウンしてもレプリカによってサービスが維持される(高可用性)。ただし、シャードが多すぎるとかえってオーバーヘッドが大きくなるため、シャード数の設計が運用の鍵となる。

技術 原理 効果
転置インデックス 単語→文書のマッピング 高速な全文検索
分散・シャーディング インデックスの分割・複製 水平スケーリング・HA
集計 インデックス上での統計演算 リアルタイムダッシュボード

4. 活用分野

ログ分析が基本であるが、「検索+集計+可視化」という特性のおかげで活用の幅は広い。SIEM(セキュリティ情報・イベント管理)では、ファイアウォール・認証ログを集めて異常ログイン・攻撃パターンをリアルタイムに検知し、オブザーバビリティ(APM)では応答遅延・エラー率を追跡する。例えば、特定APIの5xxエラーが急増すると、Kibanaダッシュボード上で即座にスパイクとして現れ、アラート(Watcher)によって担当者に通知される。

分野 活用例
ログ分析 アプリ・システムログの統合、障害原因の追跡
セキュリティ(SIEM) 異常検知・脅威ハンティング・コンプライアンス
オブザーバビリティ(APM) 遅延・エラー率のモニタリング、トレーシング

5. 考慮事項および示唆

  • コスト・ライフサイクル管理: ログは際限なく蓄積されるため、ILM(Index Lifecycle Management)で古いインデックスをHot→Warm→Cold→削除へと自動的に階層化し、保存コストを統制しなければならない。
  • ライセンス問題: ElasticがライセンスをSSPLに変更したことで、AWS主導のオープンソースフォークであるOpenSearchが登場した。ベンダーロックイン・コストの観点から代替の検討が必要である。
  • 標準との連携: 近年はOpenTelemetry標準でログ・メトリクス・トレースを統合収集する流れにあり、ELKもOTel収集パイプラインと連携する方向へ進化している。
  • 運用負担: クラスタのチューニング(シャード・ヒープ・マッピング)が難しいため、マネージドサービス(Elastic Cloud)の活用も代替案である。

一言まとめ: ELKスタックは*Beats/Logstash(収集・変換)→Elasticsearch(転置インデックス・分散検索)→Kibana(可視化)*で大容量の非構造化ログをリアルタイムに検索・分析するオープンソーススタックであり、ログ分析・SIEM・オブザーバビリティに使われ、ILM・ライセンス(OpenSearch)・OpenTelemetry連携が運用上の課題である。