Prometheusを触ってみる

2022/04/24に公開

Prometheusを構成するコンポーネント

  • Prometheus本体
    監視サーバ(マネージャー的な位置づけ)

  • Exporter
    エージェント的な位置づけ、監視する内容により適切なExporterの追加をする必要あり
    今回はOSの各種メトリクスを取得できるNodeExporterをインストールする

  • 管理メトリクス保存
      Prometheusで収集したメトリクスはデフォルトでローカルストレージに保存される
      ローカルストレージ以外に保存したい場合は対応する「Adapter」使用することで外部に保存することができる

Prometheusのインストール

※今回はAmazonLinux2を使用します。
githubリポジトリからダウンロード

wget https://github.com/prometheus/prometheus/releases/download/v2.25.2/prometheus-2.25.2.linux-amd64.tar.gz
tar zxvf prometheus-2.25.2.linux-amd64.tar.gz
cd prometheus-2.25.2.linux-amd64
./prometheus

起動できたらブラウザでPrometheusサーバの9090ポートにアクセスします
下のような画面が確認できます

Exporter

Exporterは複数あり、取得したいメトリクスに応じて適切なExporterを追加します。
今回はOS周りのメトリクスを取得してみたいと思うのでNodeExporterを追加してみます。
その他のExporterはこちらから探すことができます

Exporterのインストール

Exporterのインストールを行います
Exporterが起動すると9100ポートでアクセスして監視するメトリクスが確認できます

# 監視対象サーバで作業
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-386.tar.gz
tar zxvf node_exporter-1.3.1.linux-386.tar.gz
cd node_exporter-1.3.1.linux-386/
./node_exporter

Prometheusサーバで作業(監視ノードを追加する)

Prometheusサーバに監視対象として全手順でインストールしたExporterを登録します。

prometheus-2.25.2.linux-amd64/prometheus.yml
  - job_name: 'node'
    static_configs:
     - targets:
       - localhost:9100
       - {監視対象サーバのIP}:9100

Prometheusサーバの9100ポートにアクセスすると管理対象が追加されます

システムメトリクスを収集する

クエリを実行するとメトリクスが取得できていることが確認できます

Prometheusで取得したメトリクスを可視化する

Prometheusでも簡単なグラフは作成できますが、リッチなグラフ、ダッシュボードの作成、その他データソースとの連携をするため、今回はGrafanaを使用して各メトリクスを可視化します

Grafanaのインストール

/etc/yum.repos.d/grafana.repo
# Grafanaリポジトリを追加
[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
# Grafanaインストール、起動
 yum install grafana
 systemctl start grafana-server

Grafanaはデフォルト3000ポートで稼働します。
ブラウザでアクセスします。

データソースとしてPrometheusを登録する

[Configration] - [Data sources] - [Add Data source] > Prometheusを選択します


今回はPrometheusサーバとGrafanaサーバが同一サーバとなっているのでlocalhost:9090を指定して[Save]


[Explore]からQueryを投げてグラフを作成できます。

Discussion