トップ OSS紹介 Prometheus

Prometheus

サポート対象

NRIのOpenStandiaが提供するPrometheus最新情報

Prometheus情報

Prometheus情報更新日:2025/04/08

Prometheusとは

Prometheus(プロメテウス)は、Go言語で書かれたオープンソースのモニタリングツールです。音声ファイル共有サービスを提供するSoundCloud社によって2012年から開発が始まり、2016年5月にKubernetesに次ぐ2番目のホストプロジェクトとしてCNCFに参加、2016年7月にバージョン1.0.0がリリースされ、2018年8月にはCNCF卒業プロジェクトに移行しています。

Prometheusのシステムは、図1に示すようにPrometheusサーバを中心とした複数のコンポーネントで構成されます。これらのコンポーネントのほとんどは任意で、必要に応じて導入します。

図 1  Prometheusのアーキテクチャ

(https://prometheus.io/docs/introduction/overview/より)

AlertManager(アラートマネージャ)

Prometheusサーバのアラートを管理するためのコンポーネントです。
アラートメール送信やPagerDuty(*1)への連携、重複除外、グルーピングなどの機能があります。

Pushgateway

サーバへ時系列データをPushするためのコンポーネントです。
バッチやスクリプトは、処理の結果をPushgatewayへPushし、Pushgatewayが結果を保持することで、PrometheusサーバはPushgatewayから結果データをPullするという仕組みとなっています。

Exporter

監視対象のサーバにインストールし、Prometheusサーバからのリクエストに応じて、収集したメトリック情報を返すサーバをExporter(エクスポータ:図の左下部分)と呼びます。
Exporterには、サーバのリソース情報を収集するnode_exporterや、固有のサービス情報を収集する以下の公式のExporterが存在します。

  • node_exporter:*NIX カーネルによって公開されるハードウェアおよび OS メトリック用のExporter
  • blackbox_exporter:HTTP/HTTPS/DNS/TCP/ICMP経由のエンドポイントをブラックボックス的に計測するExporter
  • consul_exporter:Consulのサービスの稼働状況をエクスポートするExporter
  • graphite_exporter:Graphiteのプレーンテキストプロトコルでエクスポートされた統計情報用のExporter
  • haproxy_exporter:HA Proxyサーバの統計情報を取得し、HTTP経由でエクスポートするシンプルなExporter
  • memcached_exporter:memcachedサーバから統計情報をエクスポートするExporter
  • mysqld_exporter:MySQLサーバから統計情報をエクスポートするExporter
  • statsd_exporter:StatsD形式のメトリクスを受け取ってPrometheusメトリクスを出力するExporter

また上記以外にも、サードパ―ティが提供しているExporterも多数存在します。使いたいExporterが見つからない場合は、以下のサイトから探してみるとよいでしょう。

Prometheus 2.0からはストレージとして時系列データに特化したローカルのTSDB(time series database)が利用されるようになり、以前のバージョンに比べパフォーマンスが大幅に改善されました。PrometheusのTSDBでは、サンプルデータは2時間ごとのブロックにグループ化され、時間帯ごとに実際のサンプルを含むチャンクと、そのインデックス、およびメタデータで構成されます。
クラッシュリカバリのためのログ先行書き込み(WAL)の機能もありますが、これらストレージ機能はクラスタ化やレプリケーションには対応していません。そのため、複数サーバ構成でサーバをまたいでのクエリ実行はできませんが、Prometheusサーバ を階層構造とすることでデータを集約することができます。

*1. PagerDutyは、監視システムからのアラートを通報するためのプラットフォームです。

主な特徴

  • 多次元データモデル(メトリクス名とキー/値のペアで識別される時系列データ)
  • データ抽出のための柔軟なクエリ言語(PromQL)
  • それぞれのサーバが自立的で分散ストレージに依存しない
  • HTTP上でのPullモデルによる時系列データの収集
  • 中間ゲートウェイを介しての時系列データのPush
  • サービスディスカバリまたは静的な設定による監視対象の取得

メリット・デメリット

メリット・必要性

Prometheusはクラウドネイティブな環境に適しており、Pull型のアーキテクチャを採用しているため、各ターゲットからデータの収集やカスタムメトリクスの作成、ラベルベースでの柔軟なデータ管理ができます。
また、PromQLという強力なクエリ言語により、複雑なメトリクス分析やアラート設定が可能です。自己完結型のため、追加依存が少ないため、高いパフォーマンスを発揮します。

デメリット・注意点・課題

Prometheusは、クラスタリングやデータのレプリケーションに対応していないため、高可用性を実現するためには追加の構成や外部ツールが必要です。
また、詳細な設定やPromQLの使いこなしには専門的な知識が求められるため、初学者にとっては学習のハードルが高いです。

類似プロダクト

Prometheusの類似プロダクトは以下の通りです。
Grafana Loki、InfluxDB、Datadog、Zabbix etc.

商用製品との機能比較

Prometheus

Grafana Loki

Zabbix

ライセンス

Apache 2.0

AGPLv3

GPLv2

開発言語

Go

Go

C・PHP

管理I/F

基本的に設定ファイル
Webコンソール(参照のみ)

Webコンソール

Webコンソール

サーバOS

NetBSD/
FreeBSD/DragonFly/ illumos/
Darwin/Linux/Windows

FreeBSD / Darwin /Linux/
Windows

Linux/IBM AIX/FreeBSD/NetBSD/OpenBSD/HP-UX/ Darwin /Solaris/Windows

データストレージ

TSDB

TSDB/ BoltDB

MySQL/Oracle/
PostgreSQL/SQLite/DB2

ネットワーク監視

×

サーバ監視

×

ログ監視

×

△(リモートログ連携で可能)

クライアントOS

ブラウザでアクセス可能(OS問わず)

ブラウザでアクセス可能(OS問わず)

ブラウザでアクセス可能(OS問わず)

ユースケース

  • 監視対象サーバの数や種類が多い環境でのメトリクス収集やリソース監視
  • クラウド環境やコンテナ環境などにおいて、サービスディスカバリを使用したリソース監視
  • 性能テスト、ボトルネックの調査

動作環境

OS: NetBSD / FreeBSD / DragonFly / illumos / Darwin / Linux / Windows

その他: Dockerイメージも利用することができます。

Prometheusのライセンス

PrometheusはApache2.0ライセンスです。
Apache License(アパッチ・ライセンス)のコードが使用されていることの明記を条件に、ソースコードの自由な改変と公開が認められています。

製品ダウンロード

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • Logstash

    Logstash

    ログスタッシュ。Elastic社により開発された、データ収集ツールです。

  • Grafana
    サポート対象

    Grafana

    グラファナ。Grafana Labs社が開発したデータ可視化ツールです。

  • Fluentd
    サポート対象

    Fluentd

    フルエントディ。様々なデバイスやシステムからログ収集を行い、NoSQLデータベースやテキストなど様々フォーマットに変換・格納するログコネクタです。

オープンソースに関するさまざまな課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。