2013-05-01 1 views
2

Я использую этот камень для развертывания kapify.monit не находит единорога на рабочем сервере

Это мой единорог конфигурации:

unicorn config

unicorn.rb.erb

unicorn_init.erb

у меня в развёртывании:

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" 

это мой PID в удаленном сервере:

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 

это мой config/deploy/templates/monit/unicorn.erb файл:

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 

я могу видеть в Monit следующий путь к единорога рабочего PID:

Pid file /home/hyperrjas/apps/myapp/current/tmp/pids/unicorn.0.pid 

И сообщение:

Status Not monitored 

Единорог pid в удаленном сервере ar е в /home/myapp/apps/myapp/current/tmp/pids/unicorn.pid

Я не могу видеть ИДП unicorn.0.pid в /home/hyperrjas/apps/myapp/current/tmp/pids/

Monit контролирует штраф единорог PID.

Как я могу контролировать с помощью monit моего единорога?

ответ

1

Я использовал this configuration при настройке monit, чтобы наблюдать за мастером-единорогом и рабочими процессами для трех разных приложений на моем Linode. This article проводит вас через настройки и как каждая вещь работает вместе.

Я бы не рекомендовал пытаться генерировать конфигурацию monit для единорога «на лету», скорее, я бы сказал единорогу, чтобы всегда писать PID с тем же именем в вашем приложении, а затем ссылаться на эти файлы в monit config.

Сообщите мне, если вы застряли, и я помогу вам. Кроме того, если моя конфигурация будет полезна, сообщите мне, и я опубликую это.

+0

Благодарим за отзыв. Я использую этот gem https://github.com/ivalkeen/kapify для развертывания, и все работает отлично, за исключением monit для работника единорога. Я думаю, что проблема заключается в том, что 'Monit' не может видеть' unicorn.0.pid' в папке '/ home/hyperrjas/apps/myapp/current/tmp/pids /'. У меня есть 2 файла в этой папке: 'delayed_job.pid' и' unicorn.pid'. Большое спасибо – hyperrjas

+0

Скорее всего, потому, что к тому времени, когда вы развернули, каталог 'current' был повторно привязан. Попробуйте разобрать единорог, чтобы сохранить файл PID в '/ home/hyperrjas/apps/myapp/shared/pids' или что-то подобное, поскольку каталог' shared' не изменится. – CDub

+0

Я изменил свою папку pid на '/ home/hyperrjas/apps/myapp/shared/pids', и у меня такая же проблема: я вижу в monit красное сообщение' Execution failed 'с моим единорогом. Я могу видеть в monit 'Pid file/home/hyperrjas/apps/myapp/shared/pids/unicorn.0.pid'. Однако я не могу видеть этот файл pid в '/ home/hyperrjas/apps/myapp/shared/pids /' В этой папке я могу увидеть только 1 файл: 'unicorn.pid' Большое спасибо! – hyperrjas