Zabbix で CoreOS と Docker コンテナを監視してみよう! | SiTest (サイテスト) ブログ

メニューボタン閉じるボタン

Zabbix で CoreOS と Docker コンテナを監視してみよう!

最近 Docker をはじめとするコンテナ技術がどんどん浸透していることもあり、サービスに取り入れられている現場も多くあると思います。

Docker を使用した場合、ちょっと上手く設定しないと、なかなかコンテナ単位でのリソース監視ができません。
そこで今回は CoreOS 上に展開している Docker コンテナに Zabbix を使って監視する方法をご紹介します!

Zabbix とは?

Zabbix とは OSS の監視ツールの1つであり、
Cacti、Munin、Nagios などと並んでよく使用されています。
監視方法の種類も豊富で、SMTP や HTTP、SNMP 経由等での監視手段がサポートされています。
また、エージェントを監視対象のホストにインストールすることで、ロードアベレージ、ネットワーク IO、ディスク容量などのステートも監視することが出来ます。

CoreOS とは?

CoreOS とは、CoreOS 社が提供している OSS の Linux Distribution です。
コンテナを実行させることに特化しており、パッケージマネージャすらもインストールされていない軽量なものとなっています。
他にも Kubernetes と呼ばれるクラスタリングシステムや、Kubernetes の分散環境を支える etcd という分散システムツールが提供されています。

Docker コンテナを監視しよう!

事前準備

予め Zabbix Server を用意しておきます。

  • OS (Ubuntu 14.04.5 LTS)
  • Zabbix Server (3.0.9)

監視用ホストには以下を想定しています。

  • CoreOS stable (1353.7.0)
  • Docker (version 1.12.6)
  • Zabbix Agent (3.0.9)

また、Zabbix Agent は10050番ポートで Zabbix Server からのアクセスに対応し、Zabbix Server は10051番ポートで Zabbix Agent からのアクセスに対応します。
ポートを開けていない場合は、それぞれ10050、10051番ポートを開けて下さい。

Zabbix にホストを登録


Zabbix Server で監視対象となるホストを登録しましょう。
「エージェントのインターフェース」のIPアドレスには、監視対象ホストのIPアドレスを記入して追加して下さい。

複数台のホストを運用している場合、自動登録アクションを設定することで1つずつホストを追加していく必要がなくなります。

Zabbix Agent をインストール

用意も整ったところで CoreOS に Zabbix Agentをインストールしていきます。
折角 Docker を使える環境ですので、 Zabbix Agent の Docker イメージがないか探してみましたが、いい感じのイメージがなかったため bhuisgen/docker-zabbix-coreos からフォークして glad-cube/docker-zabbix-coreos を作成しました。

Docker hub にも上げていますので、ご自由にお使い下さい。

使い方は下記の通りとなります。
proc や sys ディレクトリ等の必要なディレクトリをリードオンリーでマウントしています。

docker run -d -p 10050:10050 -u 0 --cpu-shares 1024 -m 64M \
  --memory-swap=-1 --net="host" \
  -v /proc:/coreos/proc:ro -v /sys:/sys:ro -v /dev:/coreos/dev:ro \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -e MONITOR_DC=true \
  --restart=always \
  --name zabbix-coreos gladcube/zabbix-coreos \
  {Zabbix Servre IP} {HostMeta} {HostName}

MONITOR_DC はデフォルトでは false となっています。
この環境変数に true を入れることでコンテナ毎の監視を行うようになります。
上記コンテナを立てるだけで Zabbix Agent による監視が始まります。

テンプレートを登録

こちらから下記2つのテンプレートをダウンロードし、Zabbix Server にインポートします。

  • Zabbix-Template-App-Docker.xml
  • Zabbix-Template-App-Docker-active.xml

最初に追加したホストにも、どちらかのテンプレートをリンクさせましょう。
少し待つとグラフで下記のようにコンテナ単位でCPU使用率などのリソースを見ることが出来るようになります。

まとめ

今回はコンテナ単位のリソース監視までをご紹介しました。
他にもトリガーを設定しておくことで、コンテナ毎にアラートを出したりすることも出来ます。
Zabbix はカスタマイズがすごく出来ますので、色々なやり方を考えていくことも楽しいですね。

まだまだ Zabbix で出来ることは多いので、今後もブログでどんどんご紹介していきます!

今すぐお気軽に
ご相談ください。

0120-315-465

(平日 10:00~19:00)

今すぐお気軽に
ご相談ください。

0120-315-465

(平日 10:00~19:00)

グラッドキューブは
「ISMS認証」を取得しています。

認証範囲:
インターネットマーケティング支援事業、インターネットASPサービスの提供、コンテンツメディア事業

「ISMS認証」とは、財団法人・日本情報処理開発協会が定めた企業の情報情報セキュリティマネジメントシステムの評価制度です。

いますぐ無料で
お試しください。

SiTest の革新的な機能を
お試しいただけます。
利用規約

お名前【必須】
メールアドレス【必須】
電話番号【必須】