Monit allows you to monitor file server status. If you are running a home server or a large-scale Linux server, you may also be using SAMBA or NFS as file servers. For streaming content within your home network to Kodi boxes, I have recommended using NFS on your home server. However, if you are using a shared drive on Windows, then Samba is your only option. What if your Samba or NFS server fails? Monit is an automatic monitoring, maintenance, and repair utility for Unix systems. If your Samba or NFS file server fails, Monit can send you an email alert. It can even try to restart SMB and NFS. In this Monit tutorial, I will describe how to 1) monitor Samba server with Monit and 2) monitor NFS server with Monit. I am assuming that you have already installed and configured Monit following my previous guide.
Table of Contents
Monitor File Server Status with Monit
On my Ubuntu home server, I run SMB file server and NFS server to share drives with Windows systems and Kodi boxes, respectively. If my fileservers fail, my Windows backups won't happen or Kodi streams won't start. When I recently setup my new home server, I decided to use Monit for system monitoring. I use Monit to monitor several services listed below:
Monitor your home server with Monit:
- Home server system load monitoring (CPU, RAM, Swap)
- Server hard drive storage monitoring (HDD space)
- Motherboard temperature monitoring
- Processor or CPU temperature monitoring
- Monitor Hard drive SMART health and temperature
- Monitor file server status (Samba and NFS)
- Monitor web server status (Apache, NGINX, and MySQL)
- Monitor CouchPotato process status
- Monitor SickBeard process status
- Monitor SickRage process status
- Monitor SABnzbd process status
- Monitor Webmin process status
- Monitor qBittorrent process status
- Monitor Transmission process status
- Monitor ShellInABox process status
Since setting it up I have never had one backup failure due to my Samba drives not being available on Windows or Kodi streaming problems. So let us see how to automatically manage file server using Monit server monitor software.
Before enabling network share monitoring, it is required that you have a working Monit instance with a proper /etc/monit/monitrc
file. Monit configurations for various services are loaded from /etc/monit/conf.d
folder.
Monitor Samba Server with Monit
For Samba server monitoring with Monit, create a Monit configuration file using the following command:
sudo /etc/monit/conf.d/smbmonitor
Copy the following contents to it, save, and exit.
# Monit SMB Server Monitoring check process Samba with pidfile "/var/run/samba/smbd.pid" start program = "/etc/init.d/smbd start" stop program = "/etc/init.d/smbd stop" if failed host 127.0.0.1 port 139 type tcp for 2 cycles then restart if 2 restarts within 3 cycles then unmonitor
Samba file server process creates smbd.pid
. The above code monitor smbd.pid
file and if does not exist, Monit will try to restart Samba. If restart fails twice in 3 cycles then Monit stops monitoring Samba server. A restart will trigger an email alert as shown in the example below.
Monitor NFS Server with Monit
For NFS server monitoring with Monit, create a Monit configuration file using the following command:
sudo /etc/monit/conf.d/nfsmonitor
Copy the following contents to it, save, and exit.
# Monit NFS Server Monitoring check process NFS with pidfile /var/run/rpc.statd.pid start program = "/etc/init.d/nfs-kernel-server start" stop program = "/etc/init.d/nfs-kernel-server stop" if failed host 127.0.0.1 port 2049 type tcp for 2 cycles then restart if 2 restarts within 3 cycles then unmonitor
NFS file server process creates rpc.statd.pid
. The above code monitor rpc.statd.pid
file and if does not exist, Monit will try to restart NFS server. If restart fails twice in 3 cycles then Monit stops monitoring NFS server. A restart will trigger an email alert.
Test and Reload Monit
Once you make any changes you have to test Monit configuration:
sudo monit -t
You should see the following message: Control File Syntax OK. Then, check to see if Monit is already running using the following command:
sudo /etc/init.d/monit status
If Monit is running, reload configurations using the following command to monitor file server status with Monit:
sudo /etc/init.d/monit reload
If Monit is not running, then start it using sudo monit
command instead. The whole sequence of commands for testing and reloading Monit is shown in the picture below.
Now, fire up your web browser and visit one of the following URLs depending on how your Monit is configured (be sure to use the correct port number):
- http://localhost:2812
- http://IPADDRESS:2812 (local network IP)
- http://domain.com:2812 (if you have domain name pointing to your server)
You should see Samba and NFS file server statuses as shown in the picture below (See Samba and NFS).
That is it to monitor file server status with Monit. As you can see Monit allows for automatic file server status monitoring, which can be a big help for system administrators. Monit Wiki page has several examples. More home server specific Monit examples to follow, so keep checking back.