ELK Stack とは? Elasticsearch によるロギングの解説
ELK Stack は、Elasticsearch、Logstash、Kibana を組み合わせてログを収集、保存、検索、可視化する、広く使われているオープンソースのロギングツールセットです。
ELK は、集中型のロギングプラットフォームを構築するために一緒にデプロイされることが多い3つのツールの頭文字です。それぞれが取り込み、保存と検索、可視化という1つの段階を担い、まとまることで生のログ行から検索可能なダッシュボードまでの全経路をカバーします。このスタックは、追加の取り込みコンポーネントを反映して、現在では Elastic Stack と呼ばれることも多くなっています。
Elasticsearch
Elasticsearch は、スタックの中核をなす検索および分析エンジンです。ログドキュメントをインデックス化してほぼリアルタイムでクエリできるようにし、全文検索、フィールドによるフィルタリング、集計をサポートします。数百万行のログの検索を高速にするのがこのコンポーネントです。
Logstash
Logstash は処理パイプラインです。多数の入力からログを取り込んで変換し、構造化されていない行をフィールドへとパースし、ノイズを除去し、コンテキストで補強したうえで、その結果を Elasticsearch へ転送します。その役割は、雑然とした生ログをクリーンで構造化されたドキュメントに変えることです。
Kibana
Kibana は可視化と探索のフロントエンドです。インデックス化されたログを検索し、ダッシュボードを構築し、個々のエントリを掘り下げることができます。ほとんどのユーザーにとって、Kibana はスタックの顔であり、実際に調査が行われる場所です。
Beats と Elastic Stack
Beats と呼ばれる軽量なシッパーが、最小限のオーバーヘッドで各ホストからログやメトリクスを送るために追加されることが多く、エッジではより重い Logstash エージェントをしばしば置き換えます。Beats を含めると、このまとまりは厳密な ELK ではなく、一般に Elastic Stack と呼ばれます。
CI/CD ログのための ELK
チームは build や deploy のログを ELK に送り込み、すべてのパイプライン実行を検索可能にします。そうすれば Kibana ダッシュボードで、build 全体にわたるエラーパターンを追跡し、最も頻出する失敗メッセージを浮かび上がらせ、失敗した実行を過去の成功と比較できます - 一時的な runner ログの山を、長く残る、クエリ可能な履歴へと変えるのです。
重要なポイント
- ELK は、ログのために一緒に使われる Elasticsearch、Logstash、Kibana のことです。
- Elasticsearch は保存と検索を、Logstash は取り込みと変換を、Kibana は可視化を担います。
- Beats のシッパーがこれを Elastic Stack へと拡張します。
- すべてのパイプライン実行にわたって CI/CD ログを検索可能にします。