Grafana Loki vs Elasticsearch: どちらのログストアを選ぶか
Lokiはラベルのみをインデックスし、圧縮したログのチャンクを安価に保存します。Elasticsearchは全文検索のためにログ内容を完全にインデックスします。
Grafana Lokiは、少数のラベルのみをインデックスし、残りを圧縮チャンクとしてobject storageに保存することでコストを低く保ちます。これによりインジェストは安価になりますが、アドホックな内容検索は遅くなります。Elasticsearchはすべてのフィールドをインデックスし、高速な全文クエリ、集計、分析を可能にしますが、より重いストレージと運用オーバーヘッドを伴います。Lokiはラベル駆動のログにおけるコストとシンプルさで優れ、Elasticsearchは検索の深さと分析で優れます。
| Loki | Elasticsearch | |
|---|---|---|
| インデックスモデル | ラベルのみ | 全内容 |
| ストレージコスト | 低い(object store) | より高い |
| 検索 | ラベル + grep | 豊富な全文検索 |
| 運用オーバーヘッド | より軽い | より重い |
| 最適な用途 | 安価でラベル付きのログ | 深い検索、分析 |
ユースケースとコスト
Lokiは、すでにGrafanaを運用しており、検索クラスタを管理せずにPrometheusスタイルのラベル付きログを安価に保存したいチームに適しています。Elasticsearchは、高カーディナリティのフィールドにわたる任意の全文クエリ、集計、構造化された分析を必要とし、ストレージとチューニングのコストを支払う意思のあるチームに適しています。
運用とCIへの適合
Lokiは運用が軽く、object storage上で水平にスケールします。Elasticsearchはshard、heap、インデックスライフサイクルの慎重な管理が必要です。どちらもCIでbuildおよび統合テストされるコンテナとして配布され、より高速なmanaged runnerはイメージのbuildと一時的なインスタンスに対するエンドツーエンドのクエリテストを短縮します。
結論
Grafanaと密に統合された、安価でラベルインデックスのログが欲しいなら: Loki。深い全文検索、集計、分析が欲しいなら: Elasticsearch。Lokiはコストを最小化し、Elasticsearchはクエリの力を最大化します。