domingo, 27 de junio de 2021

Cacti Installation on Rocky Linux 8.4 / Instalación de Cacti en Rocky Linux 8.4

Como primer paso realizaremos una instalación de servidor con GUI de Rocky Linux 8.4 para sistemas x86_64.

Sitio de descarga: https://rockylinux.org/download/

Advertencia: Rocky Linux 8.4 no es recomendable para entornos de producción

Ejecute los comandos con privilegios de root


Aplicación de update de sistema operativo:

[root@monitoreo003 ~]# dnf update -y


Instalación de herramientas Simple Network Management Protocol (SNMP) y RRDTool

[root@monitoreo003 ~]# dnf install net-snmp net-snmp-utils net-snmp-libs rrdtool -y


Iniciaremos el servicio snmpd con las configuraciones default

[root@monitoreo003 ~]# systemctl start snmpd; systemctl enable snmpd


Instalación de software necesario para el front-end de cacti

[root@monitoreo003 ~]# dnf install httpd mariadb-server php php-xml php-session php-sockets php-ldap php-gd php-json php-mysqlnd php-gmp php-mbstring php-posix php-snmp php-intl -y


Ajustes de PHP, inserte o modifique las lineas en el archivo: /etc/php.ini

date.timezone = America/Mexico_City
memory_limit = 512M
max_execution_style = 60


Arranque de servicio web

[root@monitoreo003 ~]# systemctl start httpd; systemctl enable httpd


Apertura de puertos en la zona publica del firewall

[root@monitoreo003 ~]# firewall-cmd --permanent --zone=public --add-service=http
[root@monitoreo003 ~]# firewall-cmd --permanent --zone=public --add-service=https
[root@monitoreo003 ~]# firewall-cmd --reload


Arranque del servicio de base de datos

[root@monitoreo003 ~]# systemctl start mariadb; systemctl enable mariadb


Creación de la base de datos en mariadb

Con la configuración default de mariadb, usaremos el comando mysql para hacer sesión en el servicio

[root@monitoreo003 ~]# mysql
...
MariaDB [(none)]> create database cactidb;
...
MariaDB [(none)]> GRANT ALL ON cactidb.* TO cacti@localhost IDENTIFIED BY 'cactidbpwd';
...
MariaDB [(none)]> flush privileges;
...
MariaDB [(none)]> exit

En este caso se configuro la contraseña cactidbpwd para el usuario cacti


Ajustes de configuración del servicio MariaDB

Agregue las siguientes lineas, al archivo: /etc/my.cnf.d/mariadb-server.cnf en la sección:  [mysqld]

collation-server=utf8mb4_unicode_ci
character-set-server=utf8mb4
max_heap_table_size=32M
tmp_table_size=32M
join_buffer_size=64M
# 25% Of Total System Memory
innodb_buffer_pool_size=1GB
# pool_size/128 for less than 1GB of memory
innodb_buffer_pool_instances=10
innodb_flush_log_at_timeout=3
innodb_read_io_threads=32
innodb_write_io_threads=16
innodb_io_capacity=5000
innodb_file_format=Barracuda
innodb_large_prefix=1
innodb_io_capacity_max=10000

Reinicio de MariaDB para la aplicación de nuevas configuraciones

[root@monitoreo003 ~]# systemctl restart mariadb


Se requiere de la importación de los datos /usr/share/mariadb/mysql_test_data_timezone.sql y darle privilegios al usuario cacti

[root@monitoreo003 ~]# mysql -u root mysql < /usr/share/mariadb/mysql_test_data_timezone.sql

De nuevo usando el comando mysql nos conectaremos al servicio

[root@monitoreo003 ~]# mysql
...
MariaDB [(none)]> GRANT SELECT ON mysql.time_zone_name TO cacti@localhost;
...
MariaDB [(none)]> flush privileges;
...
MariaDB [(none)]> exit


Instalación de repositorio epel, que cuenta con cacti y el software de cacti

[root@monitoreo003 ~]# dnf install epel-release -y

[root@monitoreo003 ~]# dnf install cacti -y

Al momento se instalo la versión: cacti-1.2.17-1

Carga de datos en la base de datos cactidb

[root@monitoreo003 ~]# mysql -u root cactidb < /usr/share/doc/cacti/cacti.sql

Configuración de conexión a la base de datos de cacti, editando el archivo: /usr/share/cacti/include/config.php

$database_type     = 'mysql';
$database_default  = 'cactidb';
$database_hostname = 'localhost';
$database_username = 'cacti';
$database_password = 'cactidbpwd';
$database_port     = '3306';
$database_retries  = 5;
$database_ssl      = false;

Activación del crontab para la ejecución del poller de cacti cada 5 minutos

El proceso de instalación agrega un crontab para planificar la ejecución de cacti cada 5 minutos

[root@monitoreo003 ~]# cat /etc/cron.d/cacti
#*/5 * * * * apache /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1

Solo hay que descomentar la linea
*/5 * * * * apache /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1


Habilitación de acceso web a cacti en servicio apache

El proceso de instalación agrego el archivo /etc/httpd/conf.d/cacti.conf, la configuración que agrego la instalación de cacti solo permite acceso vía el localhost

Alias /cacti    /usr/share/cacti
<Directory /usr/share/cacti/>
        <IfModule mod_authz_core.c>
                # httpd 2.4
                Require all granted   <--- apertura de acceso
        </IfModule>
        <IfModule !mod_authz_core.c>
                # httpd 2.2
                Order deny,allow
                Deny from all
                Allow from all   <--- apertura de acceso
        </IfModule>
</Directory>

Los ajustes permite acceso a cualquier host

Reinicio de servicios web para aplicar los cambios

[root@monitoreo003 ~]# systemctl restart httpd
[root@monitoreo003 ~]# systemctl restart php-fpm


Acceso a cacti

Partiendo de que tenemos una instalación básica por lo regular se modifica la configuración default de SELINUX, y se tiene un firewall con puertos cerrados.
Procederemos a poner SELINUX en modo permisivo, editando el archivo: /etc/selinux/config, en el archivo a la variable SELINUX le asignaremos el valor permissive

SELINUX=permissive

por lo regular el equipo se debe reiniciar.

posteriormente abrimos los puertos en la zona publica del firewall de manera permanente y recargamos la configuración

[root@monitoreo003 ~]# firewall-cmd --permanent --zone=public --add-service=http
[root@monitoreo003 ~]# firewall-cmd --permanent --zone=public --add-service=https
[root@monitoreo003 ~]# firewall-cmd --reload

Configuración de cacti

Una vez que tenemos acceso web a cacti, usando la url: http://<host o dirección ip>/cacti, podremos iniciar el proceso de configuración, usando usuario y contraseña inicial admin/admin, iniciaremos la sesión.


Primer login en cacti

Cambio de contraseña 

Como primer paso de configuración modificaremos la contraseña de admin

Cambio de contraseña

Acuerdo de licencia

En esta pantalla, elija el tema y el idioma y active la opción de aceptación del acuerdo de licencia,  y presione "comenzar"

Acuerdo de licencia

Tipo de instalación

En esta pantalla elija el tipo de instalación, en nuestro caso, como solo usaremos un servidor de monitoreo, la definiremos como "Primary Server", también muestra la configuración a la base de datos.

Tipo de instalación
Localización de archivos

En la siguiente pantalla, se muestran las rutas de las herramientas y versiones a usar por cacti

Localización de archivos y versiones



Habilitación de templates

Cacti cuenta con templates defaults, para el monitoreo SNMP de algunos dispositivos

Activación de templates

Cambio de juegos de caracteres

En la siguiente pantalla se dan instrucciones para el cambio del juego de caracteres de la base de datos

Cambio de juegos de caracteres

MariaDB [(none)]> ALTER DATABASE cactidb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Reinicio del servicio

[root@monitoreo003 ~]# systemctl restart mariadb


Confirmar el proceso de instalación

En la siguiente pantalla activamos la opción de confirmación para avanzar con el proceso de instalación, y presionamos "Install"

Confirmar el proceso de instalación
Progreso de configuración 1

Progreso de configuración 1
Progreso de configuración 2


Progreso de configuración 2
Progreso de configuración 3


Progreso de configuración 3
Progreso de configuración 4

Progreso de configuración 4
Interfaz de administración de cacti

Interfaz de administración de cacti


Referencia:

https://www.howtoforge.com/how-to-install-cacti-monitoring-server-on-centos-8/

OBSERVACIONES:

Me ocurrió que con esta instalación, hay problemas con algunas templates importadas y es que hay algunos errores al obtener datos snmp, por eso tuve que regresar a CentOS 7 + Cacti


No hay comentarios:

Learning PHP, MySQL & JavaScript (Sixth Edition)

  Capitulo 4. Código: 11.php <?php   $level = $score = $time = 0; ?> Código: 12.php <?php   $month = "March";   if ($mont...