Skip to content

Using M/Monit with GridPane

Sharing a few notes on how to quickly set up M/Monit (opens in a new tab) with servers managed through GridPane.

Note: This is a bare-minimum integration and is meant to get a quick install up and running for testing. This post does not go in-depth on how to secure the installation or server in Step 4 below. If you’re not comfortable following the m/monit documentation here (opens in a new tab), you run the risk of an insecure installation.

1) Spin up a small VPS such as a $5/month droplet at Digital Ocean with Ubuntu x64. Do not connect this server to GridPane. You may want to point a domain or subdomain to this IP address.

2) Connect as root and install m/monit. Check mmonit.com for the latest version number (opens in a new tab).

cd /etc
wget https://mmonit.com/dist/mmonit-3.7.4_1-linux-x64.tar.gz
tar -xf mmonit-3.7.4_1-linux-x64.tar.gz
mv mmonit-3.7.4_1-linux-x64.tar.gz mmonit
/etc/mmonit/bin/mmonit

3) Load your [server-ip]:8080 in a browser and log in with the default login (admin/swordfish). Go to Admin / Users and create a new primary user with a secure password. Switch to that account and then delete the default Admin user. While on the Users page, change the monit user password as well. (The monit user is a non-admin user which is used to collect data).

4) Now is a good time to change the listening port, hostname, generate an SSL certificate, and disable HTTP access. Refer to the documentation (opens in a new tab) while editing conf/server.xml. You’ll then restart m/monit:

/etc/mmonit/bin/mmonit stop
/etc/mmonit/bin/mmonit start

We used Let’s Encrypt (opens in a new tab) to generate a certificate, however there is a known issue (opens in a new tab) where m/monit looks for a key/certificate format not generated by LE which will need to be addressed (For a workaround you can concatenate privkey.pem and fullchain.pem into a single file). Update the certificate location in conf/server.xml. You can specify the fullchain and privkey paths like this in the conf/server.xml file:


<Host name="mmonit.mydomain.com" appBase="."
certificate="/home/mmonit/letsencrypt/live/mmonit.mydomain.com/fullchain.pem"
certificateKey="/home/mmonit/letsencrypt/live/mmonit.mydomain.com/privkey.pem" >

5) SSH to a GridPane server that you plan to monitor and add a new file at /etc/monit/conf.d/mmonit containing the following, replacing the user, password, IP, and ports for your install (using the non-admin monit user):

set mmonit https://:[password]@[server-ip]:[port]/collector 
set httpd port 2812 
     allow [server-ip]

6) Reload monit on that server:

monit reload

7) Continue for remaining servers. They should all now appear in your m/monit instance.

You may now want to install Ruby and connect to Slack via webhook (Instructions (opens in a new tab))

Categories: Code
A black silhouette of a frog viewed from above, showing its outstretched legs and toes.
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognizing you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.

Please visit our privacy policy for more information regarding the personally identifiable information we collect and how it is used.