prometheus のデータを grafana でグラフ表示してみた

  • 9
    Like
  • 0
    Comment

prometheus

  • 初期設定
prometheus.yml
global:
  external_labels:
      monitor: 'codelab-monitor'

rule_files:

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
docker-compose.yml
prometheus:
  image: prom/prometheus
  volumes:
    - ./prometheus.yml:/etc/prometheus/prometheus.yml
  ports:
    - "9090:9090"

dockerを使わない場合

wget "https://github.com/prometheus/prometheus/releases/download/v2.0.0-rc.2/prometheus-2.0.0-rc.2.linux-amd64.tar.gz"
tar xzf "prometheus-2.0.0-rc.2.linux-amd64.tar.gz"
cd prom*
./prometheus

監視対象の追加方法

https://github.com/prometheus/node_exporter/releases
から node_exporter-0.15.0.linux-amd64.tar.gz 内のnode_exporter を取得。

起動。9100でLISTEN
./node_exporter

もしくはdockerを使っても良い。参考:PrometheusでDockerホスト + コンテナを監視してみた

prometheus/node-exporter(22.8MBと小さい)
docker run -d -p 9100:9100 \
  -v "/proc:/host/proc:ro" \
  -v "/sys:/host/sys:ro" \
  -v "/:/rootfs:ro" \
  --net="host" \
  quay.io/prometheus/node-exporter \
    -collector.procfs /host/proc \
    -collector.sysfs /host/sys \
    -collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)"
prometheus.ymlに対象の追加
 global:
   external_labels:
       monitor: 'codelab-monitor'

 rule_files:

 scrape_configs:
   - job_name: 'prometheus'
     static_configs:
       - targets: ['localhost:9090']

+  - job_name: 'node'
+    static_configs:
+      - targets: ['localhost:9100']
設定反映
./prometheus

nodeが追加されたことを確認。

スクリーンショット_2017-09-17_14-23-12.png

全CPU合計の最大が100として
100 - (avg by (instance) (irate(node_cpu{job="node",mode="idle"}[5m])) * 100)

1.png

さらなる監視対象の追加方法

prometheus.yml
+      - targets: ['192.168.100.53:9100']
# ymlを書き換えた後はHUPかければ良い (6秒位反映に時間がかかる)
killall -HUP prometheus

grafana

docker-compose.yml
grafana:
  image: grafana/grafana
  ports:
    - "3000:3000"

login.png

スクリーンショット_2016-12-12_07-41-38.png

  • Data Source に prometheus を追加
    • localhost で Templating init failed が出た場合は ipアドレスを指定すれば良い。(prometheusをtar.gzから展開して実行したホストと、grafanaがdockerで起動した場合、ipアドレス指定が必要。)

スクリーンショット_2016-12-12_07-49-38.png

Dashboards -> Import

スクリーンショット_2016-12-12_07-43-57.png

a.jpg

スクリーンショット_2016-12-12_07-50-39.png

dashboard.png

スクリーンショット_2017-09-17_16-31-06.png

グラフの編集

グラフのタイトルを左クリック -> Edit

title.png

Metrics -> クエリを入力 -> (グラフが表示されていなければ)右の目アイコンをクリック

スクリーンショット_2017-11-04_11-48-32.png

  • Legend format : {{instance}} にすると prometheus に登録されているipaddress:port が表示される。

終わったら 右の目アイコンの上の × をクリック

負荷をかけてみる

yes > /dev/null