本文の内容は、2021年8月11日にDavid de Torres Huertaが投稿したブログ(https://sysdig.com/blog/prometheus-monitoring-integrations/)を元に日本語に翻訳・再構成した内容となっております。
数回のクリックでサービスやアプリケーションを監視することは、すべてのSREや開発者の夢ですが、ほとんどのアプリケーションが標準化されたフォーマットでメトリクスを公開していないため、これは非常に困難です。
この記事では、Prometheus エクスポーター・エコシステムの現在の長所と短所を紹介し、Sysdigでオープンソース・エクスポーターのパワーを活用して、ユーザー・エクスペリエンスを根本的に簡素化し、数回クリックするだけでアプリケーションを監視できるようにした方法を紹介します。
適切なエクスポーターを見つける
まず最初に、なぜPrometheusのエクスポーターを使うのでしょうか?それは、私たちがオープンソースを愛しているからです。Prometheus のエコシステムを採用することで、他の監視プラットフォームがカスタムスクリプトやソリューションで抱えているベンダーロックインを取り除くことができます。結局のところ、あなたはいつでも自分のPrometheusを使って、エクスポーターからメトリクスを得ることができるのです。一部のサービスはネイティブにインストルメント化されており、Prometheus のメトリクスを直接公開しています。しかし、大多数のアプリケーションでは、メトリクスを生成するためにサードパーティのオープンソース・エクスポーターに頼る必要があります。これらのエクスポーターは、サービスが使用しているどのようなメトリクス・フォーマットもPrometheusメトリクスに変換します。このような状況から、アプリケーションとPrometheusエクスポーターの広範で多様なエコシステムが形成されており、特定のアプリケーションに適したエクスポーターを見つけ、正しく設定することは容易ではない。例えば、あるアプリケーションに対して複数のエクスポーター(または同じエクスポーターのフォーク)が存在する可能性があり、それらは保守されている場合もあれば、されていない場合もあります。
昨年、私たちはこのような問題に対する解決策をオープンソース・コミュニティに提供するためにPromCat.ioを作成しました。私たちはPromCat.ioを使って、サポートされているすべてのアプリケーションに最適なエクスポーターをテストして選択し、必要に応じてオープンソースのエクスポーターにコントリビュートし、Prometheusのエコシステムに還元しています。
そして今、さらに物事をシンプルにする時が来ました。
Prometheus監視のインテグレーションを自動的に発見、管理する
Sysdigでは、Kubernetesの主役はワークロードだと考えています。ワークロードには、Deployment、DaemonSet、StatefulSet、さらにはOpenShiftのDeploymentConfigなどがあります。このことを念頭に置いて、私たちはすべてのワークロードをクラスターとネームスペースの順に表示し、それらがどの種類のアプリケーションであるかを識別します。こうすることで、Prometheus監視のインテグレーションをより簡単に管理することができます。どのワークロードに注意を払う必要があるのか、どのワークロードがメトリクスを正しくレポートしているのかが一目でわかり、ワークロードの一部または全部にエクスポーターを簡単にインストールすることができます。
他の監視ソリューションの自動検出では、サービスが実行されているかどうかを見つけることはできますが、インスタンスごとにメトリクス収集を設定することはできません。Sysdig Monitorのアプローチは、すべてのワークロードのすべてのインスタンスを、たとえ同じホスト内にあっても、ホストへのアクセスを必要とせずに特定します。これにより、最初に監視のインテグレーションを設定したユーザだけでなく、その後に続くすべてのユーザにとっても素晴らしい体験となります。たとえクラスター全体やホスト、監視エージェントではなく、自分のネームスペースにしかアクセスできなくても、すべてのユーザが自己完結できるようになります。
設定がガイドされるエクスポーター
エクスポーターをデプロイする際に最も困難なステップの1つは、アプリケーションに接続してメトリクスを生成するようにエクスポーターを設定することだと思います。これは、私たちがお客様のために開発した最もエキサイティングな機能の1つです。データベースのユーザーとパスワードを設定するための変数名や、接続文字列にSSL証明書を設定する方法を推測するために、特定のエクスポーターのドキュメントやコードに飛び込む必要はありません。私たちがそれを代行します。
どのアプリケーションにもウィザードのようなフォームが用意されており、必要な情報を入力することで、クラスター内のエクスポーターを設定するための1行コマンドを提供してくれます。
厳選されたエンタープライズグレードのイメージ
多くのオープンソースプロジェクトと同様に、Prometheus エクスポーターは通常コミュニティによってメンテナンスされており、そのイメージは無料のイメージリポジトリでホストされています。このような場所では、プル制限、不安定さ、管理不足が本番環境に影響を与える可能性があります。Sysdigでは、イメージをホスティングして安全を確保するイメージリポジトリを所有しています。Sysdigが使用するすべてのエクスポーターイメージは、Sysdig Secureイメージスキャンで脅威の可能性を検出します。脅威が発見された場合は、修正を行います。
ユニバーサルベースイメージのような特別な要件を持つイメージが必要な場合は、強化された環境に対応するバージョンも提供しています。
ユニバーサル・ベース・イメージ(UBI)は、OCIに準拠し、自由に再配布できるコンテナベースのOSイメージで、無料のランタイム言語やパッケージが含まれています。
また、エクスポーターとアプリケーションの異なるバージョンとの互換性を見つけて検証するのは簡単ではありません。しかし、ご安心ください。当社のエンジニアリングチームは、選択したエクスポーターとアプリケーションの異なるバージョンとの互換性を検証し、信頼できるエクスポーターとアプリケーションのバージョンの互換性マトリクスをお客様に提供しています。
CI/CDワークフローへダイレクトにインテグレーション
エクスポーターをデプロイする準備ができたら、さまざまなオプションを提供します。まず、1行のコマンドで素早くインストールすることができます。超高速です。本番クラスターの管理が厳しく、パイプラインでデプロイしていて、本番環境で直接コマンドを実行できない場合は、マニフェストを生成してリポジトリにアップロードするオプションも提供しています。コミットして、CI/CDにプッシュする準備ができています。
さらにオプションが必要でしょうか?私たちが提供するウィザードは、大多数のユーザーにとって十分な柔軟性を備えていますが、環境は多様であり、特別なニーズがあることも承知しています。
パッケージ管理アプローチをご希望のお客様のために、Prometheus監視インテグレーション用のHelmチャートを作成しました。
動作していますか?
さて、エクスポーターをデプロイしました。さて、どうでしょう?エクスポーターが動作しているかどうかは、どうやって確認するのでしょうか?Sysdig Monitorは、お客様のアカウントに届いたメトリクスを自動的に検出し、ワークロードに関連付けます。これにより、メトリクスが正しくレポートされているアプリケーションと、注意が必要なアプリケーションを視覚的に検出することができます。
メトリクスを正しく報告しているインテグレーションのイメージ
ダッシュボードとアラートがすぐに使える
アカウントにメトリクスが登録されたので、それを活用しましょう。通常、アプリケーションのモニタリングを開始するには、アラートとダッシュボードのセットを作成する必要がありますが、私たちはすでにこれを行っています。各インテグレーションのために、アウトオブボックスの特別なダッシュボードを作成しました。これらのダッシュボードは、監視のベストプラクティス(Golden Signals、USE、またはREDフレームワーク)を使用して作成されており、ユースケースとユーザビリティに焦点を当てています。また、ダッシュボードを最大限に活用していただくために、視覚化パネルの横に情報やトラブルシューティングのヒントを掲載しています。
ダッシュボードは、各インテグレーションワークロードから直接アクセスすることができます。ダッシュボードは、関連するクラスター、ネームスペース、ワークロードに自動的にスコープされます。
ここでは、フードの下にさらなる魔法を加えています。メトリクスがPrometheusエクスポーターによって生成されたとしても、それはあなたとあなたのチームにとって透明なものになります。メトリクスは、監視しているアプリケーションのネームスペースとワークロードに直接関連付けられます。どのエクスポーターがどのアプリケーションのメトリクスを生成しているかをいちいち覚えておく必要はありませんし、メトリクスはRedis、PostgreSQL、ElasticSearchなどから直接来ているように見えます。これは、ServiceVision on PromQLと呼んでいる、クエリーを簡素化するための拡張したバージョンの一部です。
Sysdig Monitorが設定されたインテグレーションのメトリクスの受信を開始すると、そのインテグレーションで利用可能なすべてのダッシュボードが「ダッシュボード・テンプレート」セクションに表示されます。
ダッシュボードに加えて、アプリケーション用の厳選されたアラート・テンプレートのセットをアラート・ライブラリに自動的に作成します。
このアラートのセットは、ベストプラクティスに沿ってアプリケーションの監視を簡単に開始するのに役立ちます。また、ワークロードごとにアラートのレベルや通知チャネルをカスタマイズすることもできます。これらのアラートは、「アラート」セクションでご覧いただけます。
今すぐ始めましょう!
Prometheusのオープンソース・エコシステムは幅広く、多様性に富んでいます。Sysdigは、オープン・スタンダードなアプローチとプロフェッショナルなサポートにより、ベンダーロックインを回避しつつ、時間と労力を大幅に削減できると考えています。Sysdigは、お客様のアプリケーションに最適なPrometheusエクスポーターを使用したインテグレーション機能を開発し、簡単に設定して使用できるようにしています。これにより、アウトオブボックスのメトリクス、ダッシュボード、アラートをアカウントに用意することで、時間と複雑さを軽減し、最も重要なことに集中することができます。
あまりにも良い話だと思いませんか?数分後には自分で試してみる事ができます。Sysdig Monitorの無料トライアルに登録するだけで、サービスのモニタリングが数クリックで可能になります。