Docker for Mac のリソースを監視してみた

docker

本記事は、Docker Weekly #197 で紹介されていた以下の blog ポストより引用しています。

ざっくり紹介

Docker for Mac/Windows にモニタリング機能が、デフォルトで組み込まれました。 Docker for Mac/Windows で Prometheusフォーマットの Daemon metricsを有効にします。Docker Daemon がメトリックを記録し、これらを使用するように Prometheus スタックを設定し、Grafana dashboard にインポートすることで興味深いグラフやレポートを作成できるはずです。Happy Monitoring.

というわけで、試しに検証してみます。

検証環境について

筆者の環境は、以下のとおりです。

 ~ $ sw_vers 
ProductName:    Mac OS X
ProductVersion: 10.12.6
BuildVersion:   16G29
 ~ $ docker version
Client:
 Version:      17.06.0-ce
 API version:  1.30
 Go version:   go1.8.3
 Git commit:   02c1d87
 Built:        Fri Jun 23 21:31:53 2017
 OS/Arch:      darwin/amd64

Server:
 Version:      17.06.0-ce
 API version:  1.30 (minimum version 1.12)
 Go version:   go1.8.3
 Git commit:   02c1d87
 Built:        Fri Jun 23 21:51:55 2017
 OS/Arch:      linux/amd64
 Experimental: true
 ~ $ 

やってみた

設定手順は、以下のとおりです。まずはじめに、Docker for Mac の設定メニューを開きます。

Docker Preferences Menu

次に、Daemon メニューから Advanced を選択します。debug 文の下に、以下のコードを追加してください。

"metrics-addr":"0.0.0.0:9323",

スクリーンショット 2017-08-03 9.28.41

Apply & Restart ボタンをクリックし再起動するのを待ちます。最後にブラウザから、以下の URL にアクセスしてデータが表示されることを確認しましょう。

Prometheus 環境の構築

Prometheus スタックを、docker-compose で立ち上げるだけです。

Prometheus のソースを Clone します。

$ git clone https://github.com/vegasbrianc/prometheus.git

prometheus/prometheus.yml を編集します。修正箇所は、最終行の static_configs セクションの target です。 Docker for Mac を実行している macOS のホスト名もしくは IP アドレスを指定します。(以下の例では、IP アドレスを指定しています)

 ~/github/prometheus $ git diff ^HEAD
diff --git a/prometheus/prometheus.yml b/prometheus/prometheus.yml
index c537348..dcfc784 100644
--- a/prometheus/prometheus.yml
+++ b/prometheus/prometheus.yml
@@ -28,4 +28,4 @@ scrape_configs:
     # scheme defaults to 'http'.

     static_configs:
-         - targets: ['localhost:9090','cadvisor:8080','node-exporter:9100']
+         - targets: ['192.168.10.105:9323','cadvisor:8080','node-exporter:9100']
 ~/github/prometheus $ 

最後に、Prometheus スタックを起動します。

$ docker-compose up -d

Grafana の設定

ブラウザから以下にアクセスします。ユーザ名 "admin" パスワード "foobar" でログインします。

スクリーンショット 2017-08-03 9.59.11

Add Data Source ボタンをクリックします。

Grafana Home 1

データソースの項目に、次の情報を入力し Add ボタンをクリックします。

設定項目
Default チェックを入れる
Name Prometheus
Type Prometheus
URL http://prometheus:9090
Access proxy
Http Auth Basic Auth
User admin
Password foobar

Grafana Home 2

Save & Test ボタンをクリックします。

Grafana Home 3

右上隅の Grafana ロゴをクリックし、ダッシュボードにカーソルを合わせ、 import を選択します。

Grafana Home 4

Grafana.com Dashboardの入力エリアに 179 を入力し、 Load をクリックします。

Grafana New dashboard 1

最後のフィールドのドロップダウンをクリックして Prometheus を選択し、Import をクリックします。

Grafana Docker Dashboard

いい感じですね。

さいごに

Docker for Mac のモニタリング環境(ダッシュボード)が割りと簡単に手に入りました。 Prometheus や Grafana など知らなかった OSS のモニタリングツールも触ることが出来たので コンテナ環境で負荷を掛けたり、遊びながらリソースをモニタリングしてみたいと思います。

ではでは