こんちは!開発2部の吉岡です。
最近、開発スタッフがどんどん増えているせいか、社内LANが不安定です…
原因は良く分からないのですが、どっかでLANがループしてブロードキャストストームが発生してるんじゃないかという疑いが。
どうしたもんかと考えていたのですが、社内Linuxサーバーでブロードキャストパケット数を監視出来るようにすれば、なんとかなるんじゃないかと。
そこで前々から気になっていたGrowthForecastを使って試してみました。
GrowthForecastのインストール
サーバーエンジニア勉強会で使用しているクラウドにインストールしてみました。
インストールの方法は、ほぼ下記のページのままです。
GrowthForecast を CentOS 6.3 にインストールして Supervisor で管理してみた
依存パッケージのインストール
# yum install pkgconfig glib2-devel gettext libxml2-devel pango-devel cairo-devel
表示用フォントのインストール
# yum install bitmap-console-fonts
ユーザーの追加
# useradd growthforecast # passwd growthforecast
Perlbrewインストール
# su - growthforecast $ curl -kL http://install.perlbrew.pl | bash $ echo '[[ -s "$HOME/perl5/perlbrew/etc/bashrc" ]] && source "$HOME/perl5/perlbrew/etc/bashrc"' >> .bash_profile $ source $HOME/perl5/perlbrew/etc/bashrc(設定ファイル読込)
perlをインストール
$ perlbrew install perl-5.18.1 $ perlbrew switch perl-5.18.1 $ perl -v(バージョンが 5.18.1 になっているか確認)
cpanmのインストール
$ perlbrew install-cpanm
GrowthForecastインストール
$ cpanm -n GrowthForecast
ディレクトリの作成
$ mkdir /home/growthforecast/data $ mkdir /home/growthforecast/log
起動
$ growthforecast.pl --port=5125 --data-dir=/home/growthforecast/data > /home/growthforecast/log/growthforecast.log 2> /home/growthforecast/log/growthforecast.err &
ブロードキャストの値を取得する
ブロードキャストのパケット数はこちらのページを参考にすると
ethtool -S インターフェイス名
で、取得できるようです。
上記の実行結果の中で「rx_bcast_packets」と言うのがブロードキャストのパケットのようなので、下記のコマンドで取り出します。
/sbin/ethtool -S eth1 | /bin/awk '$1 ~ /rx_bcast_packets/ { print $2 }
ちなみに手元のvagrant環境(CentOS6.4)では、「rx_bcast_packets」ではなく「rx_broadcast」でした…
GrowthForecastに値を渡す
GrowthForecastに値を反映させるのは非常に簡単です。
下記のような感じでhttpで値を渡してやるだけです。
curl -F number=渡したい値 http://サーバーIPアドレス:5125/api/lanmanager/broadcast/packet
なので、crontabに下記のように仕込んでおきます。
*/5 * * * * curl -F number=`/sbin/ethtool -S eth1 | /bin/awk '$1 ~ /rx_bcast_packets/ { print $2 }'` http://サーバーIPアドレス:5125/api/lanmanager/broadcast/packet
これで、5分に1回、ブロードキャストのパケット値がGrowthForecastに送信されるはずです。
グラフを確認する
ブラウザで「http://サーバーIPアドレス:5125/」にアクセスすると、下記のようなグラフが作成されています。
で、今回は、パケット量の増減を見たいので、「setting」ボタンを押下し、「mode」を「substract」(差分)にしておきます。
結果
今のところ、急激にブロードキャストが増える現象は観測されていません。
(ちょっとグラフにスパイクが現れたりすることを期待していたのですが、平和な日々を過ごしています…)