This was my experience with a successful upgrade of an ancient Cacti install. I kept the old system running and brought up a new system (with new IP) in parallel. I updated the monitored hosts to accept SNMP requests from this new IP.
Old system: cacti 0.8.7g / solaris 10, SPARC 32-bit / MySql 4.0 / RRDTool 1.2 / Spine v?
New system: cacti 1.1.37 / CentOS 7, Intel 64-bit / MySQL 5.6.40 / RRDTool 1.4 / Spine 1.1.35
New System initial setup:
- MySQL v4.1.22 installed. This was the next GA (General Availability) version of MySQL after v4.0. MySQL docs say you must upgrade only one GA release at a time.
- Cacti not installed
MySQL incremental upgrades. These steps were all performed on the new system. I went slowly and dumped the mysql data on each version, just in case I ran into errors.
- using MySQL v4.1.22, create table cacti; import the data dumped from 4.0; export the new 4.1.22 data; uninstall MySQL 4.1.22
- note: "mysql_upgrade" command doesn't exist on this version. Only "mysqlcheck"
- install next incremental GA version of MySQL. v5.0.96
- create table cacti; import the data dumped from v4.1.22; run "mysql_upgrade"; export the new 5.0.96 data; uninstall MySQL v5.0.96; remove /var/lib/mysql
- install next incremental GA version of MySQL. v5.1.72
- create table cacti; import the data dumped from v5.0.96; run "mysql_upgrade"; export the new v5.1.72 data; uninstall MySQL v5.1.72; remove /var/lib/mysql
- install next incremental GA version of MySQL. v5.5.60
- create table cacti; import the data dumped from v5.1.72; run "mysql_upgrade"; export the new v5.5.60 data; uninstall MySQL v5.5.60; remove /var/lib/mysql
- install next incremental GA version of MySQL. v5.6.40
- create table cacti; import the data dumped from v5.5.60; run "mysql_upgrade"; export the new v5.6.40 data
- default MySQL authentication changes from v5.5 to v5.6. Must set password and run process as user
- I tried to upgrade to MySQL 5.7, but ran into dependency issues so decided to stay at v5.6.
- I followed this helpful post for "my.cnf" settings and "mysql_tzinfo_to_sql" update
- install Cacti. I used yum.
- disable (comment out) the cacti cron job
- follow the official install doc, starting at Step 4, and comment out Step 7.
- https://www.cacti.net/downloads/docs/ht ... cacti.html
- Install and Configure Spine
- https://www.cacti.net/downloads/docs/ht ... spine.html
- The Cacti web interface should now show all of your devices, data sources, etc.
- In Cacti->Management->Devices, "disable" all devices
- Architecture-specific: update paths in Cacti->Configuration->Setting->Paths
- Architecture-specific: update paths for Data Queries and Data Input Methods, if required
- Architecture-specific: Update scripts to run on Linux. Check for path changes, e.g. "/usr/bin/perl" to "/bin/perl"
- Architecture-specific: RRD files are not compatible between architectures. On old system, "rrdtool dump" all .rrd files to .xml; transfer all .xml files to new system; "rrdtool restore" all .xml files to .rrd on new system
- If upgrading on the same architecture, just copy the .rrd files from old system to new system
- enable the cacti cron job
- In Cacti->Management->Devices, "enable" a handfull of devices. Check / test / tshoot as necessary.
- Once satisfied that the new cacti is working properly, delete the .rrd files from the new server, perform the rrd dump to xml on system -> transfer xml files to new system -> rrd restore the xml on new system, and enable all devices in Cacti->Management->Devices.
Done! Have a retirement ceremony for the old Cacti system.
SYSTEM STATS: Time:156.6154 Method:spine Processes:1 Threads:15 Hosts:350 HostsPerProcess:350 DataSources:24151 RRDsProcessed:10497
SYSTEM STATS: Time:134.2826 Method:spine Processes:1 Threads:15 Hosts:352 HostsPerProcess:352 DataSources:25120 RRDsProcessed:10827
This isn't any new info for the forum, just bringing various ideas together. Sorry for the bad formatting!
If you figure out how to do something interesting/cool in Cacti and want to share it with the community, please post your experience here.
1 post • Page 1 of 1