第1回 Dockerコンテナ監視
本シリーズは、オールインワン・ハイブリッドITインフラ監視ツールが持つ1,800以上のプラグインの中からレガシーで役に立つプラグイン及び現代技術の流行にあったプラググインをご紹介していく連載記事です。
Checkmkを開発するtribe29社のサイトにいけば、プラグイン設定方法に関するマニュアルを閲覧することができます。本連載では、本家でやっている設定方法に重きを置いたプラグイン紹介ではなく、当該プラグインがどのような情報を収集しているのか?そしてそれらの情報を使ってどのように統合監視に役立てることができるのか?にフォーカスした記事を作成していきます。
本記事の情報を使って、Checkmkが実現する統合監視の世界を垣間見ていただければ、幸いです。
文:ジュピターテクノロジー よしひろ
※本記事で張りけている図が見づらい場合は、図をクリックすると拡大されますのでお試しください。
- CheckmkのDokcer監視プラグインで、できるようになること
- 各コンテナの起動状況確認
- Dockerノード情報の確認
- コンテナのディスク/イメージ/ボリューム/BuildCache利用状況
- コンテナのCPU,メモリ,DISK IO利用状況確認
- コンテナのアップタイムの確認
- コンテナステータス情報確認
- 監視対象環境
今回Checkmk Dockerプラグインで監視する対象は、図1の通りです。
監視対象ホストが、k8s001サーバー。このサーバーにDockerがインストールされており、quizzical_germainとhopeful_bose2つのubuntuコンテナが起動している状態を監視します。
図1 監視対象ホスト
- 各コンテナの起動状況確認
サーバーk8s001のサービスとして表示される”Docker containers”は、全体コンテナ、停止しているコンテナ、一時停止しているコンテナ、起動中のコンテナの数を監視し時系列グラフでそれらの推移を監視することができます。
図2は、”Docker containers”サービスの画面でコンテナの数は、3個。起動しているコンテナが2つ、停止しているコンテナが1つであることが分かります。
また、13:08にコンテナが1つ追加で起動されたことが分かります。
図2 Docker containersサービス
- Dockerノード情報の確認
サーバーk8s001のサービスとして表示される”Docker node info”は、Dockerデーモンのステータスを確認することができます。
複数Dockerを起動している環境でのDockerデーモンの稼働状況や、稼働時間を確認するのに役立てることができます。
図3 Docker node infoサービス
- コンテナのディスク/イメージ/ボリューム/BuildCache利用状況
サーバーk8s001のサービスとして表示される”Docker disk usage”は、Dockerが利用するディスク、イメージ、ボリューム、BuildCacheのサイズを監視し時系列グラフでそれらの増減を確認することができます。
図4 Docker disk usageサービス
図5は、”Docker disk usages containers”サービスの例です。
リアルタイムで作成した3つのコンテナが利用するディスクサイズの推移をグラフで確認することができます。
図5 Docker disk usages containersサービス
- コンテナのCPU,メモリ,DISK IO等の利用状況確認
サーバーk8s001、Docker内の各コンテナが利用するCPU、メモリ、DISK IOを確認することができます。コンテナにCheckmk agentを別途インストールすれば、NICの監視も可能です。各コンテナの監視は、CheckmkのPiggybackという機能を使って実現しているのですが、Piggybackについては別記事でご紹介させていただきます。ここでは、Dockerコンテナの詳細を監視するには、Piggybackという機能を使っているんだくらいの理解をしていただければ十分です。
図6は、コンテナquizzical_germainの監視サービス一覧です。CPU、メモリ、DISK IO、NIC、Uptime、コンテナステータスの監視を実現していることが分かります。
時系列データを保存する監視サービスに関しては、サービスをクリックすると時系列グラフが表示され、値の推移をグラフで確認することができます。
図7は、コンテナquizzical_germainのCPU利用状況の時系列グラフとなります。