httping でウェブの応答時間を ping のようにチェックする

httping でウェブの応答時間を ping のようにチェックする はてなブックマーク - httping でウェブの応答時間を ping のようにチェックする


◆httping

サーバや PC の疎通を確認するコマンドといえば「 ping 」。通るかだけじゃなくて、遅いかどうか毎秒チェックできるのが良いところ。ping みたいに、細かくウェブサーバの応答状況もチェックできたらいいな…。そんな時に使えるツールが「 httping 」。ping のように HTTP リクエストを送ることが出来ます。

◆動作環境

ざっくり Linux が動作する環境。

◆インストール方法

$ wget http://www.vanheusden.com/httping/httping-1.4.4.tgz
$ tar xfz httping-1.4.4.tgz
$ cd httping-1.4.4
$ make
$ sudo make install

これで /usr/bin/httping にファイルが置かれます。

◆典型的な使い方

$ httpng [IPアドレス]

一番簡単な方法は、httping の引数に、ウェブサーバの IP アドレスを記述します。これで確認できるのは、対象サーバのウェブが表示出来るかどうか、シンプルな動作確認です。デフォルトで、ポート 80 番にアクセスします。タイムアウトは 30 秒。実行後は Ctrl+C で中断します。

実行例:

$ httping 210.239.46.254
PING 210.239.46.254:80 (210.239.46.254):
connected to 210.239.46.254:80, seq=0 time=2.91 ms
connected to 210.239.46.254:80, seq=1 time=3.12 ms
connected to 210.239.46.254:80, seq=2 time=2.98 ms
connected to 210.239.46.254:80, seq=3 time=3.62 ms
connected to 210.239.46.254:80, seq=4 time=2.84 ms
--- 210.239.46.254 ping statistics ---
5 connects, 5 ok, 0.00% failed
round-trip min/avg/max = 2.8/3.1/3.6 ms

この例では、210.239.46.254 というサーバに対して計測を行っています。応答時間は最小 2.8 ミリ秒、平均 3.1 ミリ秒、最大 3.6 ミリ秒とわかります。

引数には URL を指定することが出来ます。特定の URI に対してレスポンス状況を見たいときは、こちらのほうが望ましいでしょう。

$ httping http://210.239.46.254/index.html
PING 210.239.46.254:80 (http://210.239.46.254/index.html):
connected to 210.239.46.254:80, seq=0 time=3.43 ms
connected to 210.239.46.254:80, seq=1 time=3.02 ms
connected to 210.239.46.254:80, seq=2 time=2.96 ms
--- http://210.239.46.254/index.html ping statistics ---
3 connects, 3 ok, 0.00% failed
round-trip min/avg/max = 3.0/3.1/3.4 ms

引数の URI には “https”(SSL) を用いることが出来ます。

$ httping https://210.239.46.254/secure.php
PING 210.239.46.254:443 (https://210.239.46.254/secure.php):
connected to 210.239.46.254:443, seq=0 time=43.22 ms
connected to 210.239.46.254:443, seq=1 time=59.71 ms
connected to 210.239.46.254:443, seq=2 time=56.03 ms
--- https://210.239.46.254/secure.php ping statistics ---
3 connects, 3 ok, 0.00% failed
round-trip min/avg/max = 43.2/53.0/59.7 ms

◆オプション(httping –help より)

コマンドラインにオプションを付ける事で、様々な動作をします。個人的な頻度に応じて、星マークを付けました。

  • -g [url] … URL の指定(省略可)
  • -c [n] … ★★★何回接続するかの指定。バッチ処理で重宝。以下2回だけ指定する場合
    $ httping -c 2 -g http://210.239.46.254/
    PING 210.239.46.254:80 (http://210.239.46.254/):
    connected to 210.239.46.254:80, seq=0 time=3.31 ms
    connected to 210.239.46.254:80, seq=1 time=3.28 ms
    --- http://210.239.46.254/ ping statistics ---
    2 connects, 2 ok, 0.00% failed
    round-trip min/avg/max = 3.3/3.3/3.3 ms
    
  • -i [n秒] … ★★ httping 実行間隔を指定します。デフォルトは1秒
  • -t [n秒] … ★ タイムアウトの秒数指定。デフォルトは30秒
  • -6 … IPv6 モード
  • -s …  ★ HTTP ステータスコードの表示
    connected to 210.239.46.254:80, seq=0 time=3.36 ms 200 OK
    connected to 210.239.46.254:80, seq=1 time=3.04 ms 200 OK
    
  • -h … 対象ホスト名の指定
  • -p  … ポート番号の指定
  • -x [host:port] … http proxy の指定
  • -S … ★ TCP 接続時間と、HTTP 応答時間を分離して表示
    connected to 210.239.46.254:80, seq=1 time=0.65+2.39=3.04 ms
  • -G … ★★ httping を、デフォルトの”HEAD”メソッドから”GET”に切り替え(コンテンツの実ダウンロード時間の計測用に便利)
    • -b … ★ ダウンロード時間の計測用。ファイル転送速度を KB/s で表示。※ -G オプションとの併用必須
      $ httping -G -b http://210.239.46.254/
      PING 210.239.46.254:80 (http://210.239.46.254/):
      connected to 210.239.46.254:80, seq=0 time=3.35 ms  7680KB/s
      connected to 210.239.46.254:80, seq=1 time=3.18 ms  7680KB/s
    • -B … -b と同様だが、可能であればコンテンツを圧縮。gzip(mod_defrate)が対応していれば、その速度が (compressed) として表示される。圧縮非対応の場合、(not compressed) として速度が表示。
    • -L [x] … -b オプション使用時、データを何バイトまでダウンロードするかの指定。
    • -X … -b オプション使用時、実際の転送バイト数を表示(機能しない? 常に 0KB の気が…)
  • -l … 接続に SSL を使用(ポート 443 に接続)
    • -z … -l と併用。SSL の Finger Print 表示
  • -f … 遅延無し実行(※テスト環境向け。サーバやネットワークトラフィックの負荷注意)
  • -a … httping 実行結果の表示(デフォルトのようです)
  • -m 秒数のみ表示(単位 m/sec) 他のプログラムに渡すときなど、便利ぽい
    $ httping -m https://210.239.46.254/
    53.638935
    34.828901
    36.036968
  • -I [str] … UserAgent ヘッダを指定
  • -R [str] … Referer ヘッダを指定
  • -r … ★ ホスト名の名前解決は、はじめの一度だけ(DNSラウンドロビンの環境で、切り分けしたい時)
  • -A -U [ユーザ名] -P [パスワード] … ★ BASIC 認証
  • -C cookie=value … Cookie 使用時

他にも、試してませんが -N で Nagios モードがあり、指定秒数以上の時に、値を返すもの(warn, critical によっても変えれる)もあるみたいです。詳しくは httping –help で。

◆使ったツールの事とか

httping に限らず、今後は使ったツールの事とか、出来るだけ書き留めて公開していきたいと思います。備忘録代わりですが、普段から使っていても、よく調べていなかったり、ドキュメントを読んでなかったりする事は結構ありますので。何かリクエストがありましたら、コメント欄やtwitter/Facebookでどうぞ!

One thought on “httping でウェブの応答時間を ping のようにチェックする

  1. Pingback: curlでHTTP処理にかかった時間を計測する | インフラ関係のメモ書き