mimir について
Grafana Mimir のデプロイと運用を案内するワークフロースキルです。Mimir は Prometheus と OpenTelemetry のメトリクスを水平拡張可能なマルチテナント環境で長期保存し、ローカル起動、書き込み、Kubernetes へのデプロイ、問題調査を扱います。
主な機能
- 01Docker によるローカル起動
- 02Prometheus remote_write による書き込み
- 03Grafana Alloy による書き込み
- 04Helm を使った Kubernetes デプロイ
- 05マルチテナント設定
活用シーン
- 01ローカルの Mimir インスタンス起動
- 02Prometheus メトリクスの Mimir への送信
- 03Kubernetes への Mimir デプロイ
- 04メトリクスの欠落や書き込み拒否の調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ grafana/ skills --skill mimirインストール後、Claude Code で/mimirを入力して読み込まれたか確認します。
同梱ファイルreferences/architecture.mdreferences/storage.md
詳細
Grafana Mimir
Prometheus と OpenTelemetry のメトリクス向けに、水平方向に拡張可能なマルチテナント対応の長期ストレージを提供します。
前提条件
- Docker(クイックスタート用)または Kubernetes クラスター(Helm 用)
- 本番環境用のオブジェクトストレージバケット(S3/GCS/Azure)。開発環境ではファイルシステムのみ
- Mimir のプッシュエンドポイントに
remote_writeできる Prometheus または Alloy
一般的なワークフロー
1. Mimir のモノリシック構成をローカルで起動する
# demo.yaml
target: all
multitenancy_enabled: false
blocks_storage:
backend: filesystem
bucket_store:
sync_dir: /tmp/mimir/tsdb-sync
filesystem:
dir: /tmp/mimir/data/tsdb
tsdb:
dir: /tmp/mimir/tsdb
compactor:
data_dir: /tmp/mimir/compactor
sharding_ring:
kvstore: { store: memberlist }
distributor:
ring:
instance_addr: 127.0.0.1
kvstore: { store: memberlist }
ingester:
ring:
instance_addr: 127.0.0.1
kvstore: { store: memberlist }
replication_factor: 1
server:
http_listen_port: 9009
grpc_listen_port: 9095
log_level: error
# 1. Run it
docker run --rm -p 9009:9009 -v $(pwd)/demo.yaml:/etc/mimir/demo.yaml \
grafana/mimir:latest --config.file=/etc/mimir/demo.yaml
# 2. Verify readiness (expect HTTP 200, body: "ready")
curl -sf http://localhost:9009/ready
# 3. Verify it's serving the API
curl -s http://localhost:9009/api/v1/labels | jq '.status' # → "success"
# 4. Verify self-metrics scrape
curl -s http://localhost:9009/metrics | grep -E '^mimir_(distributor|ingester)_' | head
2. メトリクスを送信する — Prometheus の remote_write
remote_write:
- url: http://localhost:9009/api/v1/push
headers:
X-Scope-OrgID: tenant1 # required when multitenancy_enabled: true
# Verify samples are landing
curl -s -H 'X-Scope-OrgID: tenant1' \
'http://localhost:9009/api/v1/query?query=up' | jq '.data.result | length'
# Expect > 0 within ~30s of Prometheus scraping
3. メトリクスを送信する — Grafana Alloy
prometheus.remote_write "mimir" {
endpoint {
url = "http://mimir:9009/api/v1/push"
headers = { "X-Scope-OrgID" = "tenant1" }
}
}
4. Kubernetes にデプロイする(Helm、マイクロサービス構成)
# 1. Install
helm repo add grafana https://grafana.github.io/helm-charts
helm install mimir grafana/mimir-distributed --version 6.0.6 -f values.yaml
# 2. Verify every pod is Running / Ready
kubectl get pods -n mimir
# distributor, ingester, querier, query-frontend, store-gateway, compactor, ruler
# 3. Verify the gateway is ready
kubectl port-forward -n mimir svc/mimir-nginx 9009:80 &
curl -sf http://localhost:9009/ready
マルチテナンシー
multitenancy_enabled: true
# Every request must include header: X-Scope-OrgID: <tenant-id>
ストレージバックエンド(S3/GCS/Azure/ファイルシステム)については、references/storage.md を参照してください。コンポーネントの役割、リングのオプション、制限、API エンドポイントの一覧については、references/architecture.md を参照してください。
トラブルシューティング
/readyが 503 を返す → ingester がまだリングへの参加中です。mimir_ring_membersと ingester のログを確認してください- プッシュ時に
429 Too Many Requestsが発生する →limits.ingestion_rate/ingestion_burst_sizeの値を増やしてください - サンプルは書き込まれるが、クエリ結果が空になる → 書き込みと読み取りで
X-Scope-OrgIDが一致していることを確認してください - 古いデータをクエリしても何も返らない → compactor のログと、store-gateway がブロックを同期済みであることを確認してください
リソース
コメント
Markdown 対応