トップ OSS紹介 Prometheus

Prometheus

サポート対象

NRIのOpenStandiaが提供する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・Opsgenie(*1)への連携、重複除外、グルーピングなどの機能があります。

サーバへ時系列データをPushするためにはPushgateway(プッシュゲートウェイ)を使用する必要があります。バッチやスクリプトは、処理の結果をPushgatewayへPushし、Pushgatewayが結果を保持することで、PrometheusサーバはPushgatewayから結果データをPullするという仕組みとなっています。

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

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

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

Exporters and integrations

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

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

主な特徴

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

商用製品との機能比較

Prometheus

Pandora FMS

Zabbix

ライセンス

Apache 2.0

GPLv2

GPLv2

開発言語

GO

Perl・PHP

C・PHP

管理I/F

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

Webコンソール

Webコンソール

サーバOS

OpenBSD/NetBSD/
FreeBSD/DragonFlyBSD/
Darwin/Linux/Windows

FreeBSD/Solaris/HPUX/
AIX/macOS/Linux/
Windows

Linux/UNIX

データストレージ

オリジナルのTSDB

MySQL

MySQL/Oracle/
PostgreSQL/SQLite/DB2

ネットワーク監視

サーバ監視

ログ監視

×

△(Enterprise版のみ)

アラート通知

メール・HipChat・
PagerDuty・Opsgenie・
PushOver・Slack・
WebHook

メール・SMS・Syslog・
Sound・Jabber

メール・SMS・Sound・
Ez Texting・Jabber

クライアントOS

OpenBSD/NetBSD/
FreeBSD/DragonFlyBSD/
Darwin/Linux/Windows

Linux/Unix/Windows

Linux/Unix/Windows

ユースケース

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

動作環境

OS: OpenBSD / NetBSD / FreeBSD / DragonFlyBSD / 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がまるごと解決します。
下記コンテンツも
あわせてご確認ください。