Skip to content

Instantly share code, notes, and snippets.

@jezman
Last active March 7, 2019 07:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jezman/5f08a59eab075cb5bfc68939f0d2dc03 to your computer and use it in GitHub Desktop.
Save jezman/5f08a59eab075cb5bfc68939f0d2dc03 to your computer and use it in GitHub Desktop.
Monit configuration
# Nginx
check process nginx
with pidfile /run/nginx.pid
start program = "/bin/systemctl start nginx.service"
stop program = "/bin/systemctl stop nginx.service"
if cpu > 60% for 2 cycles then alert
if cpu > 80% for 5 cycles then restart
if memory usage > 80% for 5 cycles then restart
if failed host 127.0.0.1 port 80 protocol http
then restart
if 3 restarts within 5 cycles then timeout
# Postgresql
check process postgresql
with pidfile "/run/postgresql/9.6-main.pid"
start program = "/bin/systemctl start postgresql.service"
stop program = "/bin/systemctl stop postgresql.service"
if failed host localhost port 5432 protocol pgsql then restart
if cpu > 80% then restart
if memory usage > 80% for 2 cycles then restart
if 5 restarts within 5 cycles then timeout
# Redis
check process redis-server
with pidfile "/run/redis/redis-server.pid"
start program = "/bin/systemctl start redis-server.service"
stop program = "/bin/systemctl stop redis-server.service"
if totalmem > 100 Mb then alert
if children > 255 for 5 cycles then stop
if cpu usage > 95% for 3 cycles then restart
if memory usage > 80% for 5 cycles then restart
if failed host 127.0.0.1 port 6379 then restart
if 5 restarts within 5 cycles then timeout
# Sidekiq
check process sidekiq
with pidfile "/home/deployer/qna/shared/tmp/pids/sidekiq-0.pid"
start program = "/bin/su - deployer -c 'cd /home/deployer/qna/current && /home/deployer/.rvm/bin/rvm default do bundle exec sidekiq --index 0 --pidfile /home/deployer/qna/shared/tmp/pids/sidekiq-0.pid --environment production --logfile /home/deployer/qna/shared/log/sidekiq.log --daemon'"
stop program = "/bin/su - deployer -c 'cd /home/deployer/qna/current && /home/deployer/.rvm/bin/rvm default do bundle exec sidekiqctl stop /home/deployer/qna/shared/tmp/pids/sidekiq-0.pid 10'"
if cpu > 80% then restart
if memory usage > 80% for 2 cycles then restart
if 3 restarts within 3 cycles then timeout
# Unicorn
check process unicorn
with pidfile "/home/deployer/qna/shared/tmp/pids/unicorn.pid"
start program = "/bin/su - deployer -c 'cd /home/deployer/qna/current && /home/deployer/.rvm/bin/rvm default do bundle exec unicorn -c /home/deployer/qna/current/config/unicorn/production.rb -E production -D'"
stop program = "/bin/su - deployer -c '/usr/bin/pgrep unicorn | /usr/bin/xargs /bin/kill -QUIT'"
if memory usage > 90% for 3 cycles then restart
if cpu > 90% for 2 cycles then restart
if 5 restarts within 5 cycles then timeout
# Sphinx
check process sphinx
with pidfile "/home/deployer/qna/shared/log/production.sphinx.pid"
start program = "/bin/su - deployer -c 'cd /home/deployer/qna/current && /home/deployer/.rvm/bin/rvm default do bundle exec rails RAILS_ENV=production ts:start'"
stop program = "/bin/su - deployer -c 'cd /home/deployer/qna/current && /home/deployer/.rvm/bin/rvm default do bundle exec rails RAILS_ENV=production ts:stop'"
if cpu > 80% for 2 cycles then restart
if memory usage > 80% for 4 cycles then restart
if 3 restarts within 3 cycles then timeout
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment