Prometheus情報
- Prometheusとは
- 主な特徴
- メリット・デメリット
- 類似プロダクト
- 商用製品との機能比較
- ユースケース
- 動作環境
- Prometheusのライセンス
- 製品ダウンロード
- 参考情報
- オープンソース年間サポートサービス
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コンソール |
サーバOS |
NetBSD/ |
FreeBSD / Darwin /Linux/ |
Linux/IBM AIX/FreeBSD/NetBSD/OpenBSD/HP-UX/ Darwin /Solaris/Windows |
データストレージ |
TSDB |
TSDB/ BoltDB |
MySQL/Oracle/ |
ネットワーク監視 |
〇 |
× |
〇 |
サーバ監視 |
〇 |
× |
〇 |
ログ監視 |
× |
〇 |
△(リモートログ連携で可能) |
クライアントOS |
ブラウザでアクセス可能(OS問わず) |
ブラウザでアクセス可能(OS問わず) |
ブラウザでアクセス可能(OS問わず) |
ユースケース
- 監視対象サーバの数や種類が多い環境でのメトリクス収集やリソース監視
- クラウド環境やコンテナ環境などにおいて、サービスディスカバリを使用したリソース監視
- 性能テスト、ボトルネックの調査
動作環境
OS: NetBSD / FreeBSD / DragonFly / illumos / Darwin / Linux / Windows
その他: Dockerイメージも利用することができます。
Prometheusのライセンス
PrometheusはApache2.0ライセンスです。
Apache License(アパッチ・ライセンス)のコードが使用されていることの明記を条件に、ソースコードの自由な改変と公開が認められています。
製品ダウンロード
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。