Linuxサーバーのトラフィック監視と分析
序文
日々の業務において、サーバーの帯域トラフィックが増加したり減少したりするため、事後的にその理由を分析する必要がありますが、トラフィックデータを保存する適切な監視システムがない場合、データがなく測位ができないため、事後分析が困難になることがよくあります。リアルタイムの交通データを取得・保存し、原因を分析する方法を中心に紹介します。
1. プロセスレベルのトラフィック監視
nethogs ツールは通常、データの収集に使用されます。nethogs は、yum コマンドを使用してインストールできます。具体的なインストール手順についてはここでは説明しません。ツールの使用方法と、出力のフォーマットとデータの保存方法について次に説明します。
コマンドnethogs -h
help コマンドを実行すると使い方が表示されますが
、このうち -b はバグハントモードに適していることを示し、-t と併用します。
デフォルトではnethogs
、Enter キーを押すと、ページにデータがリアルタイムで動的に表示されます。たとえば、リアルタイム データがテキストに書き込まれて保存されている場合、バックグラウンドで実行する必要がある場合に実行できます。ただし、保存されたnethogs > nethogs.log
ファイルnohup nethogs > nethogs.log &
はこの方法ではcat nethogs.log
表示のみが可能であり、vim で表示すると文字化けが発生します。
この方法ではすべてのデータをキャプチャして保存することはできず、期待される目標を達成できないため、追跡モードを使用してコマンドを実行する必要があります。
nohup nethogs -d 5 -t > networks_program.info &
vim
このうち、-d 5 は表示データの更新を遅らせることを意味し、取得したプロセスで使用されている保存されたトラフィックデータをコマンドで参照できるようになりますが、この方法で保存されたデータは閲覧しにくく、表示データの更新を遅らせることができません 。その時の具体的なトラフィックが分かります。状況は以下のとおりです。
したがって、それをフォーマットし、関連するスクリプトを書いて実装する必要があります。処理されたプロセスフローの入力は次のとおりです。これにより、
保存されたデータをキャプチャできます非常に明確であり、大量のトラフィックを占有するプロセスを分析するために使用でき、また、その時点で収集されたプロセス データも知ることができます。
2. IP間アクセストラフィック監視
1では、nethogs
ツールを使用してプロセス関連のトラフィックデータを取得できますが、実際の分析には十分ではないため、iftop
詳細な分析を実行するには別のツールコマンドを使用する必要があります。
直接実行してiftop
出力をファイルに保存すると、収集したリアルタイムデータはファイルに書き込まれず、ファイルに保存されたデータのみが表示され、表示も文字化けしますので調整がcat
必要vim
ですテキスト形式で出力するための関連パラメータ。コマンドは次nohup iftop -nNP -i eth0 -t -L 10 > networks_ip.info &
のとおりです。 -t はテキスト出力を示し、-L は -t と一緒に使用できます。
⚠️iftop
収集されるデータ量が多いため、ストレージ容量に注意する必要があります実際にディスカバリーサーバーを10時間使用し、60Gのトラフィックデータを収集しました。
同様に、後でデータを分析するには、収集したデータを前処理し、IP トラフィック アクセスを見つけやすくするために各行の前に日付と時刻を追加する必要があります。次の前処理方法を使用できます。
awk '{ print strftime("%Y-%m-%d %H:%M:%S ", systime()) $0 }' tmp_networks_ip.info >>networks_ip.info
要約する
ネットワーク トラフィックを収集、保存、分析するための上記 2 つのツールに基づいて、異常なネットワーク トラフィックの動作をより適切に分析するには、これらを組み合わせて使用する必要があります。