cAdvisorはグーグルが開発しているコンテナー環境を監視するOSSです。コンテナーリソースの使用率と性能特性を提供するものです。しきい値監視や通知といった機能はありません。
cAdvisorは取得した情報をブラウザーで確認したり、外部のDBに保存したり、RESTを使ってJSON形式でアウトプットしたりするものです。このアウトプットした情報を他のソフトウエアで監視や通知するという形になると思われます。
cAdvisor自身はメモリ上にデータを持つためデータを蓄積することはありません。cAdvisorのドキュメントによるとInfluxDBにデータをエクスポートして蓄積する方法があります。
cAdvisorで取得できる情報はホストとコンテナーのリソース使用率と性能特性です。ホストのリソース使用率と性能特性は「http://<IPアドレス>:8080/containers/」で取得できます。
| カテゴリ | 取得値 | 値の例 | |
|---|---|---|---|
| CPU | ホストのCPU使用率 | 0.5 | |
| CoreごとのCPU使用率 | 0.2 | ||
| System/UserそれぞれのCPU使用率 | 0.3/0.2 | ||
| メモリ | Total/Hot(使用中)のメモリ使用量 | 1577/1277Mib | |
| ネットワーク | スループット | 1175ByteperSec | |
| エラー | 0 | ||
| ファイルシステム | ホスト全体のディスク使用量と使用率 | 1.54GB / 105.55GB(1%) | |
| 各コンテナーのディスク使用量と使用率 | 98.85MB / 105.56GB(0%) | ||
| カテゴリ | 取得値 | 値の例 | |
|---|---|---|---|
| CPU | プロセスのCPU使用率 | 0.5 | |
| プロセスのCoreごとのCPU使用率 | 0.3 | ||
| プロセスのSystem/UserのCPU使用率 | 0.3/0.2 | ||
| メモリ | プロセスのメモリ使用量 | 28Mib | |
コンテナーのリソース使用率と性能特性は「http://<IPアドレス>:8080/docker/」で取得できます。
| カテゴリ | 取得値 | 値の例 | |
|---|---|---|---|
| 名前 | コンテナー名 | k8s_POD.e4cc795_kube-apiserver-k8s-guestbook-maste…… | |
| CPU | コンテナーのCPU使用率 | 0.00003 | |
| コンテナーのCoreごとのCPU使用率 | 0.00002 | ||
| コンテナーのSystem/UserのCPU使用率 | 0.00002/0.00001 | ||
| メモリ | コンテナーのメモリ使用量 | 3Mib | |
| ネットワーク | スループット | 0 | |
| エラー | 0 | ||
また、「http://<IPアドレス>:8080/docker/」でDockerが使用しているリソースの情報やイメージ情報が取得できます。
| カテゴリ | 取得値 | 値の例 | |
|---|---|---|---|
| システム | Docker Version | 1.6.0 | |
| Kernel Version | 3.10.0-229.4.2.el7.centos.plus.x86_64 | ||
| OS Version | CentOS Linux 7(Core) | ||
| Host Name | ip-172-31-21-207 | ||
| Docker Root Directory | /var/lib/docker | ||
| Execution Driver | native-0.2 | ||
| Number of Images | 115 | ||
| Number of Containers | 26 | ||
| ストレージ | Data Space Total | 107.4GB | |
| Data Space Available | 5.369GB | ||
| Metadata Space Total | 2.147GB | ||
| Pool Blocksize | 65.54KB | ||
| Data Space Used | 2.139GB | ||
| Pool Name | docker-202:1-410601-pool | ||
| Data file | /dev/loop0 | ||
| Metadata Space Used | 5.628MB | ||
| Metadata Space Available | 2.142GB | ||
| Data loop file | /var/lib/docker/devicemapper/devicemapper/data | ||
| Metadata loop file | /var/lib/docker/devicemapper/devicemapper/metadata | ||
| Backing Filesystem | extfs | ||
| Metadata file | /dev/loop1 | ||
| Udev Sync Supported | TRUE | ||
| Library Version | 1.02.93-RHEL7(2015-01-28) | ||
| イメージ | Repository | docker.io/kubernetes/redis | |
| Tags | v1 | ||
| ID | 690e15a8b1493a98d7c14836 | ||
| Virtual Size | 139.19MiB | ||
| Creation Time | 2015/1/23 8:21 | ||
cAdvisorでは下記のURLにアクセスすることで値を取得できます。
http://<hostname>:<port>/api/<version>/<request>
例えばVersion 1.3のAPIには、下記のアドレスにアクセスし、さらにそこからmachineを選択して値を表示させます。
http://<hostname>:<port>/api/v1.3
出力される値はJSON形式です。2015年6月現在、入手できるcAdvisor 0.14ではAPIのv1.0、1.1、1.2、1.3、2.0を使用できます。v2.0はベータ版です(参考)。
ここからは、cAdvisorを使いコンテナー環境を監視する手順を記載します。
Dockerデーモンが起動している環境で下記のコマンドでcAdvisorのコンテナーを作成します。
docker run \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:rw \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --publish=8080:8080 \ --detach=true \ --name=cadvisor \ google/cadvisor:latest
下記のエラーが出力されて起動できない場合は「--logtostderr」オプションを最後に追記してください。
I0527 06:18:05.589150 00001 storagedriver.go:100] No backend storage selected log: exiting because of error: log: cannot create log: open /tmp/cadvisor.e7e91c812442.root.log.INFO.20150527-061805.1: permission denied
「http://<IPアドレス>:8080」にWebブラウザーからアクセスを行いcAdvisorの振る舞いを確認してください。
所要時間わずか10分で「Docker」を体験しよう――Azureで始めるDocker入門
Linux/OSSに不慣れでも大丈夫! WindowsでDockerを扱う際のポイント
Docker代替のコンテナーランタイム「Rocket」をCoreOSが公開
Docker、そしてCloud FoundryとPaaSの価値とは
レッドハットが発表したOpenShift Enterprise 3は「Dockerを知らなくても使える」基盤
米グーグルのDockerコンテナ管理サービスが一般提供開始Copyright © ITmedia, Inc. All Rights Reserved.