🎯 レッスンの目的
Elasticsearch より軽量なログ集約システムとしての Loki、Grafana Alloy がログを収集する方法、分散トレースのテンポ、OpenTelemetry 自動計測、Grafana でログ + メトリクス + トレースを組み合わせる方法を理解します。
1. Loki — ログ集約
1.1 Loki 対 Elasticsearch
- Loki: ラベルベースのインデックス作成 (ログコンテンツのインデックスではなく、ラベルのみのインデックス作成) → 軽量で安価、Kubernetes ログに適しています_
- Elasticsearch: 全文インデックス付き → 大量のメモリ/CPU を消費します。全文検索__HTMLTAG_81___ が必要な場合に適しています。
Kubernetes ログ (構造化、ラベル付け) の場合、2026 年には Loki がより良い選択となります。
1.2 Loki アーキテクチャ
- ディストリビュータ: エージェントからログを受信し、検証してファンアウト
- Ingester: ログをメモリにバッファし、オブジェクト ストレージにフラッシュ
- Querier: クエリを実行し、インジェスターとストレージからの結果をマージ
- Compactor: コンパクトなチャンク、保持管理
1.3 LogQL — クエリ言語
___コードブロック_0___2. Grafana 合金 — 統合コレクター
Grafana Alloy は、Promtail、OTel Collector、Prometheus エージェント モードのすべての個別エージェントを置き換えます。
___コードブロック_1___3.テンポ — 分散トレーシング
Tempo は Grafana の分散トレース バックエンドであり、Loki および Prometheus と適切に統合されています。
3.1 概念
- トレース: リクエストのエンドツーエンドのプロセス (ブラウザからデータベースなど)
- Span: トレース内の操作 (例: HTTP ハンドラー、DB クエリ)
- TraceID: トレースのすべてのスパンをリンクする一意の ID
- SpanID: 個々のスパンの ID
3.2 テンポ設定__HTMLTAG_136___ ___コードブロック_2___
4. OpenTelemetry 自動計測
OpenTelemetry Operator は、コードを変更せずにアプリケーションを自動的にインストルメントします。
4.1 Otel Operator のインストール
___コードブロック_3___4.2 インストルメンテーション CRD
___コードブロック_4___4.3 ポッドに自動インストゥルメントへのアノテーションを付ける
___コードブロック_5___5. Grafana の相関可観測性
_本当の威力は、Grafana 内でアラート→メトリクス→ログ→トレースに進むことができるときです。
5.1 Loki の派生フィールド
___コードブロック_6___5.2 イグザンプラ — メトリクスからトレースへのリンク
___コードブロック_7___5.3 Grafana Explore — 相関ビュー
___コードブロック_8___6. Loki と EFK スタック — いつ何を使用するか?
- Loki の使用: Kubernetes ログ、構造化ログ (JSON)、全文検索は不要、低コストが必要
- Elasticsearch (EFK) の使用: ログ コンテンツによる全文検索が必要、コンプライアンス ログには長期保存が必要、すでに最新の ELK インフラストラクチャが存在__HTMLTAG_167___
概要
- Loki: ラベルベース、軽量、Kubernetes ログに適しています — LogQL クエリ言語
- _Grafana Alloy: 統合コレクター (メトリクス + ログ + トレース)
- Tempo: 分散トレーシング、Grafana エコシステムと適切に統合
- _OTel オペレーター: コード変更なしの自動インストルメンテーション
- 相関可観測性: Grafana のアラート → メトリック → ログ → トレースから