SmokePingで拠点間のping情報を集約する方法は2通りある。一つはslaveモードを使う方法。もう一つはRemoteFPingを使う。
Slaveは以前設定をしたことがある。不都合としては3点ある。
- smokepingのインストールが必要であること
- smokepingのデーモン起動が必要であること
- ホスト間の結果が混ざってしまうので読みにくい
上記の不具合を解消するためにRemoteFPingを構成したが、記録をとるまでにいくつか落とし穴があるためにメモしておく。
まずRemoteFPingの構成をSmokepingのサイトから取得する。
http://oss.oetiker.ch/smokeping/probe/RemoteFPing.en.html
次にssh経由でパスワードなしでsmokepingが実行できるようにする。
設定はこの2つだけであるが、チャートに記録が出てこない。メッセージファイルを見てみるとRemoteFPingのプローブが一件のターゲットに対して起動していることがわかる。
Feb 25 16:03:44 localhost smokeping[9034]: RemoteFPing: probing 1 targets with step 300 s and offset 150 s.
しかしこれ以外の情報は載ってこない。
ここでデバッグモードでsmokepingを実行してみると以下のようなエラーが出ていることがわかった。
RemoteFPing: Executing /usr/bin/ssh -lsmokeping 10.xx.xx.xx /usr/local/sbin/fping -C 21 -q -B1 -r1 -b5000 -t1500 -i1 -p1500 10.72.20.1 RemoteFPing: Got fping output: '/usr/local/sbin/fping: these options are too risky for mere mortals.' RemoteFPing: Got fping output: '/usr/local/sbin/fping: You need i >= 10, p >= 20, r < 20, and t >= 50'
RemoteFPingで設定しているパラメータに問題があることがわかる。メッセージをFPingのmanページと照らし合わせて以下のように変更する。
+RemoteFPing binary = /usr/bin/ssh # mandatory blazemode = true hostinterval = 1.5 mininterval = 0.01 offset = 50% pings = 20 rbinary = /usr/local/sbin/fping # mandatory rhost = 10.xx.xx.xx # mandatory ruser = smokeping step = 180 timeout = 1.5
この修正の結果RemoteFPpingは正しく実行された。