プロセスごとの帯域幅使用量を監視する方法

プロセスごとの帯域幅使用量を監視する方法

最近、DigitalOcean Droplet (Ubuntu) に vnstat をインストールしました。約 1 か月後、ログを確認することにしましたが、驚いたことに、サーバーに出入りする「膨大な」帯域幅がありました。1 日あたり 50 ~ 100 MB です。この Droplet は、nginx を介して画像のない単一の静的ページのみをホストしているため、これは多すぎます。

プロセスごとに帯域幅の使用状況をログに記録して、原因を突き止めるにはどうすればよいでしょうか? nginx ログを確認しましたが、送信バイトはほとんどなかったので、何か他の原因があるはずです...

nethogs などに遭遇しましたが、これらのツールの問題点は、vnstat とは異なり、ライブ データのみを収集することです。理想的には、vnstat のように機能し (5 分ごとに tats を更新)、どのプロセス/ポートなどが原因であるかも教えてくれるものがほしいです。

答え1

監視を行うには Windows ボックスが必要ですが、SolarWinds の無料 Bandwidth Analyzer ツールを使用すると、帯域幅情報と NetFlow を取得できます (ルーターがサポートしている場合)。さらに手間をかけたい場合は、NetFlow 用の IPTables モジュールをインストールできます (詳細はこちら:https://serverfault.com/questions/306361/linux でネットフローデータを生成する方法) を使用すると、外部ノードが接続されているかどうか、各ノードにどのくらいのトラフィックが流れているか、どのプロトコルを使用しているかがわかります。

関連情報