Вы находитесь на странице: 1из 16

Guía de instalación y configuración de Cacti en

CentOS7
 Héctor Martínez Tobar

 26 Jun, 2017

 Cacti, CentOS, Monitorización


 Cacti, Monitor

 1 Comment

Antes de comenzar
Esta guía trata la instalación del software de monitorización gráfica
mediante RRDTool, Cacti en un sistema CentOS7.

La mayoría de guías explican la instalación con una versión de MySQL inferior a la sugerida
por el sistema Cacti (recomienda una versión >= 5.6). Además, no tienen en cuenta los
distintos trabajos paralelos o workarounds que deben realizarse para su correcta instalación
respetando las recomendaciones de sus desarrolladores.

Por lo tanto, además de la instalación de Cacti, se van a ver procesos de instalación de


dependencias, así como procesos de configuración de las mismas.

Requisitos
 CentOS 7
 MariaDB (min.) v. 10 con sus respectivas parametrizaciones
 PHP con sus respectivas dependencias
 httpd

Descarga, instalación y configuración de


dependencias
Antes de realizar la instalación del sistema Cacti, se procede a realizar la instalación de
todas y cada una de las dependencias para evitar problemas futuros. Se empieza por lo que
podría generar más inconvenientes, el sistema de base de datos. Después continua la
instalación del resto.

MariaDB
Adición del repositorio
Para instalar la versión que requerida (la v. 10), se procede a crear el repositorio en el
directorio correspondiente.

Tecleamos:

# vi /etc/yum.repos.d/MariaDB.repo

Y añadimos:

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Instalación de los paquetes MariaDB


Una vez añadido el repositorio ya se puede proceder a la ejecución del comando yumpara
ejecutar la instalación.

# yum install MariaDB-server MariaDB-client -y

Cuando los paquetes se hayan instalado en el sistema, se deben ejecutar los siguientes
comandos:

# systemctl start mariadb


# systemctl enable mariadb
# systemctl status mariadb

Con la ejecución de éstos, en primer lugar, se iniciará el servicio MariaDB, en segundo lugar,
quedará seteado para que se inicie automáticamente cuando el sistema arranque y, en
tercer lugar, y último, seremos capaces de ver el estado del servicio, el cual debería
aparecer como active (running).
Después de este último paso, se podría llevar a cabo la configuración segura de MariaDB,
pero de eso ya se hablará durante la configuración de Cacti.

Otras dependencias
Configuración del tiempo (date/time) de Linux
Cacti puede presentar problemas durante la impresión de datos si no se cuenta con el
tiempo UTC en el sistema, por lo tanto, debe ser modificado para evitar problemas.

Para ello, los siguientes comandos deben ser ejecutados:

# rm -f /etc/localtime
# ln -s /usr/share/zoneinfo/UTC /etc/localtime

Después de ejecutar los comandos listados anteriormente, se puede verificar si la


configuración es la deseada ejecutando el comando date.

Se aprecia que el sistema tiene el sistema de tiempo UTC, por lo que todo está correcto.

Instalación de paquetes complementarios


Con el comando de a continuación, dependencias como php y apache serán instaladas en
nuestro sistema.

# yum install httpd httpd-devel php-pear php-common php-gd php-devel php php-
mbstring php-cli epel-release -y

Instalación de rddtool
La herramienta rddtool permitirá a Cacti graficar todos los parámetros deseados.

# yum install php-snmp net-snmp-utils net-snmp-libs rrdtool -y

Se procede a la iniciación de los servicios y, también, se configuran para el inicio


automático con el inicio del sistema.

systemctl start httpd.service


systemctl start mariadb.service
systemctl start snmpd.service
systemctl enable httpd.service
systemctl enable mariadb.service
systemctl enable snmpd.service

Primera parametrización de MariaDB


Después de la instalación de MariaDB no se ejecutaron las configuraciones necesarias para
poder asignar una contraseña al usuario root, es lo que se realiza a continuación:

# mysqladmin -u root password xxxxx

xxxxx corresponde a la contraseña deseada para el usuario root.

Creación de la DB para Cacti


Una vez se cuenta con el acceso a la base de datos, se debe crear una específica para el
sistema de monitorización Cacti, crear el usuario y asignarle los permisos necesarios.

Para ello, se accede a la base de datos:

# mysql -u root -p

Y se crea la base de datos, usuario y se le asignan los permisos:

Password: <xxxxx>

MariaDB [(none)]> CREATE DATABASE cactiProd CHARACTER SET = 'utf8mb4' COLLATE


= 'utf8mb4_general_ci';
MariaDB [(none)]> GRANT ALL ON cactiProd.* TO cacti@localhost IDENTIFIED BY '
XXXX';
MariaDB [(none)]> FLUSH privileges;
MariaDB [(none)]> quit;

Instalación de Cacti
Ahora el sistema ya dispone de todo lo necesario para que Cacti pueda ser instalado sin
ningún problema de dependencias.

Por lo tanto, para instalarlo en el sistema, se ejecuta el siguiente comando:


# yum install cacti –y

Carga de datos en la DB de Cacti


El sistema ya dispone de las dependencias básicas, del propio software de
monitorización Cacti y, también, de la base de datos creada para su uso.

Ahora es necesario crear la estructura de datos y para ello se usa el siguiente comando:

# mysql -u cacti -p cacti < /usr/share/doc/cacti-xxx/cacti.sql

Nota: Si se copia y pega este último comando, probablemente no funcione, pues la parte
resaltada en negrita variará en función de la versión que se haya descargado de Cacti.

En el momento de la redacción de esta guía la versión de Cacti que había era 1.1.10, por lo
que el comando tiene el siguiente aspecto:

# mysql -u cacti -p cacti < /usr/share/doc/cacti-1.1.10/cacti.sql

Configuración del archivo de DB de Cacti


Llegados a este punto, se debe realizar la configuración de Cacti para que éste pueda
conectarse a la base de datos y, además, añadir una serie de parámetros que van a permitir
que Cacti disponga de un mayor rendimiento.

Lo primero, modificar el archivo de Cacti relativo a la conectividad con la base de datos:

# vi /etc/cacti/db.php

Y añadir/modificar los valores del archivo por los nuestros.

$database_type = "mysql";
$database_default = "cactiProd";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "XXXXX";
$database_port = "3306";
$database_ssl = false;

Configuración de httpd
Como en toda configuración de httpd (Apache) se requiere la configuración de los virtual
hosts que van a permitir (o no) a los usuarios acceder al servicio publicado en Apache.

Para ello, se abre el fichero del virtualHost:

# vi /etc/httpd/conf.d/cacti.conf
Se añaden las líneas en negrita y se deja el archivo local tal y como se muestra a
continuación:

<Directory /usr/share/cacti/>
<IfModule mod_authz_core.c>
# httpd 2.4
#Require host localhost
Require all granted
#Require host 192.168.1.0/24
</IfModule>
<IfModule !mod_authz_core.c>
# httpd 2.2
Order deny,allow
Deny from all
Allow from all
#Allow from 192.168.1.0/24
</IfModule>
</Directory>

Además de esto, también se requiere hacer la modificación pertinente en el firewall para


permitir las conexiones de tipo http al puerto 80, 443 o al que se decida publicar el servicio.

# firewall-cmd --permanent --zone=public --add-service=http


# firewall-cmd --reload

Por último, se reinicia el servicio httpd:

# systemctl restart httpd.service

Creación del fichero de logs


Se crea un directorio sobre el cual, Cacti tendrá permisos para escribir su archivo de log.

Primeramente, se crea el directorio y seguidamente el archivo de log sobre el que escribirá.


Para ello, se deben ejecutar los comandos de a continuación:

# mkdir -p /var/log/cacti
# cd /var/log/cacti/
# touch cacti.log

Configuración archivo cron de Cacti


Para que el poller de Cacti se vaya ejecutando en el tiempo de forma automática (por
defecto 5 minutos) se debe eliminar el comentario de su archivo.
# vi /etc/cron.d/cacti

Y se elimina el comentario.

Instalación y configuración de Spine


Spiner es un sustituto del cmd.php que permite mayor rendimiento haciendo las
operaciones de polling sobre los distintos dispositivos monitorizados. Es por eso que se
decide incluir en el sistema.

No es un elemento indispensable pero sí recomendado.

Para su instalación, lo primero que se debe hacer es instalar los requisitos/dependencias del
mismo.

# yum install -y gcc mysql-devel net-snmp-devel autoconf automake libtool dos


2unix help2man

Una vez el sistema cuenta con las dependencias, se puede proceder a la descarga,
configuración y compilación del recurso.

La descarga se realizará en el directorio /tmp por lo que se desplaza la terminal a dicho


directorio y, desde allí, se ejecuta la descarga:

# cd /tmp
# wget http://www.cacti.net/downloads/spine/cacti-spine-1.0.1.tar.gz

Se procede a la descompresión del paquete y se ejecutan los comandos de configuración y


compilación:

# tar xvzf cacti-spine-1.0.1.tar.gz


# cd cacti-spine-1.0.1
# ./bootstrap
# ./configure
# make
# make install
# chown root:root /usr/local/spine/bin/spine
# chmod +s /usr/local/spine/bin/spine

Nota: es importante tener en cuenta que, por defecto, Spine se instala en el directorio
/usr/local/spine/, en el caso de quererlo en otro directorio, tan sólo se debería añadir un
parámetro en uno de los comandos ejecutados anteriormente:

./configure --prefix=/directorio/deseado

Una vez Spine está en el sistema, se deben realizar algunas configuraciones para que éste
trabaje correctamente con la base de datos de Cacti.
Se hace una copia del template y se edita en función de las necesidades/configuración de
cada uno:

# cp /usr/local/spine/etc/spine.conf.dist /usr/local/spine/etc/spine.conf

A continuación, se escriben los datos relativos a la configuración que se haya hecho:

# vi /usr/local/spine/etc/spine.conf

DB_Host localhost
DB_Database cactiProd
DB_User cacti
DB_Pass xxxxx
DB_Port 3306
DB_PreG 0

Parametrización de la base de datos de Cacti


Una vez en este punto, de desearlo se puede ir al navegador, introducir la IP del servidor
donde se aloja Cacti y ver el asistente de instalación. El problema es que no se podrá
proceder con la instalación por no cumplir con todos los requisitos a nivel de base de
datos, por lo que la pantalla de requisitos se verá así:
Lo primero será resolver el problema relativo al TimeZone de MariaDB.
Para ello se ejecutan los comandos presentados a continuación:

# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

# mysql -u root -p
# password: xxxxx
# MariaDB [(none)]> use mysql;
# MariaDB [mysql]> GRANT SELECT ON mysql.time_zone_name TO cacti@localhost;
# MariaDB [mysql]> FLUSH privileges;

Después de ejecutar estos comandos, el error debería desaparecer.

Aun así, todavía es necesario realizar una serie de operaciones de optimización para hacer
que el rendimiento sea óptimo.

Se pretenden realizar todos los cambios de golpe, para ello, se abre el fichero que se
muestra unas líneas más abajo y se procede a añadir todos los valores pertinentes.

# vi /etc/my.cnf.d/server.cnf

Bajo la etiqueta [server] debe figurar lo siguiente:

[server]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

Bajo la etiqueta [galera], además de todos los parámetros que figuran por defecto, añadir
lo que se muestra a continuación:

innodb_buffer_pool_size=700M
max_heap_table_size=140M
max_allowed_packet=16777217
tmp_table_size=65M
join_buffer_size=65M
innodb_doublewrite=OFF
innodb_additional_mem_pool_size=85M
innodb_flush_log_at_timeout=4
innodb_read_io_threads=32
innodb_write_io_threads=16

Se reinicia el servicio MariaDB:

# systemctl restart mariadb.service

Con estas configuraciones, el sistema quedará verde y cumpliendo los requisitos mínimos
de Cacti tal y como muestra la siguiente imagen:
Asistente de instalación de Cacti
Éste será el último de los pasos de la instalación de Cacti.

Para finalizar con la instalación, se debe abrir el explorador que se use para navegar por
Internet y en la barra de direcciones escribir la dirección del servidor que aloja el servicio
de Cacti seguido de /cacti:

http://ip_servidor/cacti

Se va avanzando hasta llegar a la siguiente ventana. De no estar seleccionada la opción se


debe marcar Nuevo servidor primario, después pulsar sobre siguiente.

En la siguiente ventanta, probablemente se aprecie una cruz roja en el directorio de Spine.


Se debe hacer un ligero cambio para que todo funcione como se espera.

Modificar:

/usr/local/spine/bin/spine/spine

Por:

/usr/local/spine/bin/spine

Y siguiente.
En siguiente punto el asistente verifica que se dispongan de los permisos suficientes para
poder escribir sobre los directorios críticos de instalación. Si hay algún directorio que no
cuenta con los permisos necesarios, se deberán ajustar para que cumplan los requisitos
establecidos, una vez hecho, pulsar siguiente.
Por último, el asistente ofrece una serie de templates para monitorizar algunos dispositivos,
se procede a la selección de los que puedan resultar útiles en función de las necesidades
existentes y finalizar.

Enhorabuena, Cacti ha sido instalado con éxito.

El usuario/password por defecto es:

admin/admin

El sistema pedirá un cambio de password justo después del primer login al mismo.