How To Install Cacti on CentOS 6

Install Cacti on CentOS 6

In this tutorial, we will show you how to install Cacti on CentOS 6. For those of you who didn’t know, Cacti is an open-source, web-based network monitoring and graphing tool designed as a front-end application for the open-source, industry-standard data logging tool RRDtool. It is used by IT businesses and stores all of the necessary information about bandwidth, hard disk usage, CPU usage, load average, RAM statistics, etc in a MySQL database. Cacti create graphs and populate them with data. It offers SNMP support, 3rd party templates, and plugins and has built-in user authentications and user permission features.

This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple. I will show you the step-by-step installation of Cacti on CentOS 6.


  • A server running one of the following operating systems: CentOS 6.
  • It’s recommended that you use a fresh OS install to prevent any potential issues.
  • SSH access to the server (or just open Terminal if you’re on a desktop).
  • A non-root sudo user or access to the root user. We recommend acting as a non-root sudo user, however, as you can harm your system if you’re not careful when acting as the root.

Install Cacti on CentOS 6

Step 1. First, you need to enable the EPEL repository on your system.

## RHEL/CentOS 6 64-Bit ##
# wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm
## RHEL/CentOS 6 32-Bit ##
# wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm

Step 2. Install the required packages.

Install Apache:

yum install httpd httpd-devel

Install MySQL server:

yum install mysql mysql-server

Install PHP modules:

yum install php-mysql php-pear php-common php-gd php-devel php php-mbstring php-cli php-mysql

Install PHP-SNMP:

yum install php-snmp

Install NET-SNMP:

yum install net-snmp-utils p net-snmp-libs

Install RRDTool:

yum install rrdtool

Once installed all the above software, start them:

/etc/init.d/mysqld start
/etc/init.d/httpd start
/etc/init.d/snmpd start

In order for these services to run at startup we need to enter the following commands:

chkconfig mysqld on
chkconfig httpd on
chkconfig snmpd on

Step 2. Install Cacti.

yum install cacti -y

Step 3. Configuring MySQL.

By default, MySQL is not hardened. You can secure MySQL using the mysql_secure_installation script. you should read and below each step carefully which will set a root password, remove anonymous users, disallow remote root login, and remove the test database and access to secure MySQL.


Cacti require a MySQL user and database, so create them by executing the following commands:

# mysql -u root -p
create database cacti;
grant all privileges on cacti.* to 'cactiuser'@'localhost' identified by 'your-password-here';
flush privileges;

Step 4. Set up Cacti tables for MySQL.

Now import cacti database tables from the file cacti.sql. Issue the below command to find the location of the cacti.sql file:

#rpm -ql cacti | grep cacti.sql

Now we need to install the tables into the cacti.sql file. Use the following command to do this and enter your database password when prompted:

mysql -u cactiuser -p cacti < /usr/share/doc/cacti-0.8.8b/cacti.sql

Now we need to edit the database configuration file of cacti so that it uses the correct database name and username:

mysql -u cactiuser -p cacti < /usr/share/doc/cacti-0.8.8b/cacti.sql

Configure MySQL settings for Cacti. Open /etc/cacti/db.php with your favorite editor and enter the values for your ‘cacti’ database:

nano /etc/cacti/db.php
/* make sure these values reflect your actual database/host/user/password */
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "your-password-here";
$database_port = "3306";
$database_ssl = false;

Step 5. Configure the Apache Server.

We can change the Apache configuration to choose what IP addresses/subnets are allowed to connect. You can do this by editing the following file:

##nano /etc/httpd/conf.d/cacti.conf

<Directory /usr/share/cacti/>
 Order Deny,Allow
 Deny from none

Restart Apache:

/etc/init.d/httpd restart

Step 6. Configure Cron for Cacti.

Open /etc/cron.d/cacti file:

nano /etc/cron.d/cacti
###Remove the # in the following line###
#*/5 * * * * cacti /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1

Step 7. Configuring Iptables or firewall for Cacti.

iptables -A INPUT -p udp -m state --state NEW --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT
service iptables save

Step 5. Accessing Cacti.

Cacti will be available on HTTP port 80 by default. Open your favorite browser and navigate to http://your-domain.com/cacti or http://server-ip/cacti. The default username and password for Cacti is admin/admin. Upon the first login, you will be forced to change the default password.

Congratulations! You have successfully installed Cacti. Thanks for using this tutorial for installing the Cacti network monitoring tool on CentOS 6 system. For additional help or useful information, we recommend you to check the official Cacti website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!


r00t is a seasoned Linux system administrator with a wealth of experience in the field. Known for his contributions to idroot.us, r00t has authored numerous tutorials and guides, helping users navigate the complexities of Linux systems. His expertise spans across various Linux distributions, including Ubuntu, CentOS, and Debian. r00t's work is characterized by his ability to simplify complex concepts, making Linux more accessible to users of all skill levels. His dedication to the Linux community and his commitment to sharing knowledge makes him a respected figure in the field.
Back to top button