muninとhttpingとcurl

サーバを運用しているとレスポンスタイムが気になってしまいます。日ごろからレスポンスタイムを記録しておけば何か気づけることがあるかもしれませんし、チューニングのBefore/Afterを可視化したいのでmuninを使ってみます。
ついでにhttpレスポンスタイムを記録するプラグインも入れちゃいましょう。

munin導入

導入と管理で楽をしたいのでyumを使います。CentOS6とmuninをキーワードに検索したところこのサイトが詳しそう
RHEL6/CentOS6でMunin 2.0.16 セットアップ&動的設定 – POCKETSTUDIO.JP LOG3
お名前.comVPSのデフォルトCentOS6はEPELリポジトリが最初から有効なので楽チンです。
特にトラぶることもなくmuninの導入は完了しました。
munin1

httpingとプラグインを導入

muninだけでもCPU使用率やLoadAverage・メモリ使用率が分かるので分析は可能ですが、Webサーバのレスポンスタイムも記録したいのでhttpingプラグインを導入します。

【Munin】ウェブサーバのレスポンスを調べるhttpingプラグイン書きました – POCKETSTUDIO.JP LOG3

このプラグインも導入は難しくないはずなのですが1箇所ハマってしまいました。
と言ってもプラグインの元ファイルに実行権限がないとプラグインが動作しないというだけなのでchmodでパーミッションを与えてあげます。

  # cp ./httping_ /usr/share/munin/plugins/
+ # chmod 755 /usr/share/munin/plugins/httping_
  # ln -s /usr/share/munin/plugins/httping_ /etc/munin/plugins/httpind_localhost

またDNSキャッシュが切れて一定周期で名前解決を行うノイズがグラフに入るのが嫌なので/etc/hostsも弄ります。

# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
+ 157.7.142.114 www.riscascape.net

# service network restart

この結果がコレ。connect timeが長い?
httpind_localhost-day

ところでconnect timeとは具体的に何なんだろう?ということで調べてみると・・・
httpingが不親切でちょっとハマった – 妄想コバンザメ
なるほど。/etc/hosts に直接書いたのは2重の意味でよかったのかもしれない。

curlプラグインも導入+微アレンジ

connect timeの内訳が気になるなーと探してみたらcurlプラグインを公開しているサイトがありました。

httpレスポンスタイムの内訳をグラフにしてみた | ツチノコブログ

これはいいかも。まずはStarttransfer Timeの削減を目標にすればいいみたい。
httping_resp2_riscascape_net-day

これらのプラグインは標準ではそれぞれ別のグラフカテゴリが設定されているので見比べがし辛いのが難点。
ということでcurlプラグインのグラフカテゴリを弄って、httpingと一緒に表示できるようにしてみました。

# vi /usr/share/munin/plugins/httpresp_curl_

- echo "graph_category http-response"
+ echo "graph_category httping"

# service munin-node restart

うん、見やすくなった。
munin-httping