Monitorix is a free, open source, lightweight system monitoring tool designed to monitor as many services and system resources as possible. It has been created to be used under production Linux/UNIX servers, but due to its simplicity and small size may also be used to monitor embedded devices as well.
It consists mainly of two programs: a collector, called
monitorix, which is a Perl daemon that is started automatically like any other system service, and a CGI script called
monitorix.cgi. Since 3.0 version Monitorix includes its own HTTP server built in, so you don't need to install any web server to use it.
monitorix is started it reads the configuration file from the path specified in the command line (using the -c option), and once checked, it creates the
index.html file that will act as the Monitorix main page.
<base_dir>/cgi/monitorix.conf.paththat includes the absolute path of the configuration file. This file will be read by
monitorix.cgito determine the exact location of the configuration file.
Please, see the
monitorix(8) man pages.
All of its development was initially created for monitoring Red Hat, Fedora and CentOS Linux systems, so this project was made keeping in mind these type of distributions. Today it runs on different GNU/Linux distributions and even in other UNIX systems like FreeBSD, OpenBSD and NetBSD.
On March 2006, Monitorix included minimal support to run on FreeBSD systems. My special thanks to twenty4help Knowledge Service and to Roger "Rocky" Vetterberg for their support and help, and for being good friends during the porting process.
Since the release of 1.3.2 though, Monitorix has almost full support for FreeBSD. My special thanks to Pavlin Vatev who generously offered his support during all of the process.
With the release 2.0.0 Monitorix suffered a complete rewrite, including new features and graphs, cleaned up all the code, updated and enhanced a number of aspects in some graphs, and fixed a lot of bugs. The most important change was that it no longer required
crond to work, instead Monitorix became a complete standalone Perl daemon being started and stopped like any other system service.
Since the release 2.6.0 Monitorix includes support for NetBSD systems.
With the release of the 3.0.0 version, Monitorix suffered another big rewrite which became into a complete modular code structure reducing in some cases its memory footprint. That new version also included a number of new features, cleaned up all the code, fixed a lot of bugs and had a safest code as it used
warnings in all its modules.
With this new modular structure, Monitorix can now be packaged either into a single one package requiring all its dependences to be satisfied during the installation, or into several small packages one for each graph which could be more suitable for embedded systems.
Another interesting new feature in 3.0.0 version is that Monitorix comes with its own HTTP server built-in. This should satisfy all the people that don't want to install a third-party HTTP server (Apache, Nginx, lighttpd, etc.) to see the Monitorix graphs.
Monitorix requires some others packages to be installed that your GNU/Linux distribution may or may not have:
- RRDtool and its Perl bindings (perl-rrdtool or rrdtool-perl)
- (Optional) a CGI capable Web server (Apache, Nginx, lighttpd, etc.)