habibzain Just husband, father and enthusiastic men about System Administration. Love to write short article about it. Perhaps can help and be useful for others.

Backup Restore Cacti – Migrate Cacti to New Server

4 min read

Migrate Cacti to New Server – Backup and Restore

Cacti is a popular network graphing tool widely used by many service providers. For those of you who have been using Cacti to visualize the performance of various elements of your network, it is sometimes necessary to backup restore cacti. Migrate Cacti and all its graph datasets from one server to another.

Why? The current server may be old, or is running out of space and CPU, or you may simply want to move to new hardware platform. Whichever the case, it is possible to move Cacti data sets from one server to another, while minimizing disruptions in graph plotting. In this tutorial we will see just how easily we can do that.

Step 1: Setting up Cacti in the New Server

We will need to stop Cacti at the old server during the migration process. To minimize any gaps in graphs, we will prepare the newer server first (while Cacti at the old server is still running).

We will start the process by installing Cacti in the new server. A previous tutorial provides detailed information on how we can set up Cacti in the new server. To recap, we can use apt-get (Debian/Ubuntu) or yum (RHEL/CentOS) to install Cacti and set up necessary MySQL databases.

Step 2: Disabling Poller on Both Servers

After the installation is finished, we will disable the cron job for Cacti poller in both servers. This will ensure that neither of the servers will poll or populate any more graphs. That is, the graphs will remain unchanged during the migration window. We will enable the cron job once the graphs have been migrated.

vim /etc/cron.d/cacti
## Comment out the cacti poller cron job ##
# */5 * * * * www-data php --define suhosin.memory_limit=512M /usr/share/cacti/site/poller.php 2>&1 >/dev/null | if [ -f /usr/bin/ts ] ; then ts ; else tee ; fi >> /var/log/cacti/poller-error.log

Step 3: Migrating Cacti Database

In the next step, we will create a database dump from the MySQL server running on the old Cacti server. Once the database dump is ready, we will copy that dump file to the new server and update records in the Cacti database.

See also  Grafana Cloud Account for FREE

Step 3.1: Old Server

To create a database dump, we will use the following command. Type in the MySQL root password when prompted.

# mysqldump -u root -p cacti > cactidump.sql

The above command will create a MySQL dump file named “cactidump.sql”, which contains all data from the database ‘cacti’.

Next, we will transfer the dump file to the server.

# scp cactidump.sql root@NewServerIP:/root

You should use the IP address of your new server and the user that is relevant to your setup. I am using root as an example.

Step 3.2: New Server

After the dump file has been migrated, we will use mysql command to populate the database ‘cacti’ with data from the old server.

# mysql -u root -p cacti < /root/cactidump.sql

Optional: You can easily verify whether the database has been populated by examining the database as follows.

# mysql -u root –p
mysql> use cacti;

Database changed

mysql> select description from host;
+-------------+
| description |
+-------------+
| Server-2    |
| Server-1    |
+-------------+
2 rows in set (0.00 sec)
mysql> exit;

Step 4: Preparing and Migrating the RRD Files

Unfortunately, Cacti cannot update the graphs if the RRD files are copied directly to the new server. The right way to migrate the graphs is to convert them to XML, move them to the new server and restore the RRD files from XML.

Step 4.1: Old Server

On the old server, convert RRD files into XML files as follows.

Create a directory to store the XML files.

# mkdir /tmp/xml
# cd /var/lib/cacti/rra

Convert the RRD files to XML files.

# for i in `find -name "*.rrd"`; do rrdtool dump $i > /tmp/xml/$i.xml; done

Create a tar file.

# cd /tmp/xml
# tar cvfz cacti.tar.gz *

Copy the tar file to the new server.

# scp cacti.tar.gz root@NewServerIP:/root

Step 4.2: New Server

On the new server, we will copy the tar file to the right directory and extract the contents. After extraction, we will restore the RRD files from the XML ones.

See also  How to Install Node Exporter on Ubuntu 18.04

Copy and extract the files to the right directory.

# cp /root/cacti.tar.gz /var/lib/cacti/rra
# cd /var/lib/cacti/rra
# tar zxvf cacti.tar.gz

Restore the RRD files from the XML files.

# for i in `find -name "*.xml"`; do rrdtool restore $i `echo $i |sed s/.xml//g`; done

Now that we have the RRD files needed by Cacti, we can go ahead and delete the tar file and the XML files.

Step 5: Changing Ownership of the RRD files in the New Server

We are almost done with the migration. At the new server, we need to make sure that the Cacti poller can read/write the RRD files. To do that, first we will check the ownership details for the RRD files.

On the old server:

# ls -l /var/lib/cacti/rra/
-rw-rw-r-- 1 www-data www-data  94816 Dec 14 13:50 server-1_traffic_in_8.rrd
-rw-rw-r-- 1 www-data www-data  94816 May  7 02:10 server-1_traffic_in_9.rrd
-rw-rw-r-- 1 www-data www-data  94816 May  7 02:10 server-2_traffic_in_10.rrd

On the new server:

# chown www-data:www-data /var/lib/cacti/rra/*.rrd

Now the Cacti poller in the new server has read/write permissions to the RRD files.

Step 6: Activating the Poller

In step 1, we has disabled the Cacti poller in both servers. As the migration is completed, we will enable the poller in the new server.

# vim /etc/cron.d/cacti
## Uncomment the cacti poller cron job ##

*/5 * * * * www-data php --define suhosin.memory_limit=512M /usr/share/cacti/site/poller.php 2>&1 >/dev/null | if [ -f /usr/bin/ts ] ; then ts ; else tee ; fi >> /var/log/cacti/poller-error.log

Now the cron daemon should invoke the Cacti poller script every 5 minutes, and Cacti graphs should start updating within maximum 15 minutes.

If you want to hold on to the old server for the time being, you could enable the poller in the old server too. If enabled, both servers should keep polling and populating the graphs, which should be identical.

See also  Cacti Repair Databases after Upgrade

Accessing the New Server

Now that the migration is completed, you can access Cacti by going to http://NewServerIP/cacti on your web browser.

  • Username: admin
  • Password: same as the old server

Here I am adding some screenshots from both servers below.

Figure 1: Old Server Graphs

backup restore cacti

Figure 2: New Server Graphs

backup restore cacti

Troubleshooting

In most cases Cacti migration should be done smoothly. In case you run into any issues, you can check the following.

First, remember that patience is the key. I have seen Cacti graphs taking over 15 minutes to start populating. Don’t start troubleshooting too soon.

Check if the cron daemon is running. Without cron daemon, graphs will not be updated.

Check if the RRD files are writable by Cacti.

Verify that both servers are using the same poller. For example, if the old server was using cacti-spine as the poller, the new server should do the same. This setting can be viewed under Console > Settings > Poller > Poller Type.

backup restore cacti

Finally, the Cacti log file is always a useful source of information for troubleshooting. To make Cacti logs updated with relevant data, change the logging level to at least ‘Medium’. This can be changed under Console > Settings > General > Poller Logging Level.

backup restore cacti

The logs can be viewed at Console > System Utilities > View Cacti Log File.

To sum up, we can easily migrate Cacti graphs from one server to another. The graphs are generated based on the data contained in the RRD files. Other data like hosts, graph trees, RRDs associated with the graphs are all stored in MySQL database. Thus migrating MySQL database along with RRD files should do the trick.

I Hope this helps.

Cheers.. 🙂


Source Article : http://xmodulo.com/migrate-cacti-server.html

habibzain Just husband, father and enthusiastic men about System Administration. Love to write short article about it. Perhaps can help and be useful for others.

Centos Failed Update Kernel

Today I did a kernel update on my server with Centos 7 OS. At the end of the update process, I found a kernel...
habibzain
1 min read

Easy Fix Missing mirrorlist http://mirrorlist.centos.org on CentOS 7

When running yum update or command that utilize the yum system, errors similar to the following are produced: If you’re encountering issues with the...
habibzain
1 min read

Easy Create Laravel Project with Composer

Requirement Laravel, a popular PHP framework, is renowned for its elegant syntax and robust features, making it a top choice for web developers. One...
habibzain
1 min read

Leave a Reply

Your email address will not be published. Required fields are marked *

Never miss good article from us, get weekly updates in your inbox