logo header
logo header
logo header
logo header
  • 2015.07.21
  • 技術ブログ

Prometheusでお手軽サーバ監視 (Docker編)

ついに、札幌大通公園ではビアガーデンの季節がやって参りました!
その他の場所でも、ビアガーデンやビールのイベントが開催されていますね。

国内のクラフトビールを色々と試したいtacckです。こんにちは。
私とビアガーデンに行っていただけるビール好きの方、随時募集中です。

さて、前回はPrometheusを使って簡単なサーバ状況の監視を行いました。
今回は、PrometheusをDockerで稼働させて、Dockerそのものの状況監視を試してみたいと思います。

環境

今回はDockerを利用するので、簡単に確認できるようにVagrantを使ってVirtualBox環境を構築します。

今回使用するファイルは下記です。

Vagrantfile

provision.yml

prometheus.yml

Dockerfile

今回はブラウザからの確認を行いやすいように、Vagrantで起動するVMに固定IPを割り当てています。
prometheus.ymlでもそちらを指定しているので、皆さんが試す場合には、各自の環境へ調整をお願いします。

また、今回Dockerの状態監視を行なうために"Container Exporter"を利用しています。

実行

Prometheus、Container Exporter、それぞれのサイトにDockerでの起動方法があるので、それをベースに実行していきます。

まずは、Container Exporterの起動を行います。

はい、上記の通り簡単に起動できたことが確認できます。
引き続き、Prometheusを起動します。

こちらも、簡単に起動できました。
では、ここでPCのブラウザからPrometheusの状態を確認します。

2015072001

画像の中程で「HEALTHY」とあるので、きちんと情報が取れていることがわかりますね。
実際に"Graph"でCPUの使用状況を確認すると、prometheusとcontainer-exporterの情報が出てきます。

2015072002

コンテナの追加

では、コンテナを追加したらどうなるか確認します。
今回は、それなりに大きなものということで"Jenkins"のコンテナを追加してみます。

では、再びPrometheusのグラフを確認します。

2015072003

少々わかりづらいですが、赤で一気に伸びているグラフが今回起動したJenkinsのものです。
大きく負荷がかかっていることがわかりますね。

コンテナの停止

では、Jenkinsのコンテナを止めたらどうなるでしょうか。確認します。

では、Prometheusのグラフを確認します。

2015072004

グラフがストンと落ちていますね。
これでコンテナが停止したことがわかります。
、、、と言いたかったのですが、これ、停止操作してから5分後の状態なのです。
"Container Exporter"から出力されるデータのうち、Jenkinsコンテナのものは停止後にきちんと出なくなっているので、グラフ表示のための仕組みの方で調整が必要そうです。
ここは、今後の課題です。

まとめ

コンテナの停止時の課題はありますが、Dockerの状態を確認するのにもかなり手軽に環境を作ることができました。
このようなツールは日々新しいものが生まれてきているので、自分の使いやすいもの、目的にあったものをきちんと選択し、日々の開発・運用に活用していきましょう。

ともに世界をアップグレードできる、そんな日を夢見て。
Upgrade the World!