みなさんはPassengerの管理下にあるRails/Rackプロセスをどのように監視しているでしょうか。
Muninを使った方法もあり、Dan Manges's Blog - Rails Application Visualization(gist: 20319 - munin plugin for passenger- GitHub)で公開されていたりします。このプラグインはpassenger-statusの結果をグラフ化しています。passenger-statusの結果はこんな感じになります。
----------- General information ----------- max = 6 count = 3 active = 0 inactive = 3 Waiting on global queue: 0 ----------- Domains ----------- /home/rurema/rurema-search: PID: 17128 Sessions: 0 Processed: 38 Uptime: 4m 54s PID: 30722 Sessions: 0 Processed: 543 Uptime: 1h 14m 32s
先述のプラグインではこのうち「General information」の情報だけをグラフ化しています。でも、「Domains」の情報もグラフ化したいですよね。「Processed」を見れば妙にたくさん処理しているプロセスを見つけることができるかもしれませんし、「Uptime」を見れば長生きしすぎているプロセスを見つけることができるかもしれません。
ということで、るりまサーチのリポジトリrackngaのリポジトリに「Domains」もグラフ化するMuninプラグインを入れておきました。
Debian GNU/Linux前提です。
まず、るりまサーチをcloneします。
% git clone git://github.com/kou/rurema-search.git
プラグインを/usr/share/munin/plugins/にコピーします。
% sudo cp rurema-search/munin/plugins/* /usr/share/munin/plugins/
プラグインをroot権限で動かすようにします。
/etc/munin/plugin-conf.d/passenger.conf:
[passenger_*] user root
プラグインをインストールします。autoconfに対応しているので、自動検出してくれます。
% sudo -H /usr/sbin/munin-node-configure --shell --remove-also | sudo sh
munin-nodeを再起動します。
% sudo /etc/init.d/munin-node restart
5分もすればグラフに反映されるでしょう。
Passenger用のMuninプラグインを紹介しました。
PassengerとMuninを使っている場合は導入してみてはいかがでしょうか。