クラウドコンピューティングの時代において、仮想マシン(VM)は非常に一般的になり、一方で物理マシンの使用は徐々に減少し始めています。この投稿では、VMでのデータ消費量を監視するために使用できるツール「‘vnStat’」と「‘iftop’」を紹介します。
まず、以下のリソースを持つマシンを作成します。
20 GHz CPU
16 GB RAM
20 GB SSD
I am mounting the disk with Ubuntu 18.04 image that is available in CloudSigma’sのライブラリで利用可能なUbuntu 18.04イメージを使用してディスクをマウントしています。
Ubuntu 18.04 : プリインストールされた64bit(VirtIOドライバー、スーパーユーザー、Python 2.7.15、Pip 18.0、OpenSSL 1.1.0i、Cloud-init、および2018-09-30までの最新アップデートを含む)。
次に、マシン上の既存のすべてのリポジトリとパッケージを更新します。
|
1 2 |
sudo apt update sudo apt upgrade |
システムが最新の状態になったので、ツール「‘vnStat’」と「‘iftop’」に進みます。
VNSTAT
According to humdiによると、vnStatはLinuxおよびBSD用のコンソールベースのネットワークトラフィックモニターであり、選択したインターフェースのネットワークトラフィックのログを保持します。カーネルによって提供されるネットワークインターフェースの統計を情報源として使用します。これは、vnStatが実際にトラフィックをスニッフィングしないことを意味し、システムリソースの軽量な使用も保証します。
vnStatの主な機能は以下の通りです:
- システムが再起動しても、データは保持されます。
- 複数のインターフェースを同時に監視できます。
- 日別、週別など、いくつかの出力オプションがあります。
- データ保持ポリシーはユーザーが設定できます。
- 請求サイクルに合わせて月を設定できます。
- ツール自体は非常に軽量で、リソースの使用は最小限です。
- トラフィックに関係なく、CPU使用率は同じです。
インストール
vnStatをインストールするには、次のコマンドを使用します:
|
1 |
sudo apt install vnstat |
ネットワークインターフェースは自動的に検出されるはずです。検出されない場合は、次のコマンドでインターフェースを確認できます:
|
1 |
ip addr |
私の場合、2つのインターフェースが表示されます:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 22:af:d1:32:d2:0b brd ff:ff:ff:ff:ff:ff inet XXX.XXX.XX.XXX/24 brd XXX.XXX.XX.XXX scope global dynamic ens3 valid_lft 1853sec preferred_lft 1853sec inet6 fe80::20af:d1ff:fe32:d20b/64 scope link valid_lft forever preferred_lft forever |
ループバックインターフェースは無視して構いません。監視したいインターフェースは「‘ens3’」です。次のコマンドを使用して、vnStatでこれを更新できます:
|
1 |
sudo vnstat -u -i ens3 |
使用ガイド
使用ガイドは、次のコマンドを使用して表示できます:vnStat –help
使用方法は以下のように説明されます:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
vnStat 1.18 by Teemu Toivola <tst at iki dot fi> -q, --query クエリ データベース -h, --hours 表示 時間 -d, --days 表示 日 -m, --months 表示 月 -w, --weeks 表示 週 -t, --top10 表示 トップ 10 日 -s, --short 使用 ショート 出力 -u, --update 更新 データベース -i, --iface 選択 インターフェース (デフォルト: ens3) -?, --help ショート ヘルプ -v, --version 表示 バージョン -tr, --traffic 計算 トラフィック -ru, --rateunit 切り替え 設定された 速度 単位 -l, --live 表示 転送 速度 in リアル タイム 参照 また "--longhelp" 用 完全な オプション リスト および "man vnstat". |
これらのコマンドを使用することで、データ使用量のメトリクスを取得できます。
簡単かつ直感的に監視するために、vnStatダッシュボードをインストールできます。ダッシュボードをインストールする手順は次のとおりです。
次の必要な依存関係をインストールします。
|
1 |
sudo apt install apache2 php wget unzip -y |
必要な依存関係をインストールした後、GitHubリポジトリからダッシュボードを取得し、解凍してWebサーバーのディレクトリに配置します。
|
1 2 3 |
wget https://github.com/alexandermarston/vnstat-dashboard/archive/master.zip unzip master.zip sudo mv vnstat-dashboard-master/ /var/www/html/vnstat/ |
次に、設定を編集する必要があります。
|
1 |
sudo vi /var/www/html/vnstat/config.php |
以下の行を変更する必要があります。必要な変更箇所を太字で示しています。
|
1 2 3 4 5 6 7 |
$use_predefined_interfaces = <strong>true</strong>; if ($use_predefined_interfaces == <strong>true</strong>) { $interface_list = <strong>["ens3"]</strong>; $interface_name<strong>['ens3']</strong> = "テストインターフェース"; } |
監視を容易にするために、インターフェースに名前を付けることができます。監視対象のインターフェースは複数指定できます。それらはここに追加できます。
変更を加えた後、<<IP-ADDRESS>>/vnstat を開きます
これで、データをスマートな方法で表示できるようになりました。


IFTOP
iftopは、指定されたインターフェース、または指定がない場合は外部インターフェースのように見える最初に見つかったインターフェースのネットワークトラフィックをリッスンします。ホストのペアごとの現在の帯域幅使用状況の表を表示します。インターフェース上のすべてのネットワークトラフィックを監視するには、十分な権限でiftopを実行する必要があります。
インストール
次のコマンドを使用してIftopをインストールできます:
|
1 |
sudo apt install iftop |
使用ガイド
使用ガイドは、次のコマンドを使用して確認できます:iftop -h
使用方法は以下のように表示されます:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
iftop: 表示: 帯域幅使用量(インターフェース別 ・ホスト別) 概要: iftop -h | [-npblNBP] [-i インターフェース] [-f フィルター コード] [-F net/mask] [-G net6/mask6] -h このメッセージを 表示する -n ホスト名の名前解決を行わない -N ポート番号を サービス名に変換し ない -p プロミスキャスモードで 実行し、同一 (ネットワークセグメント上の他のホスト間の トラフィックを表示するsame network segment) -b トラフィック'の バー グラフ を表示しない -B 帯域幅をバイト単位で表示 する -i interface 指定されたインターフェースでリッスンする -f filter code フィルター コードを使用してカウントする パケットを選択する count (デフォルト:: なし、, ただしIPパケットのみがカウントされます) -F net/mask IPv4ネットワークのイン/アウトのトラフィックフローを/表示するIPv4 network -G net6/mask6 IPv6ネットワークのイン/アウトのトラフィックフローを/表示するIPv6 network -l リンクローカルIPv6トラフィックを 表示およびカウント-するIPv6 traffic ((デフォルト:: オフ)) -P ホストだけでなくポートも表示 するas hosts -m limit 帯域幅スケールの上限を設定する the bandwidth scale -c config file 代替の設定ファイルを指定するfile -t ncursesなしで テキストインターフェースを 使用する ソート順: -o 2s 最初の列(2秒間のトラフィック平均)で (ソート するaverage) -o 10s 2番目の列(10秒間のトラフィック平均、 (デフォルト)で ソートする) [default] -o 40s 3番目の列(40秒間のトラフィック平均)で (ソート するaverage) -o source 送信元アドレスでソートする -o destination 送信先アドレスでソートする 以下のオプションは、tとの組み合わせでのみ使用できますin combination with -t -s num num秒後に1回だけテキスト出力を印刷し、その後終了するseconds, then quit -L num 印刷する行数lines to print iftop, バージョン 1.0pre4 著作権 (c) 2002 Paul Warren <pdw@ex-parrot.com> および 貢献者 |
動作させるにはroot権限が必要です。私のユーザーcloudsigmaはsudoerユーザーなので、単にsudoを使用しています。また、‘sudo su’コマンドを使用して、すべてのコマンドをrootユーザーとして実行することもできます。
次のコマンドを実行すると、インターフェース「ens3」上のすべての接続とデータトランザクションが表示されます。
|
1 2 |
sudo su iftop |
特定の時間帯のデータトラフィックをキャプチャすることが要件である場合の、より簡単な方法:
|
1 |
iftop -t -s 30 |
上記のコマンドは、次の30秒間のデータトラフィックトランザクションを要約し、時間が経過すると、すべてのデータ使用量と転送レートをリストした表を表示します。
iftopはリアルタイムの転送レートを表示しますが、データを保存したり、パターンを直感的に視覚化して確認できるダッシュボードはありません。したがって、リアルタイムのデータ転送レートを確認したい場合は、iftopをお勧めします。より長期間にわたるデータトラフィックの監視には、vnStatをお勧めします。
このガイドを役立てて、VM内でのデータ消費量を監視するためのvnStatおよびiftopの基本的な使い方を実践していただければ幸いです。
コメント
コメントはまだありません。最初のコメントを投稿しましょう。