ZabbixでOpenVZやDTI VPSのネットワーク流量をモニタするには 2016年02月19日

The Nic Master

最近はちょこちょことzabbixをいじったりしています。設定に慣れてちゃんと自分のみたい情報をモニタできるようになるとやっぱりいろいろとソフトウェアの動作、ネットワークパフォーマンスに関して理解が深まりますな。

ちなみに仮想化のプラットフォームであるOpenVZや、クラウドサービスであるDTIのVPSを見てみるとゲストOSのインタフェース名が venet0:0 などになっていてこのネットワークインタフェースのトラフィック量をモニタしようとしてもうまく設定できない。ステータスが取得不可になる。

zabbixでのネットワークインタフェースごとのトラフィック量のモニタはzabbixの監視アイテムでキーに

net.if.in[eth0,bytes]

というようにifconfigで確認できるインタフェース名を記載すれば見れるものだと思っていた。が、OpenVZやDTIのVPSだと上にならってvenet0:0という風に指定してもステータス取得不可でエラーが出っぱなし。

net.if.inの監視についてですが、Linuxの場合、/proc/net/dev の中身から監視結果を導きだしています。
そのため、/proc/net/dev に表示されるデバイス名を引数として正しく設定する必要があるかと思います。
私の手元の環境では、/proc/net/dev の中身は以下のようになっています。

> $ cat /proc/net/dev
> Inter-| Receive | Transmit
> face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
> lo: 562150 6216 0 0 0 0 0 0 562150 6216 0 0 0 0 0 0
> virbr0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
> eth0: 207641941 677398 0 0 0 0 0 0 40044342 293802 0 0 0 0 0 0

この場合だと、lo、virbr0、eth0の3つのデバイスの監視が実施できることになります。
一度、この/proc/net/devをご確認いただけますでしょうか。

net.if.in のインターフェース名について | ZABBIX-JP から

調べていくと結局こういうことだった。zabbixのNIC監視のIF名指定フォーマットは、/proc/net/dev に記載されてるインタフェース名が基本になる模様。なのでここに記載されているIF名しか監視できない。

DTIのVPSでは初期設定で割り振られているIPも後から追加するIPも全部 venet0:0 やら venet0:1 やら仮想IPのようなフォーマットで表示されるが、上記の /proc/net/dev の中では venet0 でひとまとめにして記述されている。だから多分これらの複数NICをまとめて一括でモニタするしかできない模様。個人的には全体量が見れればよかったのでいいんだが、人によっては結構文句が出そう。。。

一応自分の備忘録も兼ねて記載しておきます。。。