Monit で Unicorn プロセスを監視する設定用の Chef Recipe

Nginx + Unicorn で Rails アプリケーションを動作させる場合、Nginx のプロセスと共に Unicorn のプロセス監視も行ったほうが良い。ということで、それを実現するための Chef Recipe を書きました。

スポンサーリンク

このエントリーは、CentOS サーバー設定用 Chef Cookbook/Recipe の目次 の一部です。

unicorn プロセスを監視するための monit 設定用 recipe

Monit 設定用の Recipe は、MonitでSSH,Nginx,MySQLのサービス死活監視を行うChef Cookbook | EasyRamble で作成したものを活用。この site-cookbooks/app_monit_cookbook/recipes/default.rb に以下を追加します。

site-cookbooks/app_monit_cookbook/recipes/default.rb

アプリケーション(プロジェクト)ごとに、monit で監視する Unicorn の設定ファイルを作成します。そのため、プロジェクト名の部分を変数にしました。template リソースの中で source を指定してやると、アップロード先の設定ファイルの名前などを動的に作成できるのが便利です。

以下、template のファイル(unicorn_app.erb)。

site-cookbooks/app_monit_cookbook/templates/default/unicorn_app.erb

昨日の Unicorn プロセスを自動起動させる init.d スクリプト用の Chef Recipe | EasyRamble で作成した、Unicorn 用の init.d 起動スクリプトを使っています。また template でも、プロジェクト名、デプロイを行うユーザー名を変数で取得するようにしています。

プロビジョニング実行後に動作確認

node.set[‘project’][‘name’] の値が ‘app’ だと前提しまして・・・unicorn_app.conf が正しく作成されているか確認。

unicorn のプロセスを確認。

master, worker プロセスが起動しています。

unicorn のプロセスを停止させます。

ログを監視しておく。

しばらくしたら、上記のログが表示されて unicorn のプロセスが自動で起動されました。プロセスを確認すると以下のようにちゃんと起動しています。

以上です。Monit 簡単で素晴らしい!

スポンサーリンク
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!