るいすときのこの物語

オタクエンジニアの雑記

コンテナをZabbixで監視する


今までずっとKVMを使ってきましたがコンテナ型の方が軽いし速いしで 最近はコンテナ(LXC Container)を使っています。

コンテナ型はKVMと違ってエミュレートされず、cgroupでリソース管理がされるため Zabbix-Agentを入れるだけではダメなんです;;

 

[blogcard url="http://www.zabbix.com/img/zabconf2015_jp/presentations/04_zabconf2015_watanabe.pdf"][/blogcard]

詳しいことは上記で説明されています。

 

 

コンテナをZabbixで監視する

既に有志がLXC用のZabbixテンプレートを作成していて公開されていますが 私の環境ではネットワークトラフィックのIn/Outが取得できませんでした(何でかは忘れた)

 

[blogcard url="https://github.com/rluisr/Zabbix-LXC"][/blogcard]

ということでフォークして手直しした。

 

 

Zabbix-LXC

container-zabbix

変更点

  • コンテナに1つ以上のNICがある場合でもIN/OUTの転送量が取得できる(合算)
  • 転送量がきちんと取得できるように(?)
  • Proxmoxを使用している場合にZabbixに登録される表示名にホスト名を指定(そのまんまだとid (ex 100, 101とか)で登録される)

 

インストール方法

$ sudo ./install.sh

 

テンプレートのインポート

# ノードのテンプレート
zbx_template/Template_LXC_Node.yml (Proxmoxの人は Template_LXC_Node_Proxmox.yml)

# コンテナのテンプレート
zbx_template/Template_LXC_CT.yml

の2つインポート

 

コンテナの登録はLLDによって勝手にされるので放置してるだけで大丈夫だと思います。 オリジナルのレポジトリはPerlでディスカバリースクリプト書かれていましたが、PHPで書き直したのでちょっとね.......。 ちなみにProxmoxはデフォでsudoとphpが入ってないのでご注意。