Cacti is a complete network graphing solution that useful for network administrator to monitor their network bandwidth. It collect SNMP data as well as other data such as system load, network link status, hard disk space and etc.
From Cacti official site :
Cacti is a complete network graphing solution designed to harness the power of RRDTool’s data storage and graphing functionality. Cacti provides a fast poller, advanced graph templating, multiple data acquisition methods, and user management features out of the box. All of this is wrapped in an intuitive, easy to use interface that makes sense for LAN-sized installations up to complex networks with hundreds of devices.
In this post, i will show you on how to install Cacti on linux CentOS 6.2 server. This tutorial assumed that you already installed LAMP (Linux CentOS 6.2 x86, Apache httpd server, Mysql server and PHP) server.
How to Install and Configure EPEL Repository on CentOS 6.2
Cacti is very easy to use and have the following features if it properly configured:
- Graphs
- Data Sources
- Data Gathering
- Graph Display
- User Management
See also How to Install php-mcrypt on CentOS 6.3
1. Login to your CentOS 6.2 server as a root and install the following packages :
[root@centos62 ~]# yum install cacti httpd mysql-server mysql php-common php-mysql php-pear net-snmp php-gd php-devel php php-mbstring php-cli net-snmp-utils php-snmp php-pear-Net-SMTP -y
2. Make sure all these software/packages has been installed :
Package cacti-0.8.7i-2.el6.noarch already installed and latest version Package httpd-2.2.15-15.el6.centos.1.i686 already installed and latest version Package mysql-server-5.1.61-1.el6_2.1.i686 already installed and latest version Package mysql-5.1.61-1.el6_2.1.i686 already installed and latest version Package php-common-5.3.3-3.el6_2.6.i686 already installed and latest version Package php-mysql-5.3.3-3.el6_2.6.i686 already installed and latest version Package 1:php-pear-1.9.4-4.el6.noarch already installed and latest version Package 1:net-snmp-5.5-37.el6_2.1.i686 already installed and latest version Package php-gd-5.3.3-3.el6_2.6.i686 already installed and latest version Package php-devel-5.3.3-3.el6_2.6.i686 already installed and latest version Package php-5.3.3-3.el6_2.6.i686 already installed and latest version Package php-mbstring-5.3.3-3.el6_2.6.i686 already installed and latest version Package php-cli-5.3.3-3.el6_2.6.i686 already installed and latest version Package 1:net-snmp-utils-5.5-37.el6_2.1.i686 already installed and latest version Package php-snmp-5.3.3-3.el6_2.6.i686 already installed and latest version Package php-pear-Net-SMTP-1.6.1-1.el6.noarch already installed and latest version
3. Starting the database :
[root@centos62 ~]# service mysqld start Starting mysqld: [ OK ]
4. Login to mysql server and create the following database and user :
Database’s Name : cactidb
Database’s User : cactiuser
Database’s Password : cactipassword
[root@centos62 ~]# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.1.61 Source distribution Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> CREATE DATABASE cactidb; Query OK, 1 row affected (0.00 sec) mysql> CREATE USER 'cactiuser'@'localhost' IDENTIFIED BY 'cactipassword'; Query OK, 0 rows affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON cactidb.* to cactiuser@localhost; Query OK, 0 rows affected (0.00 sec) mysql> SHOW GRANTS FOR 'cactiuser'@'localhost'; +------------------------------------------------------------------------------------------------------------------+ | Grants for cactiuser@localhost | +------------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'cactiuser'@'localhost' IDENTIFIED BY PASSWORD '*6FF226B3BB20712FB42564D21683F5A0173DDD16' | | GRANT ALL PRIVILEGES ON `cactidb`.* TO 'cactiuser'@'localhost' | +------------------------------------------------------------------------------------------------------------------+ 2 rows in set (0.00 sec) mysql> exit Bye
5. Find out cacti.sql path using the following command :
[root@centos62 ~]# rpm -ql cacti | grep cacti.sql /usr/share/doc/cacti-0.8.7i/cacti.sql
6. Populate and import the cacti database :
[root@centos62 ~]# /usr/bin/mysql cactidb -u cactiuser -p < /usr/share/doc/cacti-0.8.7i/cacti.sql Enter password:
7. Configure cacti :
[root@centos62 ~]# vi /etc/cacti/db.php
Update the following details meet your configuration :
/* make sure these values refect your actual database/host/user/password */ $database_type = "mysql"; $database_default = "cactidb"; $database_hostname = "localhost"; $database_username = "cactiuser"; $database_password = "cactipassword"; $database_port = "3306"; $database_ssl = false;
Original configuration
<Directory /usr/share/cacti/> Order Deny,Allow Deny from all Allow from 127.0.0.1 </Directory>
Change the configuration to :
<Directory /usr/share/cacti/> Order Deny,Allow Deny from all Allow from all </Directory>
8. Start the apache httpd service if you haven’t start :
[root@centos62 ~]# /etc/rc.d/init.d/httpd start Starting httpd: [ OK ]
or just reload to update it:
[root@centos62 ~]# /etc/rc.d/init.d/httpd reload Reloading httpd:
9. Make httpd and mysql service auto start at boot :
[root@centos62 ~]# chkconfig httpd on [root@centos62 ~]# chkconfig mysqld on
Check where is poller.php :
[root@centos62 ~]# ls /usr/share/cacti/ about.php graph_image.php host_templates.php rra auth_changepassword.php graph.php images rra.php auth_login.php graph_settings.php include scripts cdef.php graphs_items.php index.php script_server.php cli graphs_new.php install settings.php cmd.php graphs.php lib templates_export.php color.php graph_templates_inputs.php log templates_import.php data_input.php graph_templates_items.php logout.php tree.php data_queries.php graph_templates.php poller_commands.php user_admin.php data_sources.php graph_view.php poller_export.php utilities.php data_templates.php graph_xport.php poller.php gprint_presets.php host.php resource
[root@centos62 ~]# crontab -e
# Used to update Cacti */5 * * * * /usr/share/cacti/poller.php >> /var/log/cacti 2>&1