純規の暇人趣味ブログ

首を突っ込んで足を洗う

[Munin]Webページの応答速度をより詳細に監視するプラグイン作った

      HimaJyun

何気にブログをhttps対応した@HimaJyunです、まぁ、https対応はまた後程……

今回はMunin標準のhttp_loadtimeより便利だと(個人的にそう思う)プラグイン「h_ttp(http time test plus)」を作成したのでご紹介しようと思います。

h_ttp

https対応にすると気になるのはTLSハンドシェイクなどでの速度低下ですよね。

このブログでは鍵をRSA2048bitでは無くECDSA(ECC)256bit、サーバをApacheからnginxへ、phpは5から7へ、HTTP/2での接続に対応、と言う現時点では割と踏み込んだ構成にしてみました……が、やはり気になる物は気になります。

MuninでWebページの接続速度を監視するにはhttp_loadtimeがありますが、ぶっちゃけ機能不足感がぬぐえません。

と、言う訳で作成したのが「h_ttp(http time test plus)」です、え?、なんでh_で切ったんだって?、httpだと紛らわしいじゃないですかぁ!!(既に十分紛らわしい

機能

標準のhttp_loadtimeではGNUtimeコマンド(Bashビルドインとはまた別の物)が必要だったり、その割にはあまり情報が多くなかったり、と、機能不足です。

僕の作成したh_ttpではcurlだけで細かく情報を収集できます。(きょうびcurlが無い環境なんてありませんしありえませんよね。)
munin-h_ttp-001

この場合だと、名前解決や接続は(localhostなので)4ミリ秒ですが、リクエストを送信するまで(ネゴシエーションとか)に129ミリ秒を要しており、レスポンスを生産するまでには182ミリ秒、ネゴシエーション分から差し引くと、プログラム(WordPress)での処理に53ミリ秒を要している事が分かります。

例えば、まやかしの様な小手先の付け焼き刃的「WordPress高速化」を行った時にそれが本当に効果を示しているのかを確認する際にも役立ちますね!!(まぁ、処理が早いのに重過ぎる画像で全てを無に帰しているパターンもあり得ますが)

使い方

ソースコードはGitHubにあります。

他のプラグイン同様、ダウンロードして設定して頂ければご利用出来ます。

ダウンロード

以下の通りに、ダウンロードして適切な場所に配置して下さい(Ubuntuで確認、CentOSではパスが違うかも知れません)

curl -O https://raw.githubusercontent.com/HimaJyun/Munin-h_ttp/master/h_ttp_
sudo mv h_ttp_ /usr/share/munin/plugins/
sudo chown root:root /usr/share/munin/plugins/h_ttp_
sudo chmod 755 /usr/share/munin/plugins/h_ttp_

設定

複数サイトを測定する場合などを考えて、シンボリックリンクでゴチャゴチャする様になっています。

sudo ln -s /usr/share/munin/plugins/h_ttp_ /etc/munin/plugins/h_ttp_(一意な名前)

(一意な名前)は何でも構いません、例えば「h_ttp_blog」とか「h_ttp_homepage」とか……

munin-nodeの設定ファイルを開きます。

sudo editor /etc/munin/plugin-conf.d/munin-node

設定を行いましょう、設定項目は以下の通りです。

URLの設定は必須です(無い場合はhttp://localhost/になります)

[h_ttp_(一意な名前)]
  env.url (URL)

(一意な名前)は先程シンボリックリンクを作成する際に指定した物ですね、例えば、h_ttp_blogとしてシンボリックリンクを作成したなら[h_ttp_blog]の様に

必要に応じて圧縮を無効にする事も可能です(よりクライアントに近い環境を再現するためには有効(デフォルトのまま)にしておくことをお勧めしますが)

[h_ttp_(一意な名前)]
  env.compression off 

設定が完了したらmunin-nodeを再起動しましょう。

sudo service munin-node restart

その後、正常に動作している事を確認し、動作していれば彼女(そんなものは居ない)に自慢しましょう!!

出来上がってから見つけた

このプラグインが完成してから「httpレスポンスタイムの内訳をグラフにしてみた | ツチノコブログ」でほぼ同じ(下手したら僕のより良さげ)な物が公開されている事に気付きました。

まぁ、せっかく作ったのでこのまま公開するとしましょう……

 - サーバ運営