まだ記事書いてないのにGoogleで 「TokyoTyrant Munin」でページがトップにくるとかなんなの.....
結局TokyoTyrant調子悪いのは相変わらず。しかし直せる見込みも ないまま試験運用に突入する。今のところ分かっている症状として、
というのがある... え?使い物にならなくね? と思ったアナタは正しい。 割り当てワーカーが枯渇したらリクエストはacceptするべきではないし(でないと ロードバランサーも処理を割り振れない)、レプリケーションなどの重要な通信は、 一般の検索リクエストのコネクションとは別に処理するべきだ.......
まあでも、これはGPLのフリーソフト。何を言ったところで 自分で直せ!というブーメランなので、仕方なく外的監視にとどめることにする。
というわけでTokyoTyrantのMunin用プラグインを書いたというのが今日のお話。
OSはDebian前提だけどmunin1.4以降ならなんでも動くと思う。
前もってPerlのCache::Memcachedをインストールしておいてください。 -M CPAN -e shellでもいいし最近はcpanmコマンドでインストールするのが 楽で良いでしょう。
# cpanm Cache::Memcached
http://linux.papa.to/image/20101109_munin_tokyotyrant_.gz をダウンロードして、「tokyotyrant_」(アンダーバー必須)というファイル名にして /usr/share/munin/pluginsに放り込んでください。
# gunzip 20101109_munin_tokyotyrant_.gz # cp 20101109_munin_tokyotyrant_ /usr/share/munin/plugins/tokyotyrant_
/etc/munin/pluginsディレクトリで、 アンダーバーの後にポート番号をつけてシンボリックリンクをはります。 TokyoTyrantのデフォルトポートは1978だけど省略することはできません。
# cd /etc/munin/plugins # ln -s /usr/share/munin/plugins/tokyotyrant_ tokyotyrant_1996
忘れずにmunin-nodeのリスタート...ああでも、munin-runで動作確認してから の方がいいかもしれないね。
# munin-run tokyotyrant_1996 tokyotyrant_bytes_allocated.value 30960 tokyotyrant_curr_items.value 9
問題なさげなら全体をリスタート。
# /etc/init.d/munin-node restart
こんなグラフになります。
別のホストのTokyoTyrantを監視したい場合は/etc/munin/plugins.dや munin.confにenv.hostの記述を追加してください。
[tokyotyrant_*] env.host "127.0.0.1"
まあmemcached_を改造したやっつけだけど一応障害発見には役立つかな....