私は1ヶ月間のトラフィックを制限し、トラフィックが超過した場合に課金される仮想サーバープランを研究しています。
発信トラフィックを自動的に追跡し、サービスが制限に近づくと自動的に停止できるようにしたいと思います。
Linuxでこれを達成するためにどのツールを使用できますか?
ありがとうございます!
答え1
さて、制限が何であるか、スクリプトの能力が何であるかわからない場合でも、ここに提案があります。
インストールvnstat
- Ubuntuは含まれている悪魔プロセスを自動的に開始し、ネットワーク監視を即座に開始します(コンテンツスヌーピングではなくトラフィック統計のみ)。
次のようにインタラクティブに表示できます。
vnstat
Database updated: 2023-09-30 09:40:00
enp0s31f6 since 2023-09-30
rx: 7.85 GiB tx: 93.23 MiB total: 7.94 GiB
monthly
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
2023-09 7.85 GiB | 93.23 MiB | 7.94 GiB | 26.88 kbit/s
------------------------+-------------+-------------+---------------
estimated 8.02 GiB | 93.93 MiB | 8.11 GiB |
daily
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
today 7.85 GiB | 93.23 MiB | 7.94 GiB | 1.96 Mbit/s
------------------------+-------------+-------------+---------------
estimated 19.48 GiB | 231.46 MiB | 19.71 GiB |
コマンドラインスイッチを使用して転送されたデータのみを抽出することもできます(例:awk
次の例では、転送される111 MBのデータを調べます。
vnstat --oneline b |awk -F';' '{print $10/1024/1024}'
111.726
これをcronで実行されているシェルスクリプトに貼り付け、5分ごとに転送ボリュームをしきい値と比較し、スクリプトにサービスを停止させることができます。 1 か月間 5 GB の送信トラフィックを許可するとします。
#!/bin/bash
[ $(/usr/bin/vnstat --oneline b |/usr/bin/awk -F';' '{printf "%d", $10/1024/1024}') -gt 5000 ] && /usr/bin/systemctl stop service
入れroot
ておけばcrontab
笑います。
答え2
グラパナ+プロメテウス。
システム/サーバーにこれを設定し、クライアントシステムにprometheus-node-exporterをインストールします。その後、Grafanaは、漏洩するデータ量などの特定のしきい値に達したときにカスタム警告を作成できます。