Munin is one of the various software that gets installed when you set up Mail-in-a-Box on your server. It comes with both the master and slave (node), and can be accessed at
Since MiaB comes with the heftier, required Munin master package, we might as well utilize it to its fullest — by connecting our other servers as nodes that we can monitor through our box.
This works well and is a quick set up, but bear in mind that it requires editing a configuration file that Mail-in-a-Box manages. That means we’ll have to keep an eye on this file either manually, which I wouldn’t recommend, or automatically with Monit.
The first thing you’ll need to do is install Munin node on any other servers that you want to monitor through your box.
Note: our tutorials on Obstance usually assume you’re using Ubuntu or at least a Debian-based OS. Most of what we do on the site should work on the most common Linux distros, but be aware that the commands may differ.
user@otherserver:~$ sudo apt-get install munin-node
Just before we edit the file, first you’ll want to figure out what the hostname is for your node server:
user@otherserver:~$ hostname otherserver.example.com
Take note of that, as it’s what you’ll be using in a minute (when you go back to your Munin master server’s config file, with the format being
With that done, now head into
/etc/munin and modify the
munin-node.conf with your editor of choice. I normally use SFTP via FileZilla and use Atom or Notepad++, but nano is my choice if I’m in a shell session:
user@otherserver:~$ sudo nano /etc/munin/munin-node.conf
Find a block of comments that looks like this. You’ll want to add in your mail server’s IP address here.
# A list of addresses that are allowed to connect. This must be a # regular expression, since Net::Server does not understand CIDR-style # network notation unless the perl module Net::CIDR is installed. You # may repeat the allow line as many times as you'd like allow ^127\.0\.0\.1$ allow ^::1$
Notice the format: it’s a regular expression. So add your box’s IP address on a new line as
allow ^198\.51\.100\.0$, obviously using your actual IP address. Repeat this for as many servers as you want to monitor with Munin and then save the file.
Restart munin-node so that it reads your changes:
sudo systemctl restart munin-node
On your mail server, edit the file
/etc/munin/munin.conf, which is the master configuration. You won’t have this file on your slave servers unless you explicitly installed
munin; this is how it should be, since we’re using Mail-in-a-Box as the master, and there only needs to be one master.
In that file, you’ll see something like this:
# a simple host tree [box.example.com] address 127.0.0.1
Using the same format, add your nodes in the same fashion:
# a simple host tree [box.example.com] address 127.0.0.1 # added to file; pull from otherserver.example.com server [otherserver.example.com] address 198.51.100.0
otherserver.example.com comes from the hostname we got from the beginning of this article.
Restart Munin so that it loads your configuration:
sudo systemctl restart munin-node
After adding your mail server’s IP address to your node servers, and your node servers to your master config, wait about five minutes.
The cron in Mail-in-a-Box pulls information from the servers every 5th minute, so give it time to populate data. Once you’ve waited at least that long, head over to
box.example.com/admin/munin/ and check to make sure you’re seeing your hostnames from your nodes there.
If you’re not seeing your nodes…
If you’ve waited at least five minutes and you’re not seeing your nodes in
box.example.com/admin/munin/, then you’re most likely going to have to allow your mail server’s IP address through your firewall. With UFW, you would simply:
user@otherserver:~$ sudo ufw allow from 198.51.100.0 to any port 4949
Of course, be sure to use your actual IP address. Port 4949 is the default port that a Munin server listens on, and is the port used in a Mail-in-a-Box installation.
You can check to make sure it worked:
user@otherserver:~$ sudo ufw status Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere Nginx Full ALLOW Anywhere 4949 ALLOW 198.51.100.0 22/tcp (v6) ALLOW Anywhere (v6) Nginx Full (v6) ALLOW Anywhere (v6)
It’s possible that you’re not using
UFW as a front for
iptables on your node servers. If this is the case, use iptables directly or whichever firewall you’re using. A common one is ConfigServer Security & Firewall (
After you’ve allowed your mail server to get past your node’s firewall, wait again and then check. You should now be seeing your node’s hostname in the Munin monitoring section of your MiaB install.
As mentioned in the beginning of the article, you’ll want to monitor any file changes to
munin.conf on your mail server. Since it’s managed by Mail-in-a-Box, it may be overwritten during updates.
Take a backup of the file after you’ve added your changes, and then follow the article below to monitor it. You’ll get an email alert when this happens, and can add your changes back to the file easily.