2018年9月29日土曜日

Prometheus を試してみた

概要

Prometheus は次世代の監視システムとして話題のツールになっています
基本構成は監視対象のサーバに exporter と呼ばれるエージェントをインストールすることで監視できるようになります
exporter には様々な種類があり監視したいプロセスやミドルウェアによってインストールする exporter を変更します
今回は基本的なサーバ監視として node exporter をインストールしてサーバ監視をしてみました

環境

  • サーバ
    • Ubuntu 16.04 LTS
    • Prometheus 2.4.2
  • 監視対象
    • Ubuntu 16.04 LTS

Prometheus サーバ構築

設定ファイル作成

  • vim prometheus.yml
global:
  scrape_interval:     15s
  evaluation_interval: 15s

alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

rule_files:

scrape_configs:
  - job_name: 'worker'
    static_configs:
    - targets: ['192.168.100.10:9100']
  - job_name: 'worker2'
    static_configs:
    - targets: ['192.168.100.11:9100']

ポイントは scrape_configs でここで監視対象のサーバを指定します
9100 ポートは監視対象のサーバで node exporter をインストールした際に LISTEN するデフォルトのポートです

Prometheus はここで定義された監視対象に対して scrape_interval で指定された間隔ごとにメトリックの取得を行います

サーバ起動

  • docker run -d -p 9090:9090 -v $(pwd):/prometheus-data prom/prometheus --config.file=/prometheus-data/prometheus.yml

作成した設定ファイルをコンテナにマウントして起動します

localhost:9090 にアクセスすると、とりあえず Prometheus の UI にアクセスできます

node exporter のインストール

監視対象のサーバで以下のコマンドを実行するだけです

  • docker run -d --net="host" --pid="host" quay.io/prometheus/node-exporter

動作確認

Prometheus の UI からStatus -> Targets を確認しましょう
prometheus1.png

監視対象の一覧が表示されます
スタータスが up になっていれば監視が始まります

うまくステータスが OK にならない場合は ufw などの設定を確認してください
Prometheus サーバから各サーバの 9100 ポートにアクセスできる必要があります

あとはトップ画面から表示したいメトリックを選択して「Execute」すれば OK です
node exporter で取得できるメトリック名はサフィックスに node_ が付与されています
以下は「node_memory_MemFree_bytes」の表示結果です
prometheus2.png

タグを Graph に切り替えれば時系列のグラフを確認することができます

最後に

Prometheus に入門してみました
よく Docker などのコンテナ監視をする際に Prometheus が出てくることがあります
Docker には Prometheus のメトリック情報をデフォルトで取得できる方法があるため連携しやすいという感じです
その方法も次回紹介したいと思います

参考サイト

0 件のコメント:

コメントを投稿