ZabbixでDockerコンテナを簡単に監視する
コンニチハ、千葉です。
Zabbixを使ったDockerコンテナのモニタリングを試してみました。
Zabbix Docker Monitoringとは?
Monitoring Artist社にてZabbix Docker Monitoringが開発されています。Zabbix Docker Monitoringのコンテナを起動するだけでDockerコンテナのモニタリングができます。もちろん、Zabbix Docker Monitoringを起動したホスト上のコンテナを自動で検出してモニタリング対象としてくれます。素敵です。
動作イメージです。
※出典元
ホスト上に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 ServerへDockerホストを登録する
Configuretion > Hosts > Create host
それぞれ入力します。boot2dockerを利用している環境では、IPアドレスは192.168.99.100を指定します。
Dockerホスト用のテンプレートを適用します。
Templates > Select > Template App Docker - www.monitoringartist.com > Select > Add > Update
※かならずAddをクリックしてください。Selectしただけだとテンプレートは適用されていません。
Linked templatesにTemplate App Docker - www.monitoringartist.comが表示されていることを確認します。
これで設定完了です。
メトリクスの確認をしてみます
コンテナ単位のメトリクスの取得
Monitorin > Latest data > Host groups にdockerを指定
dockerホスト上で動作しているコンテナのcpuやメモリ使用率がとれてます!
最後に
監視用のコンテナをを起動するだけでコンテナのCPU等のリソース情報を取得できました。素敵です。