> For the complete documentation index, see [llms.txt](https://atomoh.gitbook.io/kubernetes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://atomoh.gitbook.io/kubernetes/jp/kuizu/ke-guan-ce-xing/metorikusu/03-mimir-quiz.md).

# Grafana Mimirクイズ

Grafana Mimir の理解度を確認するクイズです。

***

1. Grafana Mimir の主要なストレージバックエンドは何ですか？
   * A) ローカル SSD のみ
   * B) オブジェクトストレージ (S3、GCS、Azure Blob)
   * C) NFS 共有ストレージ
   * D) ブロックストレージのみ

<details>

<summary>回答を表示</summary>

**回答: B) オブジェクトストレージ (S3、GCS、Azure Blob)**

**解説:** Grafana Mimir にはオブジェクトストレージが必要です。S3、Google Cloud Storage、Azure Blob Storage などをサポートし、無制限のスケーラビリティとコスト効率に優れた長期ストレージを提供します。ローカルストレージは、Ingester の WAL と一時データにのみ使用されます。

</details>

***

2. Mimir アーキテクチャにおける Distributor の役割は何ですか？
   * A) 長期データストレージ
   * B) 書き込みリクエストの最初のエントリポイント、テナント検証、サンプル分散
   * C) クエリ結果のキャッシュ
   * D) ブロックのコンパクション

<details>

<summary>回答を表示</summary>

**回答: B) 書き込みリクエストの最初のエントリポイント、テナント検証、サンプル分散**

**解説:** Distributor は書き込みリクエストの最初のエントリポイントであり、テナント ID の検証、時系列データの検証、hash ring に基づく Ingester への分散、replication factor に基づくレプリケーションを担当します。これはステートレスなコンポーネントであり、容易に水平方向へスケールできます。

</details>

***

3. Mimir ではマルチテナンシーをどのように実装しますか？
   * A) テナントごとに個別のクラスターを運用する
   * B) X-Scope-OrgID ヘッダーでテナントを識別する
   * C) IP アドレスに基づいてテナントを分離する
   * D) Namespace に基づいてテナントを分離する

<details>

<summary>回答を表示</summary>

**回答: B) X-Scope-OrgID ヘッダーでテナントを識別する**

**解説:** Mimir は HTTP ヘッダー `X-Scope-OrgID` によりテナントを識別します。Prometheus の remote\_write 設定にこのヘッダーを追加すると、各テナントのデータを分離できます。テナントごとの制限を設定でき、データはオブジェクトストレージ内のテナントパスで分離されます。

</details>

***

4. Mimir の Ingester がブロックをオブジェクトストレージにアップロードする理由は何ですか？
   * A) リアルタイムクエリのパフォーマンスを向上させるため
   * B) メモリ内のデータをディスクに永続化するため
   * C) アラートルールを保存するため
   * D) ダッシュボード設定をバックアップするため

<details>

<summary>回答を表示</summary>

**回答: B) メモリ内のデータをディスクに永続化するため**

**解説:** Ingester は受信した時系列データをまずメモリに保存し、その後定期的に（デフォルトでは 2 時間ごと）TSDB ブロックを作成してオブジェクトストレージにアップロードします。これによりデータは永続的に保存され、Ingester に障害が発生してもデータ損失を最小限に抑えられます。

</details>

***

5. Mimir の Compactor の正しい役割は何ですか？
   * A) リアルタイムクエリ処理
   * B) 小さなブロックを大きなブロックにマージして重複排除する
   * C) Metrics の収集
   * D) アラートの送信

<details>

<summary>回答を表示</summary>

**回答: B) 小さなブロックを大きなブロックにマージして重複排除する**

**解説:** Compactor はオブジェクトストレージ内の小さなブロックを大きなブロックにマージ（コンパクション）し、重複データを削除して、retention policy に従って古いデータを削除します。これによりクエリのパフォーマンスが向上し、ストレージコストを削減できます。

</details>

***

6. Mimir の Query-frontend が提供しない機能はどれですか？
   * A) 大規模なクエリの分割
   * B) 結果のキャッシュ
   * C) データストレージ
   * D) クエリの再試行

<details>

<summary>回答を表示</summary>

**回答: C) データストレージ**

**解説:** Query-frontend は、クエリの最適化とキャッシュを担当するステートレスなコンポーネントです。大規模なクエリを小さなクエリに分割し、結果をキャッシュして、失敗したクエリを再試行します。データストレージは、Ingester（短期）とオブジェクトストレージ（長期）が担当します。

</details>

***

7. Mimir と VictoriaMetrics を比較した場合、Mimir の正しい特性はどれですか？
   * A) ローカルディスクのみ利用可能
   * B) 運用の複雑さが低い
   * C) オブジェクトストレージが必要で、エンタープライズグレードのマルチテナンシーを備える
   * D) MetricsQL クエリ言語を使用する

<details>

<summary>回答を表示</summary>

**回答: C) オブジェクトストレージが必要で、エンタープライズグレードのマルチテナンシーを備える**

**解説:** Mimir にはオブジェクトストレージが必要であり、ネイティブなマルチテナンシーを提供するため、エンタープライズ環境に適しています。VictoriaMetrics もローカルディスクをサポートし、より簡単に運用できますが、Mimir は Grafana エコシステムとの優れた統合を備えています。

</details>

***

8. Mimir における Store-gateway の役割は何ですか？
   * A) Metrics の収集
   * B) オブジェクトストレージのブロックをキャッシュし、履歴データのクエリを処理する
   * C) アラートルールの評価
   * D) テナント認証

<details>

<summary>回答を表示</summary>

**回答: B) オブジェクトストレージのブロックをキャッシュし、履歴データのクエリを処理する**

**解説:** Store-gateway はオブジェクトストレージに保存されたブロックのインデックスとチャンクをキャッシュし、履歴データに対するクエリを処理します。Querier は Ingester から最近のデータを、Store-gateway から履歴データを取得してから、それらをマージします。

</details>

***

9. Mimir における `compactor_blocks_retention_period` 設定の役割は何ですか？
   * A) メモリキャッシュの保持期間
   * B) ブロックデータの保持期間を設定する
   * C) ログの保持期間
   * D) アラート履歴の保持期間

<details>

<summary>回答を表示</summary>

**回答: B) ブロックデータの保持期間を設定する**

**解説:** `compactor_blocks_retention_period` は、Compactor がブロックを保持する期間を設定します。たとえば、`365d` に設定すると、1 年より古いブロックが削除されます。この設定は、ストレージコストの管理とコンプライアンス要件の充足に役立ちます。

</details>

***

10. Mimir の高可用性構成に関する推奨事項ではないものはどれですか？
    * A) 最低 3 つの Ingester レプリカ、zone-aware replication
    * B) 最低 2 つの Store-gateway レプリカ
    * C) すべてのコンポーネントを単一の availability zone にデプロイする
    * D) memcached を使用したキャッシュを有効にする

<details>

<summary>回答を表示</summary>

**回答: C) すべてのコンポーネントを単一の availability zone にデプロイする**

**解説:** 高可用性のため、コンポーネントは複数の availability zone (AZ) に分散する必要があります。Mimir は zone-aware replication をサポートし、Ingester を複数の AZ に分散できます。単一の AZ にデプロイすると、その AZ に障害が発生した場合にサービス全体が停止します。

</details>
