Add monitoring basics
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
namespace :monit do
|
||||
desc "Install Monit"
|
||||
task :install do
|
||||
run "#{sudo} apt-get -y install monit"
|
||||
end
|
||||
after "deploy:install", "monit:install"
|
||||
|
||||
desc "Setup all Monit configuration"
|
||||
task :setup do
|
||||
monit_config "monitrc", "/etc/monit/monitrc"
|
||||
#nginx
|
||||
#postgresql
|
||||
#unicorn
|
||||
faye
|
||||
syntax
|
||||
reload
|
||||
end
|
||||
after "deploy:setup", "monit:setup"
|
||||
|
||||
task(:nginx, roles: :web) { monit_config "nginx" }
|
||||
task(:postgresql, roles: :db) { monit_config "postgresql" }
|
||||
task(:unicorn, roles: :app) { monit_config "unicorn" }
|
||||
task(:faye, roles: :app) { monit_config "faye" }
|
||||
|
||||
%w[start stop restart syntax reload].each do |command|
|
||||
desc "Run Monit #{command} script"
|
||||
task command do
|
||||
run "#{sudo} service monit #{command}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def monit_config(name, destination = nil)
|
||||
destination ||= "/etc/monit/conf.d/#{name}.conf"
|
||||
template "monit/#{name}.erb", "/tmp/monit_#{name}"
|
||||
run "#{sudo} mv /tmp/monit_#{name} #{destination}"
|
||||
run "#{sudo} chown root #{destination}"
|
||||
run "#{sudo} chmod 600 #{destination}"
|
||||
end
|
||||
Reference in New Issue
Block a user