話題の記事

ZabbixでDockerコンテナを簡単に監視する

2016.05.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

コンニチハ、千葉です。

Zabbixを使ったDockerコンテナのモニタリングを試してみました。

Zabbix Docker Monitoringとは?

Monitoring Artist社にてZabbix Docker Monitoringが開発されています。Zabbix Docker Monitoringのコンテナを起動するだけでDockerコンテナのモニタリングができます。もちろん、Zabbix Docker Monitoringを起動したホスト上のコンテナを自動で検出してモニタリング対象としてくれます。素敵です。

動作イメージです。

zabbix

出典元

ホスト上にZabbix Docker Monitoringコンテナを起動し、そのコンテナがDockerエンジンとcgroupへアクセスし情報を取得します。この情報をZabbix Serverへ送ることでモニタリングします。

モニタリングの項目

おもに、以下の情報を取得できます。

  • コンテナの起動状態
  • コンテナのメモリ利用状況
  • コンテナのcpu利用状況
  • コンテナのブロックI/O
  • docker inspectの情報
  • docker infoの情報

将来的には、systemdサービス単位でのcpuやメモリ、ログなんかも取得できるようになるようです。

試してみた

Zabbix Serverを用意

まずは、テスト用にZabbix Serverを用意する必要があります。今回は動作を試してみたいので、Zabbix ServerもDocker上で構築します。 こちらを参考にZabbix Serverを用意します。

Zabbix Docker Monitoringを起動する

監視対象となるDockerホスト上に、Zabbix Docker Monitoringコンテナを起動します。

boot2dockerを利用している環境では、ZABBIX SERVER IPに192.168.99.100を指定します。

docker run \
  --name=zabbix-agent-xxl \
  -h docker-host-1 \
  -p 10050:10050 \
  -v /:/rootfs \
  -e "ZA_Server=<ZABBIX SERVER IP/DNS NAME>" \
  -d monitoringartist/zabbix-agent-xxl-limited:latest

Zabbix ServerへDockerコンテナ対応のテンプレートをインポートする

Dockerコンテナ用のテンプレートをインポートします。

こちらをダウンロードします。

Templates > Import より、ダウンロードしたファイルをインポートします。

zabbix-docker-monitoring-4

Zabbix ServerへDockerホストを登録する

Configuretion > Hosts > Create host

zabbix-docker-monitoring-1

それぞれ入力します。boot2dockerを利用している環境では、IPアドレスは192.168.99.100を指定します。

zabbix-docker-monitoring-2

Dockerホスト用のテンプレートを適用します。

Templates > Select > Template App Docker - www.monitoringartist.com > Select > Add > Update

※かならずAddをクリックしてください。Selectしただけだとテンプレートは適用されていません。

zabbix-docker-monitoring-3

Linked templatesにTemplate App Docker - www.monitoringartist.comが表示されていることを確認します。

これで設定完了です。

メトリクスの確認をしてみます

コンテナ単位のメトリクスの取得

Monitorin > Latest data > Host groups にdockerを指定

zabbix-docker-monitoring-5

dockerホスト上で動作しているコンテナのcpuやメモリ使用率がとれてます!

最後に

監視用のコンテナをを起動するだけでコンテナのCPU等のリソース情報を取得できました。素敵です。

参考