Grafana Labs が 2018 年公開したログ集約 + 検索システム。Prometheus 風アーキテクチャ + ラベルベースインデックス + LogQL クエリで低コスト ログ集約、Kubernetes + クラウド ログ管理の主要選択肢。
Grafana Loki(グラファナ ロキ)は、Grafana Labs(2014 年スウェーデン創業、Grafana ダッシュボード提供)が 2018 年 12 月に公開したオープンソースのログ集約 + 検索システムです。「Loki」の名称は北欧神話のいたずら者の神 Loki(ロキ)に由来し、いたずら + 機敏な性格を技術的特徴(軽量 + 高速 + 柔軟)に重ね合わせた命名です。
技術的革新は、Prometheus(2012、CNCF Graduated)風のアーキテクチャ + ラベルベースインデックス + LogQL クエリ言語の組合せです。従来の Elasticsearch + Logstash + Kibana(ELK スタック)が「全文検索インデックス」を構築するため大量のストレージ + メモリを消費するのに対し、Loki は「ラベル(メタデータ)のみインデックス + ログ本体は圧縮してオブジェクトストレージに保存」という設計で、ストレージコストを 1/10-1/100 に削減しました。
主要コンポーネントは、(1)Distributor(ログ受信 + 検証 + 配信)・(2)Ingester(ログ書込 + メモリチャンク管理)・(3)Querier(LogQL クエリ実行)・(4)Compactor(圧縮 + 古いログのコールドストレージ移行)・(5)Ruler(アラート + 録画ルール)・(6)バックエンドストレージ(AWS S3 / GCP GCS / Azure Blob / オブジェクトストレージ互換)、です。
LogQL クエリ言語は PromQL(Prometheus Query Language)風の文法で、(1){job="myapp"} (ラベルセレクタ)・(2){job="myapp"} |= "error"(文字列フィルタ)・(3)rate({job="myapp"}[1m])(レート計算)・(4)sum by (level) (count_over_time({job="myapp"}[5m]))(集約)、などのクエリを表現できます。
Grafana Labs 自身が提供する LGTM スタック(Loki + Grafana + Tempo + Mimir / Prometheus)は、(1)Loki = ログ・(2)Tempo = 分散トレース・(3)Prometheus / Mimir = メトリクス・(4)Grafana = 可視化、の統合観測基盤として AWS / GCP / Azure / Kubernetes 環境で広く採用されています。
主な採用は、(1)Grafana Cloud(フルマネージド SaaS、無料 50GB/月 + 有料拡張)・(2)Grafana Enterprise(オンプレ + サポート)・(3)自前ホスティング(Apache 2.0 ライセンス、無料)・(4)主要 Kubernetes 環境(EKS / GKE / AKS / OpenShift / Rancher)、で 2020-2026 年に急速に普及、Elasticsearch ベース ELK スタックの主要代替として現代観測スタックの中核を担っています。
| ツール | 提供 | 設計思想 | コスト |
|---|---|---|---|
| Grafana Loki | Grafana Labs | ラベルインデックス + Object Storage | 低 |
| Elasticsearch + Kibana | Elastic | 全文インデックス | 高 |
| Splunk |
| Splunk Inc. |
| 全文インデックス + 統計分析 |
| 高 |
| Datadog Logs | Datadog | SaaS 全文 + ML | 中 |
| AWS CloudWatch Logs | AWS | クラウドネイティブ | 中 |
Grafana Loki は通常のコンシューマ自作 PC で必要になる技術ではありませんが、ホビーホームラボ + 自宅 Kubernetes 環境 + 自宅 IoT センサ + Linux サーバ管理の上級者には有用です。Docker Compose + Loki + Grafana + Promtail(ログエージェント)の組合せで、自宅サーバの統合観測基盤を構築できます。
docker-compose up だけで Loki 単体起動可能(2GB RAM + 10GB ディスク以上)、Grafana 統合 + LogQL クエリ + アラート設定で本格的な業務級観測基盤を学習できます。Kubernetes 環境では Helm Chart + ArgoCD で本番運用級デプロイが容易です。
Q1: Loki と Elasticsearch どちらを選ぶべきですか? A: ストレージコスト + ラベルベース検索なら Loki、全文検索 + 複雑なテキスト解析が必要なら Elasticsearch です。Kubernetes + クラウドネイティブ + 大量ログ + コスト重視なら Loki が圧倒的に優位です。
Q2: ログ全文検索はできますか?
A: できます。{job="myapp"} |~ "error|fatal" で正規表現フィルタが可能、ただし全文検索はラベルでデータ範囲を絞った後に実行されるため、ラベル設計 + クエリ最適化が重要です。
Q3: 自前ホスティングのコストは? A: 1TB/月のログを AWS S3 + EC2(2 t3.medium)で運用する場合、月額 $30-50 程度です。Elasticsearch 同規模(4 r5.xlarge + EBS gp3 1TB)月額 $400-600 と比較して 10 倍以上のコスト差です。