オープンソース

Prometheus〜大規模なシステムを監視可能なOSS〜

オープンソースの監視システムには、ログ監視ができる「Zabbix」やネットワーク監視や監視したデータをグラフ化することができる「Cacti」、コマンドラインからでも監視が実行できる「Icinga2」など様々な監視システムがあります。PrometheusもLinuxやWindowsで利用できるオープンソースの監視システムのひとつです。監視システムは、ネットワーク環境やコンピュータシステムを正常に維持するためシステムの異常をいち早く検知するために重要なシステムとなります。ここでは、監視システムのPrometheusについて紹介します。

Prometheusとは

Prometheusとは、オープンソースソフトウェアの監視システムです。Prometheusの言語は、GO言語で書かれています。Apache License 2.0のもとで、オープンソースソフトウェアとして公開されています。最初は音楽配信サイトのSoundCloudにより開発・構築されたシステムであり、2012年に開始されてから多くの会社や組織にPrometheusが採用されてきました。現在は、単独のオープンソースプロジェクトとして、どの企業からも独立して維持されています。Prometheusは、2016年にKubernetesに続く2番目のホストプロジェクトとしてCloud Native Computing Foundationに参加しています。Prometheusは、監視対象の数が多いシステムや動的に監視対象が変化するシステムに対応できる監視ソフトウェアとして知られています。

Prometheusイメージ

Prometheusの特徴

Prometheusは以下の特徴があります。

取得したデータを時系列データとして扱う

Prometheusは、取得したすべてのデータを時系列データとして保存します。時系列データは、メトリック名とラベルと呼ばれるキー/値ペアにより識別されます。また取得したデータは、PrometheusのウェブUIで参照することができます。

収集したデータはPromQLで表示できる

PromQL(Prometheus Query Language)とは、時系列データを取得・集約するクエリ言語です。Prometheus は、このクエリ言語を利用してデータの表示をおこないます。クエリの結果はウェブUIで表やグラフ形式で表示することが可能です。

監視対象を動的に検出できる

監視対象は、Prometheusの設定ファイルで指定します。Prometheusには、サービス検知機能という機能があります。この機能は、一定のルールに従ってサービスを自動的に検知し、監視対象として自動で追加・削除することができます。そのため、サーバの増減があるようなシステムでも、動的に対象サーバを検知し、監視を行うことが可能です。システム管理者は、いちいち監視対象を変更する必要がなくなり、管理が楽になります。

グラフ化やダッシュボードをサポート

Prometheusは、データの可視化を行うことができます。データをグラフ表示することで、監視対象の状況をすぐに確認できるようになります。システムの異常や、長期的な負荷の増減を簡単に把握できるので、安心してシステムを運用できるようになります。

コンポーネント

Prometheusは、機能毎に別々のコンポーネントで構成されています。すべてのコンポーネントは簡単にインストールして起動が可能です。ソフトウェアのパッケージをダウンロードして起動するだけで監視を開始することができます。また、Dockerなどのコンテナやクラスタで起動することも可能です。

まず、メインコンポーネントであるPrometheusサーバがあります。Prometheusサーバは、Prometheusから監視対象に向けてHTTPリクエストを送信するHTTPプルにより監視対象から時系列データを取得します。そしてPushgatewayという監視対象からのHTTPプッシュをPrometheusサーバに中継するための中間ゲートウェイがあります。HTTPプッシュとは、監視対象からPushgatewayに向けてHTTPリクエストを送信(push)することをいいます。またExporterという監視対象サーバの情報を取得するコンポーネントがあります。Exporterは、node_exporter(ハードウェアやOSのメトリック情報やリソースを取得)やmysqld_exporter(MySQLサーバのメトリック情報を取得)等を使用することができます。

その他に、アラートを集約するOSSのAlertmanagerや時系列データを可視化するOSSのGrafanaとも連携することが可能です。Prometheusのシステム構成は以下の図で表しています。システム管理者は、Grafanaに接続してダッシュボードを確認したり、AlertmanagerにアクセスしてWebUIからアラートを確認することができます。Prometeusのアーキテクチャは以下のようになります。

Prometheusシステム構成図

システム構成図

Alertmanagerとの連携

Prometheusは、取得したデータの閾値監視等によりアラートを発行することができます。Prometheusが発行したアラートのリクエストは、Alertmanagerを通して通知が行われます。Alertmanagerとは、アラートを管理するオープンソースソフトウェアです。Alertmanagerは、アラートの通知だけでなく、指定した複数のアラートを同一のグループとして認識させ、アラートの集約を行うことが可能です。そして集約されたアラートは、様々な方法で通知・処理することができます。Eメールに送信することはもちろん、例えばwebhookやPagerDuty、Pushover、チャットシステムのSlackやWeChatなどユーザーが利用しているアプリにも通知することが可能です。PrometheusのウェブUIで追加したアラートルールやアラートの状態を確認することもできます。

Alertmanagerイメージ

Grafanaとの連携

Prometheusが保存した時系列データは、Grafanaを使用してグラフ表示や分析を行うことができます。Grafanaとは、ダッシュボードを構築することができるOSSのソフトウェアです。BIツールとも呼ばれており、データを加工し分かりやすく表示することで、ビジネスにおける様々な情報の分析を効率化し、最適な判断ができるようにするツールです。ダッシュボードは、Webインタフェースから利用できます。また、Grafanaは表やグラフの作成・配置、操作が簡単に行えます。時系列データの解析を行う時には、特に強みを発揮します。Prometheusにも、デフォルトのWebUIがありますが非常にシンプルなものです。GrafanaにはPrometheus専用のテンプレートが提供されています。そのため簡単にPrometheusのダッシュボードを作成しモニタリングすることが可能です。

Grafanaイメージ

デージーネットの取り組み

Prometheusには、設定を行うためのウェブUIは存在しないため、頻繁に監視の操作を行うようなシステムには適しません。しかしクラウド環境やコンテナ環境などで大量のホストが存在するシステムや、同様に動的にサーバが増減するようなシステムには有効で便利に利用できます。デージーネットでは、Prometheus以外にもZabbixやCactiなど様々な監視システムの構築サービスを行っています。これらの監視ソフトウェアなどのITソリューションを利用してお客様のご要望にあわせた監視システムを提案し、構築するなど柔軟に対応することが可能です。デージーネットで構築したシステムは、Open Smart Assistanceという導入後の保守サポートも行っています。

インストール方法やセットアップ、各種設定方法・手順は、Prometheus調査報告書で説明しています。調査報告書は無料資料ダウンロードからダウンロードができます。

「情報の一覧」

Prometheus調査報告書

無料資料ダウンロード

Prometheusは、監視対象の数が多いシステムや動的に監視対象が変化するシステムに対応できる監視ソフトウェアとして知られています。本書は、Prometheusについて調査した内容をまとめたものです。

Zabbix〜ログ監視も可能なOSSの監視ツール〜

OSS情報(Zabbix)

Zabbixとは、サーバー、ネットワーク、アプリケーションを集中監視するための統合監視ソフトウェアです。Zabbixは、統合監視に必要な監視、障害検知、通知機能を備え、多数のプラットフォームに対応しています。そのため、Zabbixを導入することでシステム全体を監視することが可能です。

Cacti〜監視とグラフ生成のOSS〜

OSS情報(Cacti)

Cactiとは、ネットワーク監視、グラフ生成のソフトウェアです。Cactiをインストールし導入することで、サーバやネットワーク機器のネットワークトラフィック、CPU使用率、空きメモリ量、ディスク使用率などを監視し、グラフ化することができます。

Icinga2〜コマンドでも使える監視OSS〜

OSS情報(Icinga2)

Icinga2は、システム監視のためのオープンソースソフトウェアです。Icinga2では、WEBインタフェースだけでなくコマンドラインでも監視の設定を行うことができ、大量の監視も行うことができます。Icinga2のWEBインタフェースはデージーネットで日本語対応を行っています。

OSSのアラート管理〜Alertmanager〜

OSS情報(Alertmanager)

アラート機能は重要な役割を担っており、システム管理者に無駄なく、効率よく障害対応できるためのアラート管理の仕組みが必要になります。ここでは、オープンソースソフトウェアのアラート管理システムAlertmanagerを紹介します。

デモのお申込み

もっと使い方が知りたい方へ
操作方法や操作性をデモにてご確認いただけます。使い方のイメージを把握したい、使えるか判断したい場合にご活用下さい。デモをご希望の方は、下記よりお申込みいただけます。

デモをご希望の方

デモの申し込みイメージ

Prometheus〜大規模なシステムを監視可能なOSS〜の先頭へ