Commit 982b9ef4915c97a77e1b9e07b511803d4571ab61
1 parent
26f97aea
Exists in
master
how to configure monit for errbit on a capistrano deployment
Showing
1 changed file
with
44 additions
and
0 deletions
Show diff stats
docs/deployment/capistrano.md
| @@ -76,3 +76,47 @@ rbenv=1 bundle exec cap production deploy | @@ -76,3 +76,47 @@ rbenv=1 bundle exec cap production deploy | ||
| 76 | ## Schedule recurring tasks | 76 | ## Schedule recurring tasks |
| 77 | You may want to periodically clear resolved errors to free up space. | 77 | You may want to periodically clear resolved errors to free up space. |
| 78 | Schedule ```rake errbit:db:clear_resolved``` to run every day or so. | 78 | Schedule ```rake errbit:db:clear_resolved``` to run every day or so. |
| 79 | + | ||
| 80 | + | ||
| 81 | +## Monit | ||
| 82 | +If you like errbit to be monitored by monit, you'll have to install and start monit | ||
| 83 | +with http support before deploying errbit. | ||
| 84 | +In order to enable http support you have to edit the monit config file which you can | ||
| 85 | +find in `/etc/monit/monitrc` for Ubuntu and set these lines: | ||
| 86 | +``` | ||
| 87 | +set httpd port 2812 and | ||
| 88 | + use address localhost # only accept connection from localhost | ||
| 89 | + allow localhost | ||
| 90 | +``` | ||
| 91 | + | ||
| 92 | +Next you have to add the following line to the Capfile: | ||
| 93 | +``` | ||
| 94 | +require 'capistrano/puma/monit' | ||
| 95 | +``` | ||
| 96 | + | ||
| 97 | +And you have to deploy the monit config with the command: | ||
| 98 | +```bash | ||
| 99 | +bundle exec cap production puma:monit:config | ||
| 100 | +``` | ||
| 101 | + | ||
| 102 | +The configuration file (depending on the distro) will be generated at: `/etc/monit/conf.d/puma_errbit_production.conf` | ||
| 103 | + | ||
| 104 | +### Controlling memory usage with monit | ||
| 105 | +If you like to limit memory usage for puma and restart it in case the usage gets | ||
| 106 | +over a 2GB limit, for example, you can add at the end of the monit config file the line | ||
| 107 | +``` | ||
| 108 | +if totalmem is greater than 2048 MB for 3 cycles then restart | ||
| 109 | +``` | ||
| 110 | + | ||
| 111 | +The config file will look like: | ||
| 112 | + | ||
| 113 | +``` | ||
| 114 | +# Monit configuration for Puma | ||
| 115 | +# Service name: puma_errbit_production | ||
| 116 | +# | ||
| 117 | +check process puma_errbit_production | ||
| 118 | + with pidfile "/var/www/apps/errbit/shared/tmp/pids/puma.pid" | ||
| 119 | + start program = "/usr/bin/sudo -u root /bin/bash -c 'cd /var/www/apps/errbit/current && /usr/bin/env bundle exec puma -C /var/www/apps/errbit/shared/puma.rb --daemon'" | ||
| 120 | + stop program = "/usr/bin/sudo -u root /bin/bash -c 'cd /var/www/apps/errbit/current && /usr/bin/env bundle exec pumactl -S /var/www/apps/errbit/shared/tmp/pids/puma.state stop'" | ||
| 121 | + if totalmem is greater than 2048 MB for 3 cycles then restart | ||
| 122 | +``` |