Linux のネットワーク接続数を接続先毎に集計及びグラフ化する方法 (ワンライナー)


Linux のネットワーク接続数を接続先毎に集計及びグラフ化する方法

Linux で、各接続先毎にどの程度の接続が確立されているかを数値とグラフで分かり易く表示する方法です。

実際にどの IP アドレスに対してどの程度の接続数があるのか数値を出力するとともに、接続数をグラフ化してくれるものです。視覚的にも分かり易く、各種調査に非常に役立ちます。しかも1行で実行できますのでとても便利です。




ワンライナー(1行コマンド)でネットワーク接続数を集計する

では早速以下のコマンドで、各ネットワーク接続先毎に接続数を集計しグラフ化してみます。
$ netstat -an | grep ESTABLISHED | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | awk '{ printf("%s\t%s\t",$2,$1) ; for (i = 0; i < $1; i++) {printf("*")}; print "" }'
10.10.10.4      2       **
10.10.10.5      3       ***
10.10.20.16     7       *******
10.10.20.26     1       *
127.0.0.1       3       ***
200.10.200.115  1       *
200.10.200.135  1       *
200.10.200.16   4       ****
200.10.200.17   1       *
200.10.200.181  1       *
200.10.200.194  3       ***
200.10.200.38   1       *
200.10.200.39   2       **
200.10.200.44   1       *
200.10.200.47   4       ****
200.10.200.76   1       *

左列から順に「接続先 IP アドレス」、「合計接続数」、「合計接続数のグラフ」となっています。

ただしこのコマンドは、接続状態が ESTABLISHED (正しく接続が確立されている) 接続だけを集計していますので、接続が正しく確立されていないものは集計されません。