mcpField
M
mimir

mimir

github.com/grafanaクラウド・DevOps2954.8k 回インストール1 日前に更新
リポジトリ

mimir について

Grafana Mimir のデプロイと運用を案内するワークフロースキルです。Mimir は Prometheus と OpenTelemetry のメトリクスを水平拡張可能なマルチテナント環境で長期保存し、ローカル起動、書き込み、Kubernetes へのデプロイ、問題調査を扱います。

主な機能

  1. 01Docker によるローカル起動
  2. 02Prometheus remote_write による書き込み
  3. 03Grafana Alloy による書き込み
  4. 04Helm を使った Kubernetes デプロイ
  5. 05マルチテナント設定

活用シーン

  1. 01ローカルの Mimir インスタンス起動
  2. 02Prometheus メトリクスの Mimir への送信
  3. 03Kubernetes への Mimir デプロイ
  4. 04メトリクスの欠落や書き込み拒否の調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/grafana/skills --skill mimir

インストール後、Claude Code で/mimirを入力して読み込まれたか確認します。

同梱ファイルreferences/architecture.mdreferences/storage.md

詳細

Grafana Mimir

ドキュメント: https://grafana.com/docs/mimir/latest/

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 がブロックを同期済みであることを確認してください

リソース

コメント