お問い合わせはこちら

PrometheusとGrafanaとは?組み合わせて監視基盤を作る方法を解説

公開
PrometheusとGrafanaの組み合わせ解説

システム監視とデータ可視化は、現代のIT運用において欠かせない要素です。本記事では、オープンソースの監視ツールPrometheusと、データ可視化ツールGrafanaの連携について詳しく解説します。

これらのツールを組み合わせることで、システムの健全性を効果的に監視し、問題を迅速に特定できるようになるでしょう。DevOpsエンジニアやシステム管理者の方々にとって、業務効率の向上とシステムの安定運用に役立つのでぜひお読みください。

Prometheusとは

Prometheusは、オープンソースの監視システムおよび時系列データベースです。主に、システムやアプリケーションのメトリクスを収集し、分析するために使用されます。Prometheusの特徴は、プル型のアーキテクチャを採用していることで、監視対象からHTTPエンドポイントを通じてメトリクスを取得します。

時系列データの保存と検索に最適化されており、多次元データモデルを使用してメトリクスを効率的に管理するのが特徴です。

Prometheusのアーキテクチャは、データ収集、保存、可視化の各コンポーネントから構成されています。主要なコンポーネントには、Prometheus Server、Exporters、Alertmanager、PushGatewayなどがあり、それぞれが監視システムの重要な役割を担っています。

Prometheusアーキテクチャにおけるコンポーネントの構成図

Prometheusは柔軟性が高く、様々な環境での監視に適しており、特にKubernetesなどのコンテナ環境との相性が良いことで知られています。

Grafanaとは

Grafanaは、データの可視化と分析を行うためのオープンソースのプラットフォームです。多様なデータソースと連携し、美しく柔軟なダッシュボードを作成できることが特徴です。

Prometheus、InfluxDB、Elasticsearchなど、様々なデータベースやモニタリングツールからデータを取り込み、グラフやチャートとして表示できます。ユーザーは直感的なインターフェースを通じて、カスタマイズ可能なダッシュボードを簡単に作成できます。

また、アラート機能も備えており、設定した閾値を超えた場合に通知を送ることができます。Grafanaにはオープンソース版とエンタープライズ版があり、エンタープライズ版では高度なセキュリティ機能や専門的なサポートが提供されます。

PrometheusはGrafanaとの連携がおすすめ

PrometheusはGrafanaを連携させると可能性が大きく広がります。

Prometheusの標準UIは機能が限られていますが、Grafanaと組み合わせることで、柔軟で高度な可視化が可能になるのです。Grafanaの豊富なグラフ機能やダッシュボード作成機能によって、Prometheusの複雑なメトリクスも直感的に把握できるようになります。

また、アラート機能や複数データソースの統合など、Grafanaならではの機能も利用可能です。一般的な利用シーンとしては、マイクロサービスアーキテクチャの監視やクラウドインフラの可視化などが挙げられます。多くの企業がこの組み合わせを採用し、システムの健全性や性能を効果的に監視しています。PrometheusとGrafanaの連携は、現代のITインフラ監視において強力なソリューションとなっています。

PrometheusとGrafanaを組み合わせて使う方法

PrometheusとGrafanaを組み合わせて使うには、まず両ツールをインストールし、適切に設定する必要があります。環境構築から運用開始までの流れとしては、以下の通りです。

  1. Prometheusのセットアップ
  2. メトリクス収集の設定
  3. Grafanaのインストール
  4. データソースの追加、
  5. ダッシュボードの作成

一見やることが多く見えますが、一つずつ順を追って実行すれば難しくありません。ここから各ステップについて詳しく見ていきましょう。

PrometheusとGrafanaのセットが初めから使える

KAGOYA CLOUD VPSではPrometheusのテンプレートを利用でき、初めからGrafanaがセットされている状態で運用開始できます。

自分で初めから構築する必要がないため時短になるだけではなく、日額20円から利用可能とコスパの面でも喜ばれています。

Prometheusとは?メリット・デメリットから基本的な使い方までわかりやすく解説

Prometheusとは?メリット・デメリットから基本的な使い方までわかりやすく解説

システムを監視するためのツールは、有料・無料のものを含めて数多くの種類があります。 そのなかでも、無料のシステム監視ツールとして人気が高いのがPrometheusです。システム監視を開始する際、Prometheusはまず検討すべき選択肢のひとつと言えます。 この記事では、Prometheusとは何かといった概要からメリット・デメリット、基本的な使い方までわかりやすく解説しました。 この記事を読むこ…

1.Prometheusのインストール・設定

Prometheusのインストールは、公式サイトからバイナリをダウンロードして解凍するだけで簡単に行えます。

①Prometheus専用のシステムユーザーを作ります。

$ sudo adduser -M -r -s /sbin/nologin prometheus
Prometheusのインストール画面

②Prometheusの設定ファイル用ディレクトリとデータ格納用ディレクトリを作成します。

$ sudo mkdir /etc/prometheus
$ sudo mkdir /var/lib/prometheus
Prometheusののディレクトリ制作画面

③/usr/srcフォルダなどに、Githubからアーカイブをダウンロードします。アーカイブのリストは公式サイトにあります。自分の環境のCPUに合った最新バージョンを選びましょう。ここでは例としてx86_64のバージョン3.0.1を選びます。

$ cd /usr/src
$ wget https://github.com/prometheus/prometheus/releases/download/v3.0.1/prometheus-3.0.1.linux-amd64.tar.gz
Githubからダウンロードの様子

④アーカイブを解凍します。

tar -xf prometheus-3.0.1.linux-amd64.tar.gz
アーカイブの凍結作業

⑤環境変数を設定します。

export PROM_SRC=/usr/src/prometheus-*

⑥Prometheusの設定ファイルを/etc/prometheus/にコピーします。

sudo cp $PROM_SRC/prometheus.yml /etc/prometheus/
Prometheusのの設定ファイルのコピー作業

⑦prometheus.ymlをエディタで開き、以下の部分の内容を変更します。

scrape_configs:
 - job_name: "prometheus"
 static_configs:
    - targets: ["localhost:9090"] ←ここのlocalhostをサーバーのIPアドレスに変更する。
エディタの内容

⑧prometheusのバイナリを/usr/local/bin/にコピーします。

sudo cp $PROM_SRC/prometheus /usr/local/bin/
sudo cp $PROM_SRC/promtool /usr/local/bin/
バイナリのコピーの様子

⑨/etc/prometheusと/var/lib/prometheusの所有権を最初に作ったユーザーprometheusに変更します。

sudo chown prometheus:prometheus /etc/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus
ユーザーの変更作業

⑩Prometheus用のsystemdユニットファイル/etc/systemd/system/prometheus.serviceをエディタで作成し、以下の内容を保存します。

[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
    --config.file /etc/prometheus/prometheus.yml \
    --storage.tsdb.path /var/lib/prometheus/ \
    --web.console.templates=/etc/prometheus/consoles \
    --web.console.libraries=/etc/prometheus/console_libraries

[Install]
WantedBy=multi-user.target
systemdユニットファイルの記述

⑪サービスを有効化させます。

sudo systemctl daemon-reload
sudo systemctl enable --now prometheus
sudo systemctl status prometheus
サービス有効化の様子

⑫ブラウザから[https://IPアドレス:9090]にアクセスするとprometheusの管理画面が表示されます。

ブラウザでの見え方

2.監視対象のアプリケーションのメトリクス公開

Prometheusで監視するには、対象アプリケーションやシステムのメトリクスをPrometheus形式で出力する「Exporter」が必要です。Exporterは、さまざまなサービスやホスト上の情報を収集し、Prometheusが理解できるフォーマットで提供します。
ここでは、代表的なExporterである「Node Exporter」を例にインストールしてみましょう。

Node Exporterのリリースページで最新安定版を確認します。

②最新安定版をダウンロードします。

$ cd /tmp
$ wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz
ダウンロードのコマンド

③アーカイブを解凍します。

$ tar xzvf node_exporter-1.8.2.linux-amd64.tar.gz

④バイナリをシステムパスに移動します。

$ sudo mv node_exporter-1.8.2.linux-amd64/node_exporter /usr/local/bin/
パスの移動の様子

⑤node expoeterのシステムユーザーを作成します。

$ sudo useradd --no-create-home --shell /bin/false node_exporter

⑥バイナリに所有権を設定します。

$ sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter
所有権の設定の様子

⑦node_exporterのサービスファイルを作成します。
/etc/systemd/system/node_exporter.serviceに以下の内容を記載し保存します。

[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target
サービスファイル作成の記述

⑧デーモンをリロードし、サービスを起動します。

$ sudo systemctl daemon-reload
$ sudo systemctl start node_exporter
$ sudo systemctl enable node_exporter
サービス起動の作業内容

⑨ファイアウォールを設定します。

$ sudo firewall-cmd --permanent --add-port=9100/tcp
$ sudo firewall-cmd --reload
ファイアーウォールの設定画面

⑩Prometheus側の設定をします。
/etc/prometheus/prometheus.ymlのscrape_configs:の部分にターゲットの設定を追加します。

  - job_name: 'node_exporter'
    static_configs:
      - targets: [localhost:9100']
Prometheusにターゲット設定の追加作業

⑪Prometheusをリスタートします。

$ sudo systemctl restart prometheus
Prometheusのリスタートの様子

⑫Prometheusの管理画面でターゲットにNode Exporterが追加されていれば成功です。

ブラウザ上でのPrometheusで確認

3.Grafanaのインストール・設定

ここからはGrafanaのインストールから初期設定、管理者アカウントの設定、およびPrometheusデータソースの追加方法までをステップ順に説明します。

①Grafanaのリポジトリを追加します。以下のコマンドを入力しましょう。

$ sudo cat <<EOF | sudo tee /etc/yum.repos.d/grafana.repo
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
EOF
Grafanaのリポジトリ追加の作業

②Grafanaをインストールします。OSやディストリビューションによってコマンドが変わりますので注意してください。以下はAlmaLinux9の例です。

$ sudo dnf install grafana -y
Grafanaのインストールコマンド

③Grafanaを起動し、自動起動を有効化します。

$ sudo systemctl start grafana-server
$ sudo systemctl enable grafana-server
Grafanaの有効化

④ファイアウォールでGrafana用のポート(デフォルト3000番)を開放します。

$ sudo firewall-cmd --permanent --add-port=3000/tcp
$ sudo firewall-cmd --reload
Grafanaにファイアーウォールを設定する様子

⑤ブラウザでhttp://<サーバーIP>:3000にアクセスするとGrafanaのログイン画面が表示されます。

ブラウザ上でのGrafanaの見え方

⑥初回ログインは以下のデフォルトアカウントが利用できます。

  • username:admin
  • password:admin

ログイン後、すぐにパスワード変更画面が表示されるため、新しいパスワードを設定しましょう。

⑦Prometheusをデータソースとして追加します。
Grafanaのサイドバー左側にある「Connections」をクリックし、「Data Sources」の中から「Prometheus」を選択します。

Grafanaの管理画面

⑧Connectionの欄にPrometheusのエンドポイント(例:http://:9090)を入力し、最下部の「Save & Test」をクリックします。

Grafanaのエンドポイント設定

これでGrafanaからPrometheusのメトリクスにアクセスできるようになりました。これにより、Prometheusで収集したメトリクスをGrafanaで美しく可視化・監視することができます。

4.Grafanaでのダッシュボード作成

ここからはダッシュボードを作成してみましょう。

①サイドバーからDashboardsを選びます。

Grafanaのダッシュボード作成手順

②右上のNewから「New Dashboard」を選びます。

New Dashboardの場所

③中央に表示されている「Add Visualization」のボタンを押します。

Add Visualizationのボタン

④Data sourceからprometheusを選び、下部のMetricから監視したいメトリックを選びます。

prometheusのメトリック選択画面

⑤わかりやすいグラフによってメトリックが可視化されます。

メトリックのグラフ

5.作成したダッシュボードの公開

Grafanaでは、作成したダッシュボードを共有して、他のユーザーがアクセスできるようにする方法があります。ここでは、Grafanaの「共有(Snapshots)機能」を用いてダッシュボードを一時的に公開する手順を、ステップ順で説明します。

ユーザー管理

①サイドバーからAdministration>Users and Access>Usersを開きます。

②「New user」をクリックし、ユーザーを組織に追加します。

ユーザー追加方法

スナップショットの共有設定

①共有したいダッシュボードを開きます。

②右上にある「Share」アイコンをクリックします。

スナップショットの追加場所

③「Snapshot」タブへ切り替えます。次に、Expireを選び、「Publish Snapshot」ボタンをクリックします。

追加ボタン

④発行されたURLでアクセスできます。

見え方

まとめ

PrometheusとGrafanaを組み合わせることで、効果的なモニタリングと可視化が実現できます。Prometheusがデータを収集し、Grafanaがそれを美しく表示することで、システムの状態を一目で把握できるようになります。

設定は少し手間がかかりますが、一度構築すれば運用が容易になり、問題の早期発見や迅速な対応が可能になります。

両ツールの連携により、システム監視の質が大幅に向上し、安定したサービス提供につながります。

Prometheusとは?メリット・デメリットから基本的な使い方までわかりやすく解説

Prometheusとは?メリット・デメリットから基本的な使い方までわかりやすく解説

システムを監視するためのツールは、有料・無料のものを含めて数多くの種類があります。 そのなかでも、無料のシステム監視ツールとして人気が高いのがPrometheusです。システム監視を開始する際、Prometheusはまず検討すべき選択肢のひとつと言えます。 この記事では、Prometheusとは何かといった概要からメリット・デメリット、基本的な使い方までわかりやすく解説しました。 この記事を読むこ…