Reputation: 10744
I'm using this gem for deploy kapify.
This is my unicorn config:
I have in my deploy:
server "111.111.111.111", :web, :app, :db, primary: true
set :application, 'myapp'
set :user, "hyperrjas"
set :deploy_to, "/home/#{user}/apps/#{application}"
set :deploy_via, :remote_cache
set :use_sudo, false
set :scm, "git"
set :repository, "path_to_my_remote_reposytory.git"
set :branch, "master"
set :current_path, "/home/#{user}/apps/#{application}/current"
set :shared_path, "/home/#{user}/apps/#{application}/shared"
set :unicorn_workers, 1
set :unicorn_pid, "#{shared_path}/pids/unicorn.pid"
set :server_name, "myserver.com"
this is my pid in remote server:
ps aux | grep unicorn
1000 6037 0.4 12.5 320464 127628 ? Sl 14:09 0:37 unicorn master -c /home/hyperrjas/apps/myapp/shared/config/unicorn.rb -D
1000 6079 0.2 13.8 335784 140828 ? Sl 14:10 0:17 unicorn worker[0] -c /home/hyperrjas/apps/myapp/shared/config/unicorn.rb -D
1000 6322 0.0 0.0 9384 868 pts/0 S+ 16:14 0:00 grep unicorn
this is my config/deploy/templates/monit/unicorn.erb
file:
check process myapp_unicorn with pidfile /home/hyperrjas/apps/myapp/current/tmp/pids/unicorn.pid
start program = "/etc/init.d/unicorn_myapp start"
stop program = "/etc/init.d/unicorn_myapp force-stop"
check process myapp_unicorn_worker_0 with pidfile /home/hyperrjas/apps/myapp/current/tmp/pids/unicorn.0.pid
start program = "/bin/true"
stop program = "/usr/bin/test -s /home/hyperrjas/apps/myapp/current/tmp/pids/unicorn.0.pid && /bin/kill -QUIT `cat /home/hyperrjas/apps/myapp/current/tmp/pids/unicorn.0.pid`"
if mem > 200.0 MB for 5 cycles then restart
if cpu > 50% for 15 cycles then restart
if 5 restarts within 25 cycles then timeout
alert [email protected] only on { pid }
if changed pid 2 times within 64 cycles then alert
I can see in monit the next path to unicorn worker pid:
Pid file /home/hyperrjas/apps/myapp/current/tmp/pids/unicorn.0.pid
And the message:
Status Not monitored
The unicorn pid in remote server are in /home/myapp/apps/myapp/current/tmp/pids/unicorn.pid
I can not see the pid unicorn.0.pid
in /home/hyperrjas/apps/myapp/current/tmp/pids/
Monit is monitoring fine the unicorn pid.
How can I monitorize with monit my unicorn worker?.
Upvotes: 2
Views: 1343
Reputation: 13354
I used this configuration when setting up monit to watch unicorn master and worker processes for three different apps on my Linode. This article walks you through the settings and how each thing works together.
I wouldn't recommend trying to generate the monit config for unicorn on the fly, rather, I'd tell unicorn to always write PIDs to the same file name in your app, then reference those files in the monit config.
Let me know if you get stuck, and I'll help you out. Also, if my config would be helpful, let me know and I'll post that.
Upvotes: 1