連載
» 2015年10月23日 05時00分 公開

Docker運用管理製品/サービス大全(3):Docker管理ツール、Kubernetes、etcd、flannel、cAdvisorの概要とインストール、基本的な使い方 (5/6)

[澤井健,株式会社NTTデータ]

cAdvisorの主な機能

 cAdvisorはグーグルが開発しているコンテナー環境を監視するOSSです。コンテナーリソースの使用率と性能特性を提供するものです。しきい値監視や通知といった機能はありません。

 cAdvisorは取得した情報をブラウザーで確認したり、外部のDBに保存したり、RESTを使ってJSON形式でアウトプットしたりするものです。このアウトプットした情報を他のソフトウエアで監視や通知するという形になると思われます。

 cAdvisor自身はメモリ上にデータを持つためデータを蓄積することはありません。cAdvisorのドキュメントによるとInfluxDBにデータをエクスポートして蓄積する方法があります。

cAdvisorで取得できる項目

 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%)


特定プロセスの使用リソース(Docker daemon、kube-proxy、kubelet)
カテゴリ 取得値 値の例
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が使用しているリソースやイメージ
カテゴリ 取得値 値の例
システム 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で値を取得する方法

 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を使いコンテナー環境を監視する手順

 ここからは、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の振る舞いを確認してください。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。