Grafana Loki (ログ集約・2018)(グラファナロキ)
Grafana Labs 2018年公開のログ集約システム。「Prometheus for Logs」を標榜・ラベルベース・Object Storage 圧縮、Kubernetes ログの主流。
概要
Grafana Loki はGrafana Labs (David Kaltschmidt / Tom Wilkie 等) が2018年12月に公開したログ集約システム。「Prometheus for Logs」を標榜、Prometheus 風ラベルベース (Service / Pod / Namespace)・LogQL クエリ言語 (PromQL 風)・Object Storage (S3 / GCS / Azure Blob) 圧縮で大幅コスト削減 (Elasticsearch 比1/10-1/100)。Grafana 統合・Kubernetes Native・PLG Stack (Promtail + Loki + Grafana) で Kubernetes ログの主流、Datadog / New Relic への OSS 代替の中心。
主要マイルストーン
| 年月 | 出来事 |
|---|---|
| 2018-12 | Grafana ObservabilityCON で発表 |
| 2019-11 | Loki 1.0 GA |
| 2020 | Loki 2.0 (パフォーマンス改善) |
| 2021 | Loki 2.4 (LogQL 機能拡張) |
| 2022 | Loki 2.7 (Multi-tenant) |
| 2023 | Loki 2.9 (Bloom Filters) |
| 2024 | Loki 3.0 (TSDB 移行・性能大幅改善) |
Loki 主要技術
| 項目 | 内容 |
|---|---|
| 構造 | ラベル + 全文ログ |
| インデックス | ラベルのみ (全文非Index) |
| ストレージ | Object Storage (S3 / GCS / MinIO) |
| 圧縮 | Snappy / Gzip |
| クエリ | LogQL (PromQL 風) |
| 言語 | Go |
| Multi-tenant | あり (Header X-Scope-OrgID) |
| HA | あり (Replication) |
| Promtail | 専用Log Forwarder |
| Bloom Filter | 検索高速化 (2.9+) |
Loki vs Elasticsearch
| 項目 | Loki | Elasticsearch |
|---|---|---|
| Index | ラベルのみ (軽量) | 全文Inverted Index |
| ストレージ | Object Storage | Local Disk |
| 圧縮 | 10-30× | 2-5× |
| Cost | 1/10-1/100 | 高 |
| 全文検索 | 線形スキャン (限定) | ◎ |
| 構造化ログ | ラベル経由 | ◎ |
| ML 異常検知 | × | ◎ |
| Kubernetes 統合 | ◎ Native | △ |
| 学習コスト | 低 (PromQL) | 高 |
ログ規模100GB+/日 ならLoki が圧倒的Cost優位・全文検索重視ならElasticsearch。
PLG Stack (Promtail + Loki + Grafana)
Grafana Labs 推奨ログスタック:
[アプリ]
↓ stdout/stderr
[Promtail] ← ログ収集 (Filebeat / Fluentd 代替)
↓ Push
[Loki] ← ログ集約 / ストレージ
↓ Query (LogQL)
[Grafana] ← 可視化
LogQL クエリ言語
PromQL 風・ログ検索 + 集計:
# 1. 特定Service の ERROR ログ
{namespace="prod", app="my-service"} |= "ERROR"
# 2. JSON ログでstatus=500 のみ
{app="api"} | json | status="500"
# 3. ログ件数 (時系列)
rate({app="api"} |= "ERROR"[5m])
# 4. Latency パーセンタイル
quantile_over_time(0.95,
{app="api"} | json | unwrap duration [5m])
# 5. ログ + メトリクス相関
sum by (status) (count_over_time({app="api"} | json [1m]))
PromQL 知っていれば即座にLogQL習得可。
Promtail (Log Forwarder)
専用Log Forwarder (Filebeat / Fluentd 代替):
- /var/log/* スキャン
- Kubernetes Pod ログ自動収集
- ラベル付与
- Loki Push API へ送信
- 軽量 (Go・10MB メモリ)
2024年Grafana Alloy (新Unified Agent・Promtail 代替) へ移行中。
Cost 比較例
100 ノード Kubernetes クラスタ・1日1TB ログ:
| Backend | 月Cost |
|---|---|
| Datadog Logs | $30,000 (Ingest $0.10 + Indexed $1.27/1M) |
| New Relic Logs | $30,000+ (Per User + Data) |
| Splunk | $50,000+ |
| Elasticsearch (自家 + ストレージ + 運用) | $5,000-10,000 |
| Loki (S3 + 運用) | $200-500 (S3) + 運用工数 |
Loki が圧倒的にCost優位・運用工数で相殺可。
主要採用先
| 企業 | 用途 |
|---|---|
| GitLab | DevOps Platform |
| 30,000+ Grafana Cloud 顧客 | 中小企業 |
| Robinhood | 取引ログ |
| Showmax | ストリーミング |
| Wikipedia | サーバログ |
| 大学・研究機関 | OSS |
関連用語との違い
- vs Elasticsearch: ラベル / 全文Index
- vs Splunk: OSS / 商用
- vs Datadog Logs: 自家 / SaaS
FAQ
Q1: Elasticsearch から移行? A: 全文検索頻度低 + Cost優先なら推奨。Promtail → Loki → Grafana 構成で簡単移行。
Q2: 全文検索弱点? A: ラベルでフィルタ後の線形スキャン・1日1TB ログでも数秒-数十秒 (Bloom Filter で改善)。大規模全文検索ならElasticsearch併用。
Q3: Grafana Cloud? A: Free Tier 50GB / 月 Logs・有料$0.50/GB Retention。OSS自家より楽。