いくつかの仮想ネットワークインターフェイスを備えた専用サーバーがあり、それぞれがパブリックIPアドレスにマップされています。 理想的には1つの画面で、それぞれのリアルタイムトラフィック(パケット/秒またはMb /秒)を監視するにはどうすればよいですか?
私が探しているのは次のようなものです:
eth0:0 123 packets/s
eth0:1 234 packets/s
eth0:2 345 packets/s
iptraf
、iftop
、jnettop
を試してみましたが、仮想インターフェイスごとに表示をグループ化することができませんでした。すべてがeth0
。
CentOS(+ EPEL/remi)で利用できる限り、私は他のツールを利用できることに注意してください。
カーネルは「仮想ネットワークデバイス」を別個のデバイスとして扱わないため、この場合のデバイスアプローチはソリューションではありません。技術的には、「仮想ネットワークデバイス」は特定のIPアドレスの単なるラベルです。 ip addr
の出力を見ると、ifconfig
の出力を確認すると、別のデバイスブロックとしてリストされていても、実際の「デバイス」がないことがわかります。 ip-address
のmanページにも、「ラベル」と見なされていることが示されています。 ip addr
を使用してこのような構成をセットアップするには、label
オプションを使用する必要があります。
リアルタイムトラフィックを視覚化するほとんどすべてのコマンドラインツールは、netlink
プロトコル(例:ip net link
)に依存するか、/proc/net/dev
からインターフェースデータを読み取ります。どちらの場合も仮想デバイスは表示されないため、そのようなユーティリティで必要な方法で情報を表示することはできません。
したがって、(現在のネットワーク設定内で)socket
ベースの情報とip
ベースのフィルター/グループを使用して、要求どおりにデータを視覚化することのみが可能です。
たとえば、ntopng
は、ソケットベースの接続データをリアルタイムで視覚化する方法です。また、単一の画面で複数のIPに対してそれを行う柔軟性も提供する必要があります。それでもWebベースのユーザーインターフェイスであり、コマンドライン内で使用することはできません。 RHEL/CentOSの場合は、別のntopng( http://packages.ntop.org/centos/ )リポジトリ内で使用でき、epel
が必要です。
別のソリューションは、仮想ネットワークデバイスを実際のネットワークデバイスとして扱われるデバイスタイプに再設計することです。例えば。 veth
デバイスペアとブリッジを使用して物理デバイスに接続します。最終的には、macvlan
デバイスタイプも機能するようになり、セットアップが簡単になる可能性があります。
簡単な概要については、dstat -f -n
。監視する個々のネットワークインターフェイスも指定します(-N
国旗)。ここで dstatのマンページを読むことができます。
Observiumは、何度も何度もお勧めする素晴らしいオープンソースツールです。大きな設備だけでなく、このような小規模な設備にも対応できます。収集する時間を与えると、準リアルタイムと歴史的な情報が得られます。
iptables統計(iptables -vL)は、各ルールにパケットカウントを実装します。入力チェーンと出力チェーンで異なるIPベースのルールを確立して、仮想IPの各IPへの送信元または宛先を持つすべてのトラフィックを許可できます。/sbin/iptables -A INPUT -d XXX.XXX.XXX.XXX -j ACCEPT /sbin/iptables -A INPUT -d YYY.YYY.YYY.YYY -j ACCEPT /sbin/iptables -A OUTPUT -s XXX.XXX.XXX.XXX -j ACCEPT /sbin/iptables -A OUTPUT -s YYY.YYY.YYY.YYY -j ACCEPT
とにかく、正しいネットワーク構成と同様に、異なるVLAN(eth0.tag1、eth0.tag2、...の代わりにeth0.tag1、eth0.tag2)を使用することをお勧めします。Linuxサーバーに加えて、ネットワークデバイス。