LoginSignup
35

More than 1 year has passed since last update.

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

Last updated at Posted at 2016-12-11

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 \
  -v "/proc:/host/proc:ro" \
  -v "/sys:/host/sys:ro" \
  -v "/:/rootfs:ro" \
  --net="host" \
  quay.io/prometheus/node-exporter
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

グラフ描画例

http://localhost:9100/metrics にアクセスすると
node_load1 0.13
などあるので、こちらを prometheusの入力欄に貼り付けると下のConsoleに指定方法が表示される。

スクリーンショット_2017-11-24_21-12-26.png

11.png

grafanaに貼り付けてグラフが描画されることを確認。

スクリーンショット_2017-11-24_21-15-13.png

grafana

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

設定を指定するには以下

docker-compose.yml
grafana:
  image: grafana/grafana
  container_name: grafana
  environment:
    - TZ=Asia/Tokyo
    - GF_PATHS_DATA=/var/lib/grafana
    - GF_PATHS_LOGS=/var/log/grafana
    - GF_SECURITY_ADMIN_USER=admin
    - GF_SECURITY_ADMIN_PASSWORD=admin
    # iframeの埋め込みに対応
    - GF_SECURITY_ALLOW_EMBEDDING=true
    # iframeの埋め込みを認証なしで表示
    - GF_AUTH_ANONYMOUS_ENABLED=true
    # Grafanaサーバーのアドレスを指定 (share時に便利)
    - GF_SERVER_ROOT_URL=http://192.168.100.65:3000
  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

flowchart-plugin

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35