How to Install Monitorix on CentOS Stream 10 (Step-by-Step Guide)

Monitorix is a lightweight, open-source system monitoring tool written in Perl. It collects system performance data and displays it through an easy-to-use graphical web interface. Since version 3.0, Monitorix comes with its own built-in HTTP server, so you don’t need to set up Apache or Nginx separately.
Originally developed by Jordi Sanfeliu i Font, Monitorix is distributed under the GPL v2 license and works on many Linux distributions, including Red Hat, CentOS, and CentOS Stream.
Table of Contents
Step-by-Step Installation of Monitorix on CentOS Stream
1. Update System and Enable EPEL Repository
Before installing Monitorix, make sure your CentOS Stream is updated and that the EPEL repository is enabled:
sudo dnf update -y
sudo dnf install epel-release -y
The EPEL repository contains Monitorix and the required dependencies.
2. Install Required Dependencies
Monitorix needs several Perl modules and RRDtool for data collection and graphing. Install them with:
sudo dnf install \
rrdtool rrdtool-perl \
perl-libwww-perl perl-MailTools perl-CGI \
perl-DBI perl-XML-Simple perl-Config-General \
perl-IO-Socket-SSL perl-HTTP-Server-Simple \
perl-MIME-Lite -y
3. Install Monitorix
Now, install Monitorix directly from the EPEL repository:
sudo dnf install monitorix -y
Check the installed version:
monitorix -v
4. Enable and Start the Monitorix Service
Enable Monitorix to start automatically and check its status:
sudo systemctl enable --now monitorix
sudo systemctl status monitorix
5. Configure the Built-in HTTP Server
Monitorix uses its own lightweight HTTP server. Edit the configuration file:
sudo nano /etc/monitorix/monitorix.conf
Modify the <httpd_builtin>
section to fit your environment:
<httpd_builtin>
enabled = y
host = 0.0.0.0
port = 8080
user = nobody
group = nobody
hosts_allow = 192.168.1.0/24
hosts_deny = all
</httpd_builtin>
host = 0.0.0.0
: allows access from any IP- Use
hosts_allow
andhosts_deny
to restrict access for security
6. Configure Firewall Rules
If firewalld
is running, open port 8080 so you can access Monitorix via browser:
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
For more security, allow only your local network:
sudo firewall-cmd --add-rich-rule \
'rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="8080" accept' \
--permanent
sudo firewall-cmd --reload
7. Access the Monitorix Web Interface
Once the service is running and the firewall is configured, open your browser and go to:
http://<server-ip>:8080/monitorix
At first, graphs may be empty. Wait a few minutes for Monitorix to collect system data.
Conclusion
By following these steps, you now have Monitorix installed and running on CentOS Stream. This powerful tool lets you monitor CPU, memory, disk usage, network I/O, and more—all in real time through a simple web dashboard.
To recap, installation involves:
- Enabling EPEL
- Installing dependencies and Monitorix
- Configuring the built-in HTTP server
- Adjusting firewall rules
- Accessing the web interface
FAQ Section
Q1: What is Monitorix used for?
A1: Monitorix is a lightweight monitoring tool for Linux systems that tracks CPU, memory, disk, and network usage, displaying data through an easy-to-use web interface.
Q2: Does Monitorix require Apache or Nginx?
A2: No. Since version 3.0, Monitorix comes with its own built-in HTTP server, so you don’t need Apache or Nginx unless you want advanced reverse-proxy features.
Q3: Which port does Monitorix use by default?
A3: Monitorix runs on port 8080 by default. You can change this in the configuration file /etc/monitorix/monitorix.conf
.
Q4: Can I secure Monitorix access?
A4: Yes. You can restrict access to specific IP addresses using the hosts_allow
and hosts_deny
settings, and configure firewall rules for additional security.
Q5: How long does it take for Monitorix graphs to show data?
A5: Monitorix collects data continuously. After installation, it may take a few minutes for the first graphs to populate with performance metrics.