2018年9月28日金曜日

コンテナ監視に cAdvisor を使ってみた

概要

cAdvisor はコンテナのメトリックを簡単に取得できる監視ツールです
今回はインストールから各コンテナのメトリックの確認までしてみました

環境

  • docker 18.03.1-ce
  • Ubuntu 16.04 LTS
  • cAdvisor (v0.27.4)

インストール

メトリックを取得したいコンテナが動作しているホストで以下を実行します

docker run \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:ro \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  --volume=/dev/disk/:/dev/disk:ro \
  --publish=8080:8080 \
  --detach=true \
  --name=cadvisor \
  google/cadvisor:latest

監視に必要なパスをコンテナで ReadOnly でマウントしてファイルからメトリックの情報を取得しています

UI 確認

API もありますが今回は UI から確認してみました
localhost:8080 にアクセスすると localhost:8080/containers/ のトップページにリダイレクトされます

このページだとホストのメトリックしか監視できないので各コンテナの状態が確認できる「Docker Containers」を選択します
cadvisor1.png

すると localhost:8080/docker/ にアクセスします
ここに動作しているコンテナの一覧が表示されると思います
cadvisor2.png

ここからメトリックを確認したいコンテナを選択すると以下のような詳細が画面になります (一部抜粋)
cadvisor3.png

詳細画面では以下を確認することができます

  • 起動プロセスの一覧
  • CPU 使用率
  • メモリ使用率
  • ネットワーク転送量
  • ファイルシステム使用率

画面を下にスクロールしていくとリアルタイムに上記の情報が確認できると思います
各コンテナの詳細ページではコンテナごとのメトリックが確認できるのでホスト全体で確認したい場合は localhost:8080/containers/ で確認することができます

所感

少ししか触ってないですが所感です

まず複数のホストの監視は基本できません
ホストにメトリック情報を収集するエージェントをインストールして cAdvisor に送信することでできるようですが非公式っぽいです
なので基本はシングルホストの監視として使います
過去に Portainer というツールで監視しましたが基本的にはこれと同じ感じです
Portainer はリモートホストの docker ホストも監視できるので、その点では Portainer のほうがいいかもしれません

またできることはメトリック情報を確認することしかできないのでアラートを飛ばしたりもできません
なのでアラートなどを飛ばしたい場合は Prometheus などの統合監視ツールと連携してコンテナ監視をする感じになります

参考サイト

0 件のコメント:

コメントを投稿