Member-only story
Thanosによるマルチクラスタ監視(前半)
PrometheusがKubernetesの事実上の基礎となる監視ソリューションとなっていることは間違いありませんが、同じように、Pipelineプラットフォームの監視サービスのコアコンポーネントとなっているのとなっています。しかし、Prometheusはすでに、最近のメトリクスの保存とアラートにフォーカスした明確なミッションを既に掲げています。
Prometheusのローカルストレージは、そのスケーラビリティと耐久性において単一のノードに制限されています。Prometheus自体でクラスタ化されたストレージを解決しようとするのではなく、Prometheusはリモートストレージシステムを介したインテグレーションを可能にする一連のインターフェースを備えています。
そのため、Prometheusのメトリクスの長期保存はサードパーティに任されています。長期保存においては、いくつかのプロジェクトがあり、それぞれ異なるアプローチをとっています。
M3DBは、主に大量のモニタリング時系列データを収集するために開発され、そのデータを水平方向にスケーラブルに分散して保存するために開発されました。自由に使えるハードウェアを最も効率的に活用できるようになっています。読み込み頻度の低い時系列データはメモリに保存されないので、とても便利です。
Cortexは、水平方向に拡張可能で、高可用性、マルチテナント型、Prometheus用の長期ストレージなどの機能を兼ね備えています。
Thanosはオープンソースで、長期的なストレージとクエリ機能を備えた利用可能性の高いPrometheusのセットアップです。
これらのプロジェクトはすべて特定のユースケースに対応するかもしれませんが、どれも確実な方法ではありません。私たちがThanosを採用することを決めたのは、次のようなメリットがあったからです。
・ ステートレスなコンポーネント
・サービス間の安定したStoreAPI
・ 履歴メトリクスと全体の状態がオブジェクトストレージに永続化される
Banzai Cloudでは、お客様のKubernetesクラスタを監視することを重視しています。そのために、お客様がワンクリックでPrometheusのセットアップ、コンフィギュア、管理ができるようにしています(当社が使用している他のオブザーバビリティツールも含めて)。しかし、私たちはまた、5つのクラウドにまたがるハイブリッドクラスタとオンプレミスのクラスタを1つの Pipelineコントロールプレーンから管理しているため、メトリクスをフェデレートし、それらを1つの場所に集めて長期的なストレージ、クエリ、分析を行うことができるソリューションが必要でした。ユースケースはそれぞれ異なりますが、Pipelineプラットフォームのこの問題を解決するための標準的なソリューションとしてThanosを採用しました。