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
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=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
...
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_cicharacter-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
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
MariaDB [(none)]> GRANT SELECT ON mysql.time_zone_name TO cacti@localhost;
...
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_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
*/5 * * * * apache /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
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
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.
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