人気ブログランキング | 話題のタグを見る
(ツール)ネットワーク遅延グラフツールSmokePingを入れてみた
まだある!便利ツール - プロが愛用するネット管理のフリー・ツール:ITproを見てて、SmokePing というツールがあることを知りました。
Pingを飛ばしてRTT(遅延時間)をグラフ化するツールだそうです。
グラフ化するので遅延が一目でわかるのが利点のようですね。しきい値を超えるとメール通知する仕組みもあるようです。

こりゃ便利と思い、すぐに導入できると思ったのですが、案外手間取りました。

インストール対象はRedHatのクローンである CentOS5.6 です。
SmokePingはPerlアプリケーションなので、PerlとApacheが入っている必要があります。

インストール
SmokePingのソースは公式サイトからダウンロード出来るのですが、ソースインストールは今回したくなかったので、RPMパッケージからインストールできないか調査してみました。

するとFedoraのプロジェクトにSRPMパッケージとして公開されていました。

今回は iij のFedora15ミラーサイトより SomokePing のSRPMパッケージをダウンロードしてみます。


# cd /home/hoge
※↓のURLはFedoraの最新開発バージョンによって異なるようです。http://ftp.iij.ad.jp/pub/linux/fedora/ にアクセスしてから確認したほうが無難かもしれません。
# wget http://ftp.iij.ad.jp/pub/linux/fedora/development/15/source/SRPMS/smokeping-2.4.2-12.fc15.src.rpm
# rpmbuild --rebuild smokeping-2.4.2-12.fc15.src.rpm
smokeping-2.4.2-12.fc15.src.rpm をインストール中です。
警告: InstallSourcePackage: ヘッダ V3 RSA/SHA256 signature: NOKEY, key ID 069c8460
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
エラー: アーカイブの伸長に失敗: ファイル /usr/src/redhat/SOURCES/README.fedora;4e03e645: cpio: MD5 チェックサムが適合しません。
エラー: smokeping-2.4.2-12.fc15.src.rpm をインストールできません。

ん?MD5のエラーになります。
その場合、rpmbuildすると cpio: MD5 sum mismatch が出るにあるように下記のようにしてやるといいようです。

# rpm -ivh --nomd5 smokeping-2.4.2-12.fc15.src.rpm
警告: smokeping-2.4.2-12.fc15.src.rpm: ヘッダ V3 RSA/SHA256 signature: NOKEY, key ID 069c8460
1:smokeping 警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザ mockbuild は存在しません - root を使用します
# rpmbuild -ba /usr/src/redhat/SPECS/smokeping.spec
# rpm -Uvh /usr/src/redhat/RPMS/noarch/smokeping-2.4.2-12.noarch.rpm (←CentOS6.0の場合、 /root/rpmbuild/RPMS/noarch/ に出力されていました(rootユーザ))
エラー: 依存性の欠如:
rrdtool >= 1.0.33 は smokeping-2.4.2-12.noarch に必要とされています
fping >= 2.4b2 は smokeping-2.4.2-12.noarch に必要とされています
perl(Config::Grammar) は smokeping-2.4.2-12.noarch に必要とされています
perl(BER) は smokeping-2.4.2-12.noarch に必要とされています
perl(CGI::Session) は smokeping-2.4.2-12.noarch に必要とされています
perl(Net::LDAP) は smokeping-2.4.2-12.noarch に必要とされています
perl(Net::Telnet) は smokeping-2.4.2-12.noarch に必要とされています
perl(Qooxdoo::JSONRPC) は smokeping-2.4.2-12.noarch に必要とされています
perl(RRDs) は smokeping-2.4.2-12.noarch に必要とされています
perl(SNMP_Session) は smokeping-2.4.2-12.noarch に必要とされています
perl(SNMP_util) は smokeping-2.4.2-12.noarch に必要とされています


うーむ、、かなり依存パッケージが足りないようです。

ということで、RPMforgeリポジトリ導入を参考にし、RPMforgeでインストールできるものはインストールしちゃいます。

# yum -y install yum-priorities
# vi /etc/yum.repos.d/CentOS-Base.repo
各セクションの末尾に、priority=1 を追加し上書き保存。
# wget http://apt.sw.be/RPM-GPG-KEY.dag.txt
# rpm --import RPM-GPG-KEY.dag.txt
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
# rpm -ivh rpmforge-release-0.5.2-2.el5.rf.i386.rpm
# yum -y update rpmforge-release

依存パッケージをRPMforgeよりインストール
# yum install rrdtool
# yum install fping
# yum install perl-CGI-Session.noarch
# yum install perl-LDAP.noarch
# yum install perl-Net-Telnet.noarch
# yum install perl-JSON.noarch



残りの依存パッケージはRPMforgeになかったので、SmokePingと同じく、Fedora15のSRPMパッケージを使いました。

# wget http://ftp.iij.ad.jp/pub/linux/fedora/development/15/source/SRPMS/perl-Config-Grammar-1.10-7.fc15.src.rpm
# rpm -ihv --nomd5 perl-Config-Grammar-1.10-7.fc15.src.rpm
# rpmbuild -ba /usr/src/redhat/SPECS/perl-Config-Grammar.spec
# rpm -ihv /usr/src/redhat/RPMS/noarch/perl-Config-Grammar-1.10-7.noarch.rpm

# wget http://ftp.iij.ad.jp/pub/linux/fedora/development/15/source/SRPMS/perl-Convert-BER-1.3101-8.fc15.src.rpm
# rpm -ihv --nomd5 perl-Convert-BER-1.3101-8.fc15.src.rpm
# rpmbuild -ba /usr/src/redhat/SPECS/perl-Convert-BER.spec
# rpm -ihv /usr/src/redhat/RPMS/noarch/perl-Convert-BER-1.3101-8.noarch.rpm

# wget http://ftp.iij.ad.jp/pub/linux/fedora/development/15/source/SRPMS/perl-qooxdoo-compat-0.7.3-9.fc15.src.rpm
# rpm -ihv --nomd5 perl-qooxdoo-compat-0.7.3-9.fc15.src.rpm
# rpmbuild -ba /usr/src/redhat/SPECS/perl-qooxdoo-compat.spec
# rpm -ihv /usr/src/redhat/RPMS/noarch/perl-qooxdoo-compat-0.7.3-9.noarch.rpm

# wget http://ftp.iij.ad.jp/pub/linux/fedora/development/15/source/SRPMS/perl-SNMP_Session-1.12-7.fc15.src.rpm
# rpm -ihv --nomd5 perl-SNMP_Session-1.12-7.fc15.src.rpm
# rpmbuild -ba /usr/src/redhat/SPECS/perl-SNMP_Session.spec
# rpm -ihv /usr/src/redhat/RPMS/noarch/perl-SNMP_Session-1.12-7.noarch.rpm


これで依存パッケージはが入ったので、SmokePingにインストールに再チャレンジ。
# rpm -Uvh /usr/src/redhat/RPMS/noarch/smokeping-2.4.2-12.noarch.rpm


設定
無事にインストールできたら設定を行います。
当初、httpd.confを触る必要があるのかと思ってましたが、その必要はないようです。
RPMパッケージが自動的に、/etc/httpd/conf.d/smokeping.conf という設定ファイルを作ってくれてました。

しかし、アクセス権がデフォルトでは自分自身しか無いので smokeping.conf を設定してやります。

# vi /etc/httpd/conf.d/smokeping.conf

#デフォルトでは自分自身しかアクセス出来ない
<Directory "/usr/share/smokeping" >
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>

<Directory "/var/lib/smokeping" >
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
  ↓
#とりあえず誰でもアクセスできるようにしてみた。
<Directory "/usr/share/smokeping" >
Order allow,deny
# Deny from all
Allow from all
</Directory>

<Directory "/var/lib/smokeping" >
Order allow,deny
#Deny from all
Allow from all
</Directory>


次に、smokepingの設定をし、どのホストを監視するか設定します。
smokeping自体の設定ファイルは /etc/smokeping/config になるようです。

# vi /etc/smokeping/config

#cgiutlのホスト名を変更してやります。
cgiurl = http://localhost/smokeping/smokeping.cgi
 ↓
cgiurl = http://サーバホスト名/smokeping/sm.cgi


#日本語のホスト名の文字化けを解消するために文字コードを指定します。
# *** Presentation *** の後に、charset = UTF-8 を追加します。(configファイル自体もUTF-8である必要があります)
*** Presentation ***
charset = UTF-8

#各監視ホストの設定ですが、下記probe=Fping セクション内に書いてやります。
probe = FPing

menu = Top
title = Network Latency Grapher
remark = Welcome to the SmokePing website of Insert Company Name Here. \
Here you will learn all about the latency of our network.

#ここから↓が各監視ホストの設定です。
+dc             ←監視グループ名(なんでも良い)
menu = domain controller  ←ブラウザで見たときの左側のメニュー名
title = ドメインコントローラ ←ブラウザで見たときのタイトル名

++dc01      ←ホストの識別名(なんでも良い)
menu =dc01    ←ブラウザで見たときの左側のメニュー名
title=ドメコン01 ←ブラウザで見たときのタイトル名
host = 10.0.1.10 ←対象のIPアドレス

++dc02
menu = dc02
title = ドメコン02
host = 10.0.1.11

++dc03
menu = dc03
title = ドメコン03
host = 10.0.98.11


+terminal
menu = terminal
title = terminal server

++ts1
menu = ts1
title = terminal server1
host = 10.0.1.20

++ts2
menu = ts2
title = terminal server2
host = 10.0.1.21

デフォルトだと +Ping にFedoraサイトへの設定があるので、これはのけてしまっていいと思います。

なお、設定例は公式サイトにもあるので参考にできるかもしれません。

これでApacheの再起動と、SmokePingの起動を行います。
OS起動時にも立ち上がるようにchkconfigで設定もしておきましょう。

# service httpd restart
# service smokeping start
# chkconfig smokeping on




後は、ブラウザからアクセスします。
URLは /etc/httpd/conf.d/smokeping.conf に定義してあるエイリアスになります。
デフォルトだと下記です。
http://hogehost/smokeping/sm.cgi

上記アドレスにアクセスして、下記のように表示されていればOKです。
(ツール)ネットワーク遅延グラフツールSmokePingを入れてみた_e0091163_2362354.jpg


左側のメニューから各ホストへの結果ページにアクセスできます。
Chartsメニューはサマリーのような感じで、パケットロスが多い順や、遅延が多い順に表示できるので、ここから問題がないか確認できるかもしれません。

メニューでグループを選択すると、そのグループ内の一覧が参照できます。
(ツール)ネットワーク遅延グラフツールSmokePingを入れてみた_e0091163_23908.jpg


また、ホストを選択すると、選択したホストの期間毎の結果がわかります。

(ツール)ネットワーク遅延グラフツールSmokePingを入れてみた_e0091163_2391762.jpg

しきい値を超えた場合のメール設定とかも出来るらしいですが、今回は時間がなかったのでそこまでできませんでした。


参考:
ず's - smokeping
第1回 状態監視ツール(smokeping)構築ガイド
smokeping(その1):はいはい、備忘録ですよ。
smokepingの日本語、文字化け対策
by Jehoshaphat | 2012-04-25 23:12 | ツール


<< (ツール)SmokePingで... WindowsServer20... >>