Prometheus 技術文書 - コンセプト

 Prometheus は、次のようなオープンソース プロジェクトのリンクです。

Prometheus ホームページ、ドキュメント、ダウンロード - サービス監視システム - OSCHINA - 中国のオープンソース技術交換コミュニティ

基本コンセプト:

 

        Prometheus は、Google の BorgMon 監視システムから開発されたオープンソースのシステム監視および警告システムです。主に、システムパフォーマンス、ネットワーク遅延、アプリケーションエラーなどのさまざまな時系列データを監視および測定するために使用されます。Prometheus はモニタリング データを収集して時系列データベースに保存し、PromQL クエリ言語を使用してデータの分析と視覚化を行います。Prometheus のコア コンポーネントには、Prometheus Server、Exporters、Pushgateway が含まれます。Kubernetes、EC2、GCE などの複数のサービス検出メカニズムをサポートし、サービスの実行ステータスを自動的に検出して監視します。Prometheus は、データ アクセスのセキュリティを確保するために、認証、認可などのセキュリティおよび権限制御メカニズムも提供します。これは、CNCF が主催する k8s に次ぐ 2 番目に大きなプロジェクトとなり、さまざまなデータセンター環境の監視に広く使用されています。

次のような特徴があります。

  • 高次元データモデル

  • カスタムクエリ言語

  • ビジュアルデータ表示

  • 効率的なストレージ戦略

  • 操作とメンテナンスが簡単

  • さまざまなクライアント開発ライブラリを提供

  • 警告と警報

  • データ出力

プロメテウスの重要な概念を学ぶ

  1. 監視指標(メトリクス):Prometheusは様々な監視データを収集し、時系列データとして保存します。これらのデータは、システムの CPU 使用率、ネットワーク トラフィック、アプリケーション エラーなど、特定のメトリクスを通じてシステムのさまざまな側面を表します。
  2. ストレージの永続性: Prometheus は、収集した監視データを時系列データベースに保存します。このデータベースは、大規模な時系列データを保存するために特別に設計されています。Prometheus は、ローカル ディスク、リモート ストレージなどの複数のストレージ バックエンドをサポートします。
  3. クエリ言語: Prometheus はデータ クエリ言語として PromQL を使用します。PromQL を使用すると、ユーザーはリポジトリから監視データをクエリおよび分析し、さまざまな方法で視覚化できます。
  4. アラート ルール: Prometheus は、監視データのしきい値に基づいてアラートをトリガーするためのアラート ルールを提供します。アラートは、電子メール、Slack、PagerDuty などのさまざまな受信者に送信できます。
  5. データの視覚化: Prometheus は、監視データとアラーム ステータスを表示するためのダッシュボード (ダッシュボード) インターフェイスを提供します。ユーザーは、構成をドラッグ アンド ドロップしてカスタマイズすることで、独自のダッシュボードを作成できます。
  6. サービス検出: Prometheus は、Kubernetes、EC2、GCE などのさまざまなサービス検出メカニズムをサポートし、サービスの実行ステータスを自動的に検出して監視します。
  7. セキュリティとアクセス制御 (セキュリティとアクセス制御): Prometheus は、データ アクセスのセキュリティを確保するために、認証、認可などのセキュリティとアクセス制御のメカニズムも提供します。
  8. データ抽出: Prometheus は、Prometheus が直接収集できないデータを Pushgateway を使用して Pushgateway にプッシュし、Prometheus が Pushgateway からデータを抽出するなど、他のデータ ソースからのデータ抽出もサポートしています。

Prometheus は、サービスの実行状態を自動的に検出して監視するための複数のサービス検出メカニズムをサポートしています。

  1. Kubernetes: Prometheus を Kubernetes クラスターと統合し、Kubernetes API を通じて Kubernetes 内のサービスとコンテナを自動的に検出および監視できます。このサービス検出メカニズムは、Kubernetes 環境で実行されている分散システムに適しています。
  2. EC2 (Elastic Cloud Compute): EC2 はアマゾン ウェブ サービス (AWS) が提供するクラウド サービスで、Prometheus は EC2 API を通じて EC2 インスタンスを検出および監視できます。このサービス検出メカニズムは、AWS 環境で実行されている分散システムに適しています。
  3. GCE (Google Cloud Engine): GCE は Google Cloud が提供するクラウド サービスで、Prometheus は GCE API を通じて GCE インスタンスを検出および監視できます。このサービス ディスカバリ メカニズムは、Google Cloud 環境で実行される分散システムに適しています。

これらのサービス検出メカニズムにより、Prometheus はさまざまなサービスとインスタンスを自動的に検出して監視できるため、監視プロセスが簡素化および自動化されます。

使用するシーン:

Prometheus は、さまざまなシナリオに適した、広く使用されているオープンソース システムの監視および警告システムです。一般的な使用シナリオをいくつか示します。

  1. クラウド ネイティブ エコシステム: Prometheus は CNCF (Cloud Native Computing Foundation) の管理プロジェクトの 1 つであり、Kubernetes などのクラウド ネイティブ テクノロジと緊密に統合されています。これは、Kubernetes クラスター内のサービスとコンテナーを自動的に検出して監視するために、クラウドネイティブのエコシステムで広く使用されています。
  2. 分散システムとマイクロサービス: Prometheus は分散システムとマイクロサービス アーキテクチャに適しており、CPU 使用率、メモリ消費量、ネットワーク遅延など、さまざまなサービスやアプリケーションのパフォーマンス指標を監視できます。
  3. システムのパフォーマンスと健全性の監視: Prometheus は、サーバー、ネットワーク デバイス、オペレーティング システムなどを含むシステム全体のパフォーマンスと健全性を監視できます。CPU 使用率、ディスク使用率、ネットワーク帯域幅など、さまざまなシステムレベルのパフォーマンス指標を収集できます。
  4. ビジネス指標の監視: Prometheus は、アプリケーション エラー率、ユーザー アクティビティ、ビジネス トランザクション量などのビジネス指標の監視にも使用できます。これらのメトリクスは、開発者やビジネス アナリストがシステムのパフォーマンスとビジネス状況をより深く理解するのに役立ちます。
  5. 自動化されたデプロイメントとコンテナー管理: Prometheus は、Docker、Kubernetes、Helm などの自動化されたデプロイメントおよびコンテナー管理ツールと統合できます。コンテナーの作成、削除、更新プロセスを監視し、デプロイメントのプロセスと結果を自動化します。
  6. リアルタイムのアラームと緊急対応: Prometheus と AlertManager はアラーム ルールを設定し、アラームをトリガーできます。リアルタイムのアラートと緊急対応のために、電子メール、Slack、PagerDuty などのさまざまな受信者にアラートを送信できます。

使用理由

  1. オープンソースとコミュニティのサポート: Prometheus は、大規模なコミュニティ サポートとユーザー ベースを持つオープンソース プロジェクトです。これにより、ユーザーはドキュメント、サンプル、プラグインなどのさまざまなリソースやサポートに簡単にアクセスできるようになります。
  2. 使いやすさ: Prometheus はシンプルなアーキテクチャを備えており、インストールと構成が簡単です。シンプルなデータ モデルとクエリ言語を使用するため、ユーザーはデータを簡単に収集、保存、分析できます。
  3. データ収集とスケーラビリティ: Prometheus は、静的構成、サービス検出、自動検出など、さまざまなデータ収集方法をサポートしています。スケールアウトすることで監視のパフォーマンスと容量を向上させることもできます。
  4. データ クエリと視覚化: Prometheus には強力なデータ クエリ言語 (PromQL) が組み込まれており、ユーザーはこれを使用してデータを簡単にクエリおよび分析できます。さらに、Prometheus は、データをグラフの形式でユーザーに表示できる視覚化機能も提供します。
  5. アラート機能: Prometheus は AlertManager と連携してアラート ルールを設定し、アラートをトリガーします。リアルタイムのアラートと緊急対応のために、電子メール、Slack、PagerDuty などのさまざまな受信者にアラートを送信できます。
  6. クラウドネイティブ テクノロジーとの緊密な統合: Prometheus は、Kubernetes などのクラウドネイティブ テクノロジーと緊密に統合されており、Kubernetes クラスター内のサービスとコンテナーを自動的に検出して監視できます。このため、クラウドネイティブ環境で Prometheus を使用するのは自然な選択になります。

類似製品の比較:

Prometheus と同じ種類の製品には、Open-Falcon、Zabbix、Graphite などがあります。比較すると次のようになります。

1. Open-Falcon: Open-Falcon は、強力なデータ収集、保存、分析機能を備えたオープンソース監視システムです。複数のデータ ソースとプロトコルをサポートし、柔軟なアラーム メカニズムを備えています。Open-Falcon は、他の多くのテクノロジーと柔軟に拡張および統合できる柔軟なアーキテクチャを備えています。Prometheus と比較すると、Open-Falcon はデータ収集とアラームの機能が豊富ですが、データ モデルとクエリ言語はよりシンプルです。

2. Zabbix: Zabbix は、幅広い機能と強力なパフォーマンスを備えた成熟した監視システムです。アクティブ監視やパッシブ監視などのさまざまな監視方法をサポートし、監視スクリプトをカスタマイズできます。Zabbix はリレーショナル データベースを使用してデータを保存し、強力なレポート機能と分析機能を備えています。Prometheus と比較すると、Zabbix は機能とパフォーマンスの点でより成熟していますが、データ モデルとクエリ言語の点ではより伝統的です。

Macrotime Data-Zabbix China

3. Graphite: Graphite は、データの保存とパフォーマンス指標の視覚化に焦点を当てたシステムです。シンプルなデータ モデルを採用し、名前付きの時系列データを保存できます。Graphite には高速なクエリ機能と視覚化機能がありますが、その機能は他の監視システムに比べて制限されています。Prometheus と比較すると、Graphite はデータの視覚化とストレージの点で利点がありますが、データ モデルとクエリ言語の点ではよりシンプルです。

        これらのシステムにはそれぞれ長所と短所があり、どのシステムを選択するかは、特定のニーズと使用シナリオによって異なります。Prometheus には、データ モデル、クエリ言語、コミュニティ サポートの点で利点がありますが、データの収集と保存の点で追加のコンポーネントが必要になる場合がありますOpen-Falconはデータ収集とアラーム機能がより多く、Zabbixは機能とパフォーマンスの点でより成熟しており、Graphiteはパフォーマンス指標データの保存と可視化に重点を置いています。

バージョンアップデートの比較:

  1. Prometheus 2.0.0: このバージョンでは、新しいストレージ エンジンが導入され、検索システムの変更と組み合わせることで、パフォーマンスが大幅に向上します。さらに、Prometheus サーバーから 1 秒あたり数百万のサンプルを収集することができます。また、新しいストレージ エンジンには下位互換性がありませんが、1.x にまだ保存されている古いデータに透過的にアクセスする方法があります。さらに、このリリースでは PromQL の古いセマンティクスが改善され、時系列を無効にするために 5 分間待つのではなく、1 回のスクレイピング間隔だけで済むようになりました。ルール ファイル形式も YAML に変更され、ルールはグループに編成され、順番に実行されます。セキュリティ上の理由から、管理 API とライフサイクル API はデフォルトで無効になっています。
  2. Prometheus 1.8.0: このリリースの主な変更点には、リモートでのサンプルの書き込みとプルの構成の改善が含まれており、メモリ使用量のより適切な制御が可能になります。エラー処理と構成を含む HTTP 取り込みの改善、進行中のスロットリングを含む監視の改善、HTTP リクエストの数、および HTTP の取り込みの改善が含まれます。テキスト表示形式の互換性が向上し、より多くの状況をサポートします。

        Prometheus の各バージョンには、ストレージ エンジン、PromQL、ルール ファイル形式、その他の側面を含むいくつかの更新と改善が加えられています。ユーザーはニーズに応じて適切なバージョンを選択できます。同時に、Prometheus は、変化する監視要件と技術環境に対応するために開発と改善を続けています。

おすすめ

転載: blog.csdn.net/weixin_72186894/article/details/132159485