Last updated on September 12, 2020 by Kristophorus Hadiono
Sometimes we, as a normal user or a system admin, need to know how well our system is running. Many questions related to system status can be answered by checking log files generated by active services. However, inspecting every bit of log files is not easy even for seasoned system admins. That is why they rely on monitoring software which is capable of gathering information from different sources, and reporting analysis result in easy to understand formats, such as graphs, visualization, statistics, etc.
There are many sophisticated monitoring system software such as Cacti, Nagios, Zabbix, Munin, etc. In this article, we pick a lightweight monitoring tool called Monitorix, which is designed to monitor system resources and many well-known third-party applications on Linux/BSD servers. Optimized to run on resource-limited embedded systems such as Raspberry Pi, Monitorix boasts of simplicity and small memory footprint. It comes with a built-in HTTP server for web-based interface, and stores time series statistics with RRDtool which is easy to combine with any scripting language such as Perl, Python, shell script, Ruby, etc.
Here is a list of Monitorix's main features. For a complete list, refer to the official site.
First, install required packages as follows. Note that on CentOS, you need to set up EPEL and Repoforge repositories first.
$ sudo yum install rrdtool rrdtool-perl perl-libwww-perl perl-MailTools perl-MIME-Lite perl-CGI perl-DBI perl-XML-Simple perl-Config-General perl-HTTP-Server-Simple perl-IO-Socket-SSL
After this, Monitorix can be installed with this command:
$ sudo yum install monitorix
To configure Monitorix, open the configuration file in /etc/monitorix/monitorix.conf
, and change the options. The details on Monitorix configuration file can be found at http://www.monitorix.org/documentation.html
By default, the built-in HTTP server listens on port 8080
. Thus, make sure that your firewall does not block TCP port 8080
.
To start Monitorix, simply type the following.
$ sudo systemctl start monitorix
Start your favorite web browser, and then go to http://<host-ip-address>:8080/monitorix
to access Monitorix's web interface.
On Arch Linux, the Monitorix package can be downloaded from AUR.
By default, the built-in HTTP server is disabled on Arch Linux. To enable built-in HTTP server, edit <httpd_builtin>
section in /etc/monitorix.conf
as follows.
<httpd_builtin> enabled = y host = port = 8080 user = nobody group = nobody log_file = /var/log/monitorix-httpd hosts_deny = hosts_allow = <auth> enabled = n msg = Monitorix: Restricted access htpasswd = /var/lib/monitorix/htpasswd </auth> </httpd_builtin>
Finally, start Monitorix service.
Open your favorite web browser, and go to http://<host-ip-address>:8080/monitorix
to access Monitorix.
For Debian family, Monitorix can be installed in two ways: manually or through a third party repository.
Install all dependent packages first.
$ sudo apt-get install rrdtool perl libwww-perl libmailtools-perl libmime-lite-perl librrds-perl libdbi-perl libxml-simple-perl libhttp-server-simple-perl libconfig-general-perl libio-socket-ssl-perl
Download Monitorix package from the official source and install it.
$ sudo dpkg -i monitorix*.deb
During installation, you might be asked to configure a backend web server. If you using Apache, make sure to reload Apache configuration by restarting Apache service.
$ sudo service apache2 reload
Enable Izzysoft repository by appending the following line in /etc/apt/source.list
.
deb http://apt.izzysoft.de/ubuntu generic universe
Download and add a GPG key for the repository.
$ wget http://apt.izzysoft.de/izzysoft.asc $ sudo apt-key add izzysoft.asc
Install Monitorix with apt-get
. All its dependent packages will automatically be installed as well.
$ sudo apt-get update $ sudo apt-get install monitorix
Finally, start Monitorix service.
$ sudo service monitorix start
To configure Monitorix, edit /etc/monitorix/monitorix.conf
with a text editor, and restart Monitorix service.
$ sudo service monitorix restart
The built-in web server of Monitorix for Ubuntu is enabled by default. To access web-based monitoring result, go to http://<host-ip-address>8080/monitorix
on your favorite web browser.
If you want to install Monitorix on Raspberry Pi (which is Debian-based), you cannot use the Izzysoft repository mentioned above because it does not provide an ARM port of Monitorix. Instead, follow Debian-based manual installation as follows.
First, install required packages.
$ sudo apt-get install rrdtool perl libwww-perl libmailtools-perl libmime-lite-perl librrds-perl libdbi-perl libxml-simple-perl libhttp-server-simple-perl libconfig-general-perl libio-socket-ssl-perl
If some of the required packages are not be installed, we need to force install with this command.
$ sudo apt-get -f install
Download Monitorix package (monitorix_x.x.x-izzy1_all.deb
) from the official source.
Install Monitorix package with the command below.
$ sudo dpkg -i monitorix_x.x.x-izzy1_all.deb
After installation is finished, we need to change a small thing in Monitorix configuration as follows.
Open /etc/monitorix/monitorix.conf
with your favorite text editor. Scroll down until you find <graphs enable>
. Search for raspberrypi = n
, and replace n
with y
. This will enable monitoring of Raspberry Pi clock frequency, temperatures and voltages.
After editing is done, restart Monitorix service.
$ sudo service monitorix restart
By default, Monitorix's built-in HTTP web server is enabled. To access Monitorix's web interface, go to http://<raspberrypi-ip-address>:8080/monitorix
Monitorix home screen:
System load average and usage in graph option:
Active process graph option:
Choose Clock Frequency
under Raspberry Pi
section in the home screen, and you will see clock frequency, temperature, and voltage graphs for Raspberry Pi.
All monitoring graphs:
This website is made possible by minimal ads and your gracious donation via PayPal or credit card
Please note that this article is published by Xmodulo.com under a Creative Commons Attribution-ShareAlike 3.0 Unported License. If you would like to use the whole or any part of this article, you need to cite this web page at Xmodulo.com as the original source.
Xmodulo © 2021 ‒ About ‒ Write for Us ‒ Feed ‒ Powered by DigitalOcean