やりたいこと

Prometheus server から client(node_exporter) のリソース状況を監視するために、シンプルなサーバー×クライアント構成を構築して結果を見てみる。今回使用する exporter は node_exorter のみ。とりあえずシンプル構成で動くことを確する。

やること

  • Prometheus server を1台構築する
  • node_exporter を1台構築する
  • target情報を追加する

prometheus server の構築

環境

    – mac os x: 10.10.5
    – virtual box: 5.1.8
    – vagrant: 1.8.
    – virtual machine: centos7
    – prometheus: 1.8.0
    – go: 1.9.1

Prometheus serverの構築

Prometheus の公式HPからLinux用のバイナリをダウンロードして、Prometheus server用のサーバの任意の場所で実行する。

# ダウンロード
cd /usr/local/bin # バイナリを解凍する場所はどこでもいい
wget https://github.com/prometheus/prometheus/releases/download/v1.8.0/prometheus-1.8.0.linux-amd64.tar.gz

# 解凍
tar xzvf prometheus-*

# 実行
cd prometheus-*
./prometheus # オプションも何もなしにとりあえず実行する

Prometeus server を起動する際に -config.file= を使用して任意のconfigファイルを使用することができる。

Web UI の確認

Prometheus server のWebIFにアクセスしてみて、正常に稼働していることを確認する。

ブラウザで http://:9090 と入力。
トップの画面はこんな感じ。

ScreenShot

グラフを表示してみる

上部メニューの [ Graph ] を選択し、[ Execute ] ボタンの右のプルダウンから値を確認したいメトリクスを選択する。テキスト入力ボックスにワードを入れるとメトリクス名の候補が表示されるのでそこから選択するのでも良い。

例として、 [process_cpu_seconds_total ] メトリクスの結果を参照してみる。
何か値が表示されればオッケー。
用意したサーバの時刻同期ができていないとメトリクスの値を参照することができないので注意。
ScreenShot 1

node_exporter の構築

環境

node_exporterを実行するようのサーバを1台用意する。

    mac os x: 10.10.5
    virtual box: 5.1.8
    vagrant: 1.8.6
    virtual machine: centos7
    node_exporter: 0.15.0
    go: 1.9.1

node_exporter のダウンロード

ダウンロードして解凍してバイナリを実行するだけ

# download
cd /usr/local/bin
wget href="https://github.com/prometheus/node_exporter/releases/download/v0.15.0/node_exporter-0.15.0.linux-amd64.tar.gz

# 解凍
tar xzvf node_exporter-* 

# 実行
cd node_exporter-*
./node_exporter # オプションも何もなしにとりあえず実行する

metrics が収集できているかを確認

ブラウザで監視対象のメトリクスのページを参照する。
http://:9100/metrics

収集した値が表示されていればオッケー。こちらも時刻同期設定をしておくこと。
ScreenShot 2

targetの追加

ここまでで、 Prometheus server と node_exporter を立てましたが、今の時点では Prometheus server から node_exporter は見えていない。configに監視対象となるnodeの情報を追加する。

prometheus.yml を修正する

Prometheus server の設定ファイルである prometheus.yml を編集する。

今回はstatic_config ブロックに新しいtargetを直に指定して対象が追加されることを確認する。
prometheus.yml の修正方法は公式ドキュメントを参照。
ジョブ=prometheusは Prometheus server 用として、もう一つジョブのブロックを作ってtargetを追加したほうがいいのかも。

   static_configs:
      - targets: ['localhost:9090']
      - targets: ['<clientのip>:9100'] ←これを追加

設定を反映する

以下の2つの方法のうちどちらかを実行する

設定をreloadする方法

curl -X POST http://localhost:9090/-/reload

prometheus server のプロセスを再起動する方法

kill -HUP <prometheus server の プロセスID>

設定を反映した後でブラウザに移動し、上部メニュー [ Status ] > [ Targets ] で監視対象nodeが追加されていることを確認する。

先ほど target に追加したnodeが表示されていればオッケー
ScreenShot 4