Smokeping は、latency の計測およびグラフ化に特化した、オープンソースの監視ツールです。今回の投稿は、先日の Smokeping 導入編の続き(前回記事:【メモ】SmokePingでlatency視覚化はじめました(1)導入編)。
サンプルも公開しました。実環境からデータを取得しています。次の URL をご覧下さい。
- SmokePing Latency Page for “Smokeping” Network Latency Grapher
http://node1.pocketstudio.net/smokeping/smokeping.cgi
◆プラグイン的な役割を持つ probe (プローブ)
Smokeping が測定できるのは PING (IMCP) だけではありません。Smokeping には、Probeというプラグインのような概念があります。probe ( プローブ) とは、探針の意味(詳しくは Wikipedia 参照ください)。
この probe は、標準で ICMP、DNS 、HTTP だけでなく、FTP や SSH、 LDAP、Radius 等々、様々な計測対象があります。これら probe 用のファイルは /opt/smokeping/lib/Smokeping/probes に格納されています。ファイルの内容は Perl 向けのモジュールです(ファイル名が xxx.pm)。
今回は、実際に使用シーンの多そうな DNS と HTTP に対する probe を試してみます。
◆ DNS と HTTP の probe は、どのような働きをするのか
DNS の probe は、内部で dig を実行し、その結果が処理されるまでの時間を取得します。HTTP の probe は複数あるのですが、今回試したのは curl をつかって HTTP サーバにアクセスした時の応答時間を計測したものです。
具体的な詳しい処理については、それぞれの probe の中をご覧下さい。比較的分かりやすい Perl のモジュールだと思います。
◆ probe を有効にするには
実際に probe を使うためには、smokeping の設定ファイル ( /opt/smokeping/etc/config ) に、いくつか記述をする事になります。まずは probe ファイルを開いてください。以下、色の変わっているところが、追加点です。
まずは **** Probes *** に DNS と Curl (HTTP) の記述を追加します。
*** Probes *** + FPing binary = /usr/sbin/fping packetsize = 1000 + DNS binary = /usr/bin/dig lookup = pocketstudio.jp pings = 5 step = 180 + Curl binary = /usr/bin/curl step = 60 urlformat = http://%host%/
次に、*** Targets *** に監視対象を記述します。
*** Targets *** probe = FPing menu = Top title = "Smokeping" Network Latency Grapher (略)
++ DNS probe = DNS menu = DNS latency title = Service latency (DNS) +++ dns1 host = example.jp +++ dns2 host = example.net ++ HTTP probe = Curl menu = HTTP latency title = Service latency (HTTP) +++ www title = HTTP latency for http://example.jp/ host = www.example.jp +++ netx host = netx.example.jp
※ example.jp および example.net は、実際のドメインに置き換えてご利用ください。
以上の記述を行ったあと、smokepingデーモンの再起動を行うと、設定が有効になります。
DNS の監視は、 DNS サーバがダウンしていないかどうかの監視、HTTP の場合も Web サーバ派正常にサービス継続を行っていたかどうかの参考になると思います。