miércoles, 30 de junio de 2010

Backup and restore CACTI

Subject: Migracion OLD-CACTI > New-Cacti
Posted on: enero 28 2009 @ 08:27
By: Cachorroyayo

Content:

Hola Foro....
Como estamos siempre para darnos la mano esta ocacion quiero dejar un grano de arena para los que quizas en algun momento puedan necesitar de esto.
Tengo un servidor cactihttp://www.cacti.net/, el cual me pidieron hacer un backUp y levantarlo en un nuevo server. Bueno yo lo instale en FreeBSD que es lo que usamos aca en el ISP pero creo que no estaria de mas el aporte y ojala les sea de Utilidad.
Ahi les va....

Backup de Cacti y pasarlo a un nuevo servidor sin perder nada de data Smile

Necesitamos instalar los siguientes ports en el nuevo servidor.

/usr/ports/www/apache22
/usr/ports/databases/mysql50-server
/usr/ports/lang/php5
/usr/ports/lang/php5-extensions
/usr/ports/net-mgmt/net-snmp4
/usr/ports/databases/rrdtool
usr/ports/net-mgmt/cacti

Con Apache y MySQL no hay problema pero cuando vas a instalar php5

#cd /usr/ports/lang/php5
# make install clean

Posiblemente al final de la instalacion te de un mensaje de error que tiene que ver con curl (ftp-curl y php5-curl)
cuando trates de instalar el curl por las buenas te dira que CARES Y IPV6 no pueden estar juntos,
Ahora estas son opciones de Curl un port de prerequisito de php5 para salir de esta, editamos el Makefile de curl y
luego lo trabajamos normal para que no de problemas al instalar el php5
# vi /usr/ports/ftp/curl/Makefile

#.if defined(WITH_CARES) && defined(WITH_IPV6)
#IGNORE= does not support both c-ares and IPv6 - disable one of them
#.endif


# make install clean

luego instalas normal
# cd /usr/ports/lang/php5
# cd /usr/ports/lang/php5-extensions
#cd /usr/ports/net-mgmt/net-snmp4


cacti usa net-snmp4 asi que si instalamos net-snmp53 habran conflictos es mejor hacerlo a la primera y no instalar y luego
desinstalar el net-snmp 2 veces hasta que te des cuenta del error.

#cd /usr/ports/databases/rrdtool
#cd usr/ports/net-mgmt/cacti


Ya con los ports instalados procedemos a configurar lo que necesitamos.

Agregamos a /etc/rc.conf

apache22_enable="YES"
mysql_enable="YES"
snmpd_enable="YES"


# /usr/local/etc/rc.d/apache22 start
# /usr/local/etc/rc.d/mysql-server start
# /usr/local/etc/rc.d/snmpd start
APACHE

Modificamos el httpd.conf con unicamente lo siguiente

LoadModule php5_module libexec/apache22/libphp5.so
DocumentRoot "/usr/local/share/cacti"

Alias /cacti /usr/local/share/cacti

Order allow,deny
Allow from all

DirectoryIndex index.php index.html
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps


#/usr/local/etc/rc.d/apache22 restart

MYSQL
Seteamos el password del Root
# mysqladmin -u root password 'N3wR0ot.P4s5w0rd'

Creamos la Base de Datos para el Cacti
#mysql -u root pN3wR0ot.P4s5w0rd
MYSQL> CREATE DATABASE cacti;


CACTI
Para que cacti pueda usar la Base de datos que hemos creado en MySQL necesitamos darle permisos en el siguiente archivo
dejando todo tal como se ve:

#vi /usr/local/share/cacti/include/config.php

$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "cacti";


Tenemos que darle permisos a Cacti para que pueda hacer el poller y generar las graficas y el chequeo SNMP

#cd /usr/local/share/cacti
#chown -R cacti:www rra/ log/

Y le damos el siguiente script de cron para que haga el poller cada 5 minutos
# crontab -e -u cacti

*/5 * * * * /usr/local/bin/php /usr/local/share/cacti/poller.php> /dev/null



Esto es lo minimo para nuestra configuracion de CACTI, pero como nosotros queremos migrar todos los cientos y por que no miles de archivos
rrd que se han creado en nuestro antguo servidor al nuevo; tenemos que hacer lo siguiente:

OLDCACTI

Dumpeamos la Base de Datos de Cacti
#mysqldump -u root -p cacti > cacti-dump.sql

La debemos de copiar al nuevo servidor
#scp cacti-dump.sql user@newcacti:/usr/local/share/cacti

Luego tenemos que pasar todos los archivos rrd al nuevo servidor. pero primero tenemos que pasarlos a plantilla xml de la siguiente manera.
# cd /usr/share/cacti/rra/# ls -1 *.rrd | awk '{print "rrdtool dump "$1" > "$1".xml"}' | sh -x

Los pasamos al nuevo servidor
scp *.xml user@newcacti:/usr/share/cacti/rra/


NEWCACTI

Eliminamos cualquier archivo rrd que se pueda haber creado
# rm -Rf *.rrd

Comvertimos cada xml en un rrd:
# cd /usr/share/cacti/rra/# ls -1 *.rrd.xml | sed 's/\.xml//' | awk '{print "rrdtool restore "$1".xml "$1}' | sh -x

Eliminamos todos los xml y le damos permiso a los usuarios que corresponde
# rm *.xml
# chown -R cacti:www *

Ahora tenemos que reemplazar la vieja base de datos con la nueva que acabamos de pasar por scp
# mysql -u root -p <> mysql -u root -p

MYSQL> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cacti';
MYSQL> FLUSH PRIVILEGES;

No hay comentarios:

Publicar un comentario