【メモ】SmokePingでlatency視覚化(2) DNS&HTTP応答編

【メモ】SmokePingでlatency視覚化(2) DNS&HTTP応答編 はてなブックマーク - 【メモ】SmokePingでlatency視覚化(2) DNS&HTTP応答編


SmokePing◆今度はDNSとHTTPの測定に挑戦!

Smokeping は、latency の計測およびグラフ化に特化した、オープンソースの監視ツールです。今回の投稿は、先日の Smokeping 導入編の続き(前回記事:【メモ】SmokePingでlatency視覚化はじめました(1)導入編)。

サンプルも公開しました。実環境からデータを取得しています。次の URL をご覧下さい。

特定 URL ( http://pocketstudio.jp/ ) に対する HTTP レイテンシの計測状況 (現況はこちら)

◆プラグイン的な役割を持つ 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 サーバ派正常にサービス継続を行っていたかどうかの参考になると思います。