среда, 16 мая 2012 г.

Monit for rails application on the ubuntu production server

Решил прикрутить monit для рестарта процессов на сервере(Ubuntu)

Коротко про monit и установку: http://www.darkcoding.net/software/setting-up-monit-on-ubuntu/
Мне же нужно было отслеживать nginx, couchdb, delayed_job и sunspot_solr. Для двух последних необходимо использовать rvm для перезапуска процесса. В итоге получился следующий /etc/monit/monitrc файл:

  set daemon  120           # check services at 2-minute intervals
  set logfile /var/log/monit.log

set httpd port 2812
  allow localhost

check process nginx with pidfile /opt/nginx/logs/nginx.pid
    start program = "/etc/init.d/nginx start"
    stop program = "/etc/init.d/nginx stop"

check process couchdb with pidfile /home/ubuntu/build-couchdb/build/var/run/couchdb/couchdb.pid
    start program = "/usr/bin/sudo /home/ubuntu/build-couchdb/build/bin/couchdb -b"
    stop program = "/usr/bin/sudo /home/ubuntu/build-couchdb/build/bin/couchdb -d"

check process sunspot-solr with pidfile /tmp/sunspot-solr-production.pid
    start program = "/bin/su - ubuntu -c 'cd /var/www/apps/xan/current; rvm 1.9.3@xan do rake RAILS_ENV=production sunspot:solr:start'"
    stop program =  "/bin/su - ubuntu -c 'cd /var/www/apps/xan/current; rvm 1.9.3@xan do rake RAILS_ENV=production sunspot:solr:stop'"

check process delayed-job with pidfile /var/www/apps/xan/shared/pids/delayed_job.pid
    start program = "/bin/su - ubuntu -c 'rvm use 1.9.3@xan; RAILS_ENV=production /var/www/apps/xan/current/script/delayed_job start'"
    stop program =  "/bin/su - ubuntu -c 'rvm use 1.9.3@xan; RAILS_ENV=production /var/www/apps/xan/current/script/delayed_job stop'"

 Детали:

Для nginx и couchdb все было просто.
Sunspot-solr запускается rake коммандой c использованием 'rvm rake'(https://rvm.io/set/rake/).
Для delayed-job просто переключился на нужный мне gemset и выполнил комманду.


/bin/su - ubuntu -c 
использовал для имитации shell.

 Удачи в использовании!

Комментариев нет:

Отправить комментарий