Prometheus と Ops エージェントを使用した GCE インスタンスのモニタリング
Google Cloud Japan Team
※この投稿は米国時間 2023 年 2 月 2 日に、Google Cloud blog に投稿されたものの抄訳です。
過去 5 年以上にわたってオペレーション分野で働いている方は、Prometheus について聞いたことがあるか、すでに Prometheus を使用しているかもしれません。時系列指標の形式、クエリ実行、ストレージを可能にする Prometheus は、オープンソースの世界とエンタープライズ IT 全体に驚くようなスピードで普及しています。これは特に Google Kubernetes Engine(GKE)のような Kubernetes プラットフォームを使用しているチームにおいて顕著です。Google は昨年、Google Cloud Managed Service for Prometheus を導入しました。これは、組織が Prometheus のストレージとクエリを管理する際のスケーリングの問題を解決するうえで役立っています。
アプリケーションのワークロードや Grafana などの可視化ツールをモニタリングするための Prometheus エクスポータとインテグレーションの広範なエコシステムには魅力的な点がたくさんあります。しかし、Kubernetes を基盤とした環境以外にこうしたツールを活用しようとすると、課題に直面することがあります。
隔たりを超えて向こう側の環境へ
VM で実行されている Kubernetes クラスタとサービスの全体にわたって指標を統合することを検討している場合、どうすればよいのでしょうか。Kubernetes のおかげで、Prometheus は簡単にサービスを自動検出し、即座に指標の取り込みを開始できますが、今のところ、VM インスタンスを検出するための一般的なパターンは存在しません。
お客様の中にはこれを解決しようとして、次のような問題に直面する方もいらっしゃいます。
社内で動的検出システムを構築するのは困難
Google は、Google Compute API、構成管理データベース、または信頼できる情報源として好まれるその他のシステムに対して、独自の API 検出システムを構築するお客様を目にしてきました。機能する場合もありますが、こうしたシステムは永続的に維持する必要があり、通常は、現実的なタイムラインの更新のためにイベント ドリブン アーキテクチャを構築しなければなりません。
デーモン化された独自の Prometheus バイナリの管理
Linux の systemd が好きな方も、そうでない方もいらっしゃるかもしれません。いずれにせよ、Prometheus バイナリを構築してデーモン化し、予想される動作に合わせてその構成を更新することや、Prometheus 指標のローカル サービスをスクレイピングすることは確かに可能です。多くの組織においてうまくいく可能性がありますが、ほとんどの組織は、技術的な負担増を避けようとしています。この方法では、Prometheus の作業を追跡し、維持する必要があるという点で、負担は以前と変わりがありません。おそらくは独自の RPM を回してこれを維持し、デーモン化されたこのバージョンについて SLA を管理することにさえなり得ます。
PromQL のような統一された指標形式とクエリ構文の利点は明らかであるものの、Prometheus を VM の世界に拡張するには、多くの落とし穴や課題が存在する可能性があります。
Google Cloud でよりシンプルに
Prometheus の標準化を容易にするために、Google はこのたび Cloud Ops エージェントに Prometheus 指標のサポートを導入いたしました。Cloud Ops エージェントは、Google Compute インスタンスからログと指標を収集するエージェントです。
Ops エージェントは 2021 年にリリースされたもので、指標収集のための OpenTelemetry プロジェクトをベースとしており、コミュニティによる大きな柔軟性を提供します。その柔軟性には、Prometheus 指標の構造を維持しながら、Prometheus 指標を取り込み、その形状を保持し、それを Google Cloud Monitoring にアップロードできる機能が含まれます。
今すぐ Ops エージェントをデプロイして、Prometheus 指標をスクレイピングするように構成してみましょう。
Ops エージェントがどのようなものか説明する簡単なチュートリアルをご覧ください。
ご覧のとおり、Prometheus 指標に対するクエリの実行が、GCE インスタンスを使用する Ops エージェントのユーザーにとって非常に簡単なプロセスになります。
使ってみる
この統合されたエクスペリエンスを VM にもたらすための最初のステップは、Ops エージェントを VM にインストールし、手順に沿って Prometheus レシーバーを構成することです。
準備ができたら、Terraform、Ansible、Puppet、Chef などの自動化ツールと Ops エージェントを統合して、これをよりプログラマティックにし、エージェントをデプロイして、必要に応じて静的構成ファイルを動的にカスタマイズすることもできます。
- Cloud Ops プロダクト マネージャー Kyle Benson
- ソフトウェア デベロッパー Ridwan Sharif