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 | 76 | ## Schedule recurring tasks |
77 | 77 | You may want to periodically clear resolved errors to free up space. |
78 | 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 | +``` | ... | ... |