Instalación de Cacti en openSUSE 15.1
Cacti es una herramienta que ofrece una solución completa para el análisis de redes y equipos, su uso en tareas de monitoreo está ampliamente extendido y es capaz de generar potentes gráficos mediante la plataforma RRDtools.
En este artículo se documentarán todos los pasos a seguir para instalar la versión 1.2.5 de Cacti en openSUSE 15.1, incluyendo también los pasos para instalar nuevos complementos que permiten agregar nuevas funcionalidades a la herramienta.
Queda a cargo de los lectores investigar y aprender a usar la herramienta, y la manera de sacar el mayor provecho a la misma. Pueden visitar el artículo sobre Cacti en wikipedia o su página oficial (cuyo enlace se encuentra al final de este artículo) para obtener mayor información acerca de la misma.
En este artículo se documentarán todos los pasos a seguir para instalar la versión 1.2.5 de Cacti en openSUSE 15.1, incluyendo también los pasos para instalar nuevos complementos que permiten agregar nuevas funcionalidades a la herramienta.
Queda a cargo de los lectores investigar y aprender a usar la herramienta, y la manera de sacar el mayor provecho a la misma. Pueden visitar el artículo sobre Cacti en wikipedia o su página oficial (cuyo enlace se encuentra al final de este artículo) para obtener mayor información acerca de la misma.
Requisitos
- Para comenzar primero tenemos que instalar y configurar el motor de base de datos MariaDB, para lo cual les recomiendo seguir la guía que escribí recientemente y que la pueden consultar aquí.
- A continuación se necesitan tener instalados los siguientes paquetes:
apache2
Para instalar los paquetes con zypper tenemos que ejecutar el siguiente comando:
apache2-mod_php7
rrdtool
php7
php7-mysql
php7-snmp
php7-gmp
php7-ldap
php7-openssl
php7-sockets
php7-posix
net-snmptestsrv:~ # zypper in apache2 apache2-mod_php7 rrdtool php7 php7-mysql php7-snmp php7-gd php7-gettext php7-gmp php7-ldap php7-openssl php7-sockets php7-posix net-snmp
Instalación de la herramienta
Los pasos que se siguieron para instalar esta herramienta de monitoreo son los siguientes:- Lo mejor es descargar la última versión desde el propio sitio web de Cacti:
testsrv:~ # cd /srv/www
testsrv:/srv/www/cacti # wget https://www.cacti.net/downloads/cacti-1.2.5.zip
testsrv:/srv/www/cacti # unzip cacti-1.2.5.zip
testsrv:/srv/www/cacti # mv cacti-1.2.5/ cacti
testsrv:/srv/www/cacti # rm cacti-1.2.5.zip - El siguiente paso consiste en crear en el motor de base de datos MariaDB una nueva base de datos para la herramienta Cacti.
testsrv:~ # mysqladmin -u root -p create cacti
- Nos conectamos a la base de datos MariaDB con el usuario root para cambiar el juego de caracteres a UTF8, crear un nuevo usuario denominado cactiuser y otorgarle los permisos necesarios para acceder y modificar el contenido de la base de datos cacti creada en el punto dos.
testsrv:~ # mysql -u root -p mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 4601
Server version: 10.2.22-MariaDB openSUSE package
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [mysql]> ALTER DATABASE cacti CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Query OK, 0 rows affected (0.00 sec)
MariaDB [mysql]> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'contraseña_para_cactiuser';
Query OK, 0 rows affected (0.00 sec)
MariaDB [mysql]> GRANT SELECT ON mysql.time_zone_name TO cactiuser@localhost;
Query OK, 0 rows affected (0.00 sec)
MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [mysql]> exit
Bye - Luego cargamos registros relacionados con la configuración de timezones para MariaDB e importamos la base de datos inicial para la herramienta Cacti:
testsrv:~ # mysql -u root -p mysql < /usr/share/mariadb/mysql_test_data_timezone.sql
testsrv:~ # mysql -u root -p cacti < /srv/www/cacti/cacti.sql - Editamos el archivo config.php ubicado en el directorio /srv/www/cacti/include,
testsrv:~ # vim /srv/www/cacti/include/config.php
y a continuación configuramos el tipo de base de datos ($database_type), la base de datos por defecto a ser utilizada por la herramienta ($database_default), el nombre del host en la cual se encuentra la base de datos ($database_hostname) y la definición del nombre del usuario y su respectiva contraseña con el cual Cacti se conectará a su base de datos ($database_username y $database_password). Por otro lado, en el caso de que hayamos modificado el número de puerto por defecto en el que el motor de base de datos MariaDB atiende las peticiones de conexión, tendremos que especificar ese mismo puerto en la directiva $database_port. El archivo config.php deberá quedar similar a lo que sigue:$database_type = "mysql";
Realizado lo anterior guardamos los cambios y cerramos el archivo config.php para pasar al siguiente punto de configuración.
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "contraseña_de_cactiuser";
$database_port = "3306"; - En este paso tenemos que aplicar los permisos apropiados para varios directorios. Como la herramienta será ejecutada a través del servicio Apache, debemos asignar a los directorios el usuario/grupo wwwrun/www respectivamente de forma recursiva, para que el servicio pueda leer y escribir en dichos directorios.
testsrv:~ # chown -Rf wwwrun:www /srv/www/cacti/rra
testsrv:~ # chown -Rf wwwrun:www /srv/www/cacti/log
testsrv:~ # chown -Rf wwwrun:www /srv/www/cacti/resource
testsrv:~ # chown -Rf wwwrun:www /srv/www/cacti/scripts
testsrv:~ # chown -Rf wwwrun:www /srv/www/cacti/cache/boost
testsrv:~ # chown -Rf wwwrun:www /srv/www/cacti/cache/mibcache
testsrv:~ # chown -Rf wwwrun:www /srv/www/cacti/cache/realtime
testsrv:~ # chown -Rf wwwrun:www /srv/www/cacti/cache/spikekill - A continuación creamos un archivo para la herramienta Cacti en el directorio /etc/cron.d y luego lo editamos:
testsrv:~ # touch /etc/cron.d/cacti
Una vez abierto le agregamos el siguiente contenido:
testsrv:~ # vi /etc/cron.d/cacti# Ejecución de la graficación de Cacti cada cinco minutos.
Finalmente guardamos los cambios y reiniciamos el servicio cron.
*/5 * * * * wwwrun php /srv/www/cacti/poller.php > /dev/null 2>&1testsrv:~ # systemctl restart cron
- También tenemos que configurar las directivas memory_limit, max_execution_time y date.timezone de PHP7 que afecta el despliegue de las fechas y horas en Cacti. Comenzamos por editar el archivo php.ini del directorio /etc/php7/apache2:
testsrv:~ # vi /etc/php7/apache2/php.ini
En el archivo buscamos las directivas memory_limit y max_execution_time, y las dejamos como sigue:; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
;memory_limit = 128M
memory_limit = 500M; Maximum execution time of each script, in seconds
Finalmente buscamos la directiva date.timezone de la sección [Date] que por defecto está configurada en UTC, la comentamos y justo abajo agregamos la misma directiva pero configurada con el timezone que corresponda para nuestro huso horario, en este ejemplo America/Asuncion (La lista de timezones de PHP se pueden ver en éste enlace).
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
;max_execution_time = 30
max_execution_time = 60[Date]
Por otro lado, solo la directiva date.timezone configuramos en el archivo de mismo nombre php.ini pero del directorio /etc/php7/cli:
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone = 'UTC'
date.timezone = 'America/Asuncion'testsrv:~ # vi /etc/php7/cli/php.ini
- Luego en el directorio /etc/apache2/conf.d creamos y editamos el archivo de configuración cacti.conf:
testsrv:~ # touch /etc/apache2/conf.d/cacti.conf
Y dejamos el contenido del archivo como se detalla a continuación:
testsrv:~ # vim /etc/apache2/conf.d/cacti.conf# Cacti - the complete rrdtool-based graphing solution
#
# Allows only localhost by default
#
# Allowing cacti to anyone other than localhost should be considered
# dangerous unless properly secured by SSL
# Make sure, that httpd can read your cacti directories.
# At minimum, you need
# chmod ugo+r -R /your/cacti/dir
# Make sure to replace with your directories
# When using SELinux, set the following:
# chcon -R -h -t httpd_sys_content_t /your/cacti/dir
# when using SELinux and you private homedir, enable
# setsebool -P httpd_enable_homedirs 1
# setsebool -P httpd_read_user_content 1
Alias /cacti /srv/www/cacti
<Directory /srv/www/cacti>
# AllowOverride None
# Order Deny,Allow
# Deny from all
# Allow from 127.0.0.1
# Allow from ::1
Options Indexes Includes FollowSymLinks
Require all granted
</Directory>
# These directories do not require access over HTTP
#
<Directory /srv/www/cacti/cli>
# Order Deny,Allow
# Deny from All
# Allow from None
AllowOverride none
Require all denied
</Directory> - En cuanto a la configuración de Apache propiamente dicha, lo primero que debemos hacer es editar el archivo apache2 del directorio /etc/sysconfig:
testsrv:~ # vi /etc/sysconfig/apache2
Una vez en el archivo nos dirigimos a la sección APACHE_MODULES para verificar que los módulos ssl y php7 estén debidamente habilitados:APACHE_MODULES="actions alias auth_basic authn_core authn_file authz_host authz_groupfile authz_core authz_user autoindex cgi dir env expires include log_config mime negotiation setenvif ssl socache_shmcb userdir reqtimeout php7"
También, en el mismo archivo tenemos que asignar a la directiva APACHE_SERVER_FLAGS el valor SSL para habilitar la función en el Apache:APACHE_SERVER_FLAGS="SSL"
- El siguiente paso consiste en verificar que Apache esté correctamente configurado para que escuche en los puertos indicados tanto para el protocolo http, que por defecto usa el puerto 80, como así también para las conexiones seguras bajo el protocolo https que normalmente usa el puerto 443. Para ello abrimos el archivo llamado listen.conf ubicado en el directorio /etc/apache2,
testsrv:~ # vi /etc/apache2/listen.conf
que debería tener una configuración similar a lo que sigue:Listen 80
<IfDefine SSL>
<IfDefine !NOSSL>
<IfModule mod_ssl.c>
Listen 443
</IfModule>
</IfDefine>
</IfDefine> - A continuación generamos un certificado personalizado mediante el comando gensslcert al que le pasamos varios argumentos para enriquecer el contenido del certificado como se muestra a continuación:
testsrv:~ # gensslcert -N "Este es un Certificado de Ejemplo" -c PY -s It -l HO -o "Gabriel-Corp." -u "Informatica" -n "tdb.gknet.local" -e "contacto(ARROBA)tdb.com" -y 60
Al ejecutar el comando se crearán una serie de archivos inicialmente llamados con el nombre tdb.gknet.local- en los siguientes directorios:/etc/apache2/ssl.crt/tdb.gknet.local-ca.crt
/etc/apache2/ssl.crt/tdb.gknet.local-server.crt
/etc/apache2/ssl.csr/tdb.gknet.local-server.csr
/etc/apache2/ssl.key/tdb.gknet.local-ca.key
/etc/apache2/ssl.key/tdb.gknet.local-server.key
/srv/www/htdocs/TDB.GKNET.LOCAL-CA.crt - A continuación nos dirigimos al directorio de configuración /etc/apache2/vhosts.d y creamos una copia a partir del archivo vhost-ssl.template con el nombre vhost-ssl.conf, que luego lo editamos:
testsrv:~ # cd /etc/apache2/vhosts.d
En el archivo vhost-ssl.conf dejamos las directivas SSLCertificateFile y SSLCertificateKeyFile configuradas como sigue:
testsrv:/etc/apache2/vhosts.d # cp vhost-ssl.template vhost-ssl.conf
testsrv:/etc/apache2/vhosts.d # vim vhost-ssl.conf# You can use per vhost certificates if SNI is supported.
SSLCertificateFile /etc/apache2/ssl.crt/tdb.gknet.local-server.crt
SSLCertificateKeyFile /etc/apache2/ssl.key/tdb.gknet.local-server.key - Antes de iniciar el servicio Apache2 debemos verificar si el nombre del host se encuentra correctamente definido para nuestra dirección IP en el archivo /etc/hosts:
testsrv:~ # cat /etc/hosts
Sino está la línea accedemos al apartado de configuración de redes de Yast y configuramos el campo Hostname de la ventana que se muestra a continuación:
#
# hosts This file describes a number of hostname-to-address
# mappings for the TCP/IP subsystem. It is mostly
# used at boot time, when no name servers are running.
# On small systems, this file can be used instead of a
# "named" name server.
# Syntax:
#
# IP-Address Full-Qualified-Hostname Short-Hostname
#
127.0.0.1 localhost
# special IPv6 addresses
::1 localhost ipv6-localhost ipv6-loopback
fe00::0 ipv6-localnet
ff00::0 ipv6-mcastprefix
ff02::1 ipv6-allnodes
ff02::2 ipv6-allrouters
ff02::3 ipv6-allhosts
192.168.1.100 tdb.gknet.local tdb
testsrv:~ #YaST2 - lan @ testsrv
Network Card Setup
┌General──Address──Hardware────────────────────────────────────────┐
│ Device Type Configuration Name │
│ Ethernet▒▒▒▒▒▒▒▒▒▒▒▒▒â eth0▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ │
│( ) No Link and IP Setup (Bonding Slaves) [ ] Use iBFT Values │
│( ) Dynamic Address DHCP▒▒▒▒▒▒▒▒▒▒â DHCP both version 4 and 6▒â │
│(x) Statically Assigned IP Address │
│IP Address Subnet Mask Hostname │
│192.168.1.100▒▒▒▒▒▒ /24▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ tdb.gknet.local▒▒ │
│┌Additional Addresses────────────────────────────────────────────┐│
││ ┌─────────────────────────────────────────────────────────┐ ││
││ │IPv4 Address Label│IP Address│Netmask │ ││
││ │ │ ││
││ └─────────────────────────────────────────────────────────┘ ││
││ [Add][Edit][Delete] ││
│└────────────────────────────────────────────────────────────────┘│
└──────────────────────────────────────────────────────────────────┘
[Help] [Back] [Cancel] [Next]
F1 Help F3 Add F9 Cancel F10 Next - A continuación verificamos que la configuración del servicio apache2 esté correcta:
testsrv:~ # apache2ctl configtest
Y luego activamos y reiniciamos el servicio apache2.
Syntax OK
testsrv:~ #testsrv:~ # systemctl enable apache2
Una vez iniciado el servicio apache2 podemos verificar si funciona el servicio https de la siguiente manera.
testsrv:~ # systemctl restart apache2testsrv:~ # openssl s_client -connect tdb.gknet.local:443
CONNECTED(00000003)
depth=0 C = PY, ST = It, L = HO, O = Gabriel-Corp, OU = Informatica, CN = tdb.gknet.local, emailAddress = contacto(ARROBA)tdb.com
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 C = PY, ST = It, L = HO, O = Gabriel-Corp, OU = Informatica, CN = tdb.gknet.local, emailAddress = contacto(ARROBA)tdb.com
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
0 s:/C=PY/ST=It/L=HO/O=Gabriel-Corp/OU=Informatica/CN=tdb.gknet.local/emailAddress=contacto(ARROBA)tdb.com
i:/C=PY/ST=It/L=HO/O=Gabriel-Corp/OU=CA/CN=tdb.gknet.local/emailAddress=contacto(ARROBA)tdb.com
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIEQzCCAyugAwIBAgIBBTANBgkqhkiG9w0BAQsFADCBqjELMAkGA1UEBhMCUFkx
..
.. - Luego habilitamos el servicio Apache en el cortafuegos de openSUSE, para ello editamos el archivo /etc/firewalld/zones/public.xml:
testsrv:~ # vi /etc/firewalld/zones/public.xml
y el contenido debería quedar como se muestra a continuación:<zone>
Guardamos los cambios, salimos del editor y procedemos a reiniciar el cortafuegos con el siguiente comando:
<short>Public</short>
<description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
<service name="ssh"/>
<service name="http"/>
<service name="https"/>
<service name="dhcpv6-client"/>
</zone>testsrv:~ # systemctl restart firewalld
- En este punto ya podemos acceder a la interfaz web de la herramienta Cacti colocando en la barra de direcciones de nuestro navegador favorito la siguiente URL:
https://nombre_o_ip_servidor/cacti/
Sin embargo, aún nos falta trabajo por hacer que consiste en seguir las instrucciones que nos muestra la interfaz web para culminar la instalación y configuración de la herramienta. En la primera pantalla la herramienta nos solicitará actualizar la contraseña por defecto del usuario admin, que suele ser la palabra admin también: - En el siguiente paso podemos definir el tema y el idioma predeterminado de la herramienta, además de tener que aceptar el acuerdo de la licencia, requisito obligatorio para avanzar al siguiente paso. Presionamos el botón Comenzar para avanzar.
- A continuación el asistente nos informará acerca de todas las dependencias que faltan instalar o configurar para que el entorno quede correctamente configurado para la herramienta Cacti. Uno de los casos que se requirió configurar fue el motor de base de datos MariaDB, que por defecto trae las configuraciones mínimas para funcionar pero que son insuficientes para un buen desempeño de la herramienta Cacti.
En base a la información del asistente de instalación se procedió entonces a configurar el motor de base de datos con los parámetros recomendados. Se comenzó por editar el siguiente archivo de configuración:testsrv:~ # vi /etc/my.cnf
En el cual se configuraron las directivas con sus respectivos valores dentro de la sección [mysqld], justo por encima de la sección [mysqld_multi]:# Parametros de configuracion para Cacti.
Finalmente es importante recordar que si instalamos dependencias php y/o configuramos el motor de base de datos MariaDB, tendremos que reiniciar los servicios apache2 y mariadb respectivamente para que los cambios tomen efecto:
collation_server = utf8mb4_unicode_ci
max_heap_table_size = 300M
tmp_table_size = 100M
join_buffer_size = 200M
innodb_buffer_pool_size = 1500M
innodb_doublewrite = OFF
innodb_flush_log_at_timeout = 3
innodb_read_io_threads = 32
innodb_write_io_threads = 16
innodb_buffer_pool_instances = 17
innodb_io_capacity = 5000
innodb_io_capacity_max = 10000testsrv:~ # systemctl restart apache2
Luego de reiniciar los servicios y de refrescar el asistente de instalación web se debería observar que todos los requisitos fueron cumplidos:
testsrv:~ # systemctl restart mariadb - En el paso que sigue el asistente nos solicitará seleccionar el tipo de instalación, dejamos la configuración por defecto Nuevo servidor primario y presionamos el botón Siguiente para continuar:
- En el siguiente paso el asistente verifica que los permisos de los directorios sean correctos:
- En este paso el asistente desplegará un formulario en el que muestra las rutas hacia los distintos directorios y librerías requeridos por la aplicación. Como se podrá ver más abajo en la imagen, el propio sistema informa si las rutas a los directorios son correctas, en el caso del ejemplo no fue necesario realizar ninguna modificación:
- El asistente nos permitirá configurar el intervalo de recopilación de información que recomiendo dejar por defecto, sin embargo, recomiendo desactivar la opción de escaneo automático de la red en búsqueda de dispositivos (encerrado en rojo).
- En el siguiente paso el asistente nos dejará elegir que plantillas de dispositivos vamos a usar, recomiendo que todos queden marcados como se muestra en la captura que sigue:
- Si pasamos al siguiente paso el asistente verificará que la configuración del juego de caracteres sea adecuado en la base de datos y en la configuración de la herramienta Cacti:
- Finalmente llegamos al último paso, donde marcamos la opción Confirmar instalación y presionamos el botón Instalar para iniciar el proceso de instalación:
El asistente de instalación nos mantendrá al tanto con el avance de la misma como se puede observar a continuación:
Con la siguiente captura el asistente nos estará avisando que el proceso de instalación ha finalizado, podemos presionar el botón Comenzar que nos llevará directamente a la consola principal de la herramienta:
Instalación de plugins
Cacti cuenta con varios plugins que permiten ampliar su funcionalidad y el procedimiento de instalación es muy sencillo.- Antes que nada debemos dirigirnos a la carpeta plugins de Cacti ubicada en el directorio /srv/www/cacti:
testsrv:~ # cd /srv/www/cacti/plugins
- En la página de plugins de cacti podemos buscar la URL del complemento que nos interesa instalar, de entre los cuales recomiendo los siguientes:
- En el siguiente paso procedemos a descargar ambos complementos con el programa wget para posteriormente descomprimirlos:
testsrv:/srv/www/cacti/plugins # wget https://github.com/Cacti/plugin_cycle/archive/develop.zip -O cycle.zip
testsrv:/srv/www/cacti/plugins # unzip cycle.zip
testsrv:/srv/www/cacti/plugins # mv plugin_cycle-develop cycletestsrv:/srv/www/cacti/plugins # wget https://github.com/Cacti/plugin_thold/archive/develop.zip -O thold.zip
testsrv:/srv/www/cacti/plugins # unzip thold.zip
testsrv:/srv/www/cacti/plugins # mv plugin_thold-develop/ thold - Para activar los nuevos complementos nos dirigimos a la consola de administración web de Cacti y seleccionamos la opción Plugins de la barra lateral izquierda. En esta interfaz solo resta instalar y habilitar los plugins presionando los botones Instalar Plugin y Habilitar Plugin respectivamente de la columna Acciones como se muestra en las siguientes capturas:
Observaciones sobre Threshold
- Si bien esta guía no tiene el propósito de documentar los procedimientos para agregar dispositivos, gráficos y configurar la herramienta Cacti para un entorno de producción, si quisiera hacer una pequeña observación sobre la funcionalidad Threshold proveída por el plugin Thold, y es que he tenido problemas a la hora de configurar la generación de alertas cuando el tráfico de red de un gráfico alcanzaba el valor cero o no disponible (N/D), debido a que la interfaz de red del equipo remoto que se monitoreaba no generaba información por el corte en la red de datos. Luego de investigar bastante en el foro de Cacti, pude idear un workaround que básicamente consiste en lo siguiente:
Para que las alertas de tipo Warning o Alert se disparen lo que se tiene que hacer es asignarles en principio un valor mínimo en el campo Low Threshold que sea superior a cero; en el ejemplo se usó el valor 1.1, o lo que es lo mismo, 8.8 bits de velocidad. Luego, en el apartado de manipulación de datos se tiene que seleccionar de la lista Data Type el valor RPN Expression, y justo debajo introducir la expresión "|ds:traffic_in|,1,+", donde al tráfico del gráfico asociado (|ds:traffic_in|) se le suma el valor 1 que corresponde a 1 byte (8 bits), así cuando el valor del gráfico sea cero o N/D, la expresión le sumará 1 byte que justo quedará por debajo del umbral mínimo definido en 1.1 bytes, lo que finalmente disparará la alerta.
Observaciones sobre envío de correos con PHP Mailer:
- Uno de los problemas que he tenido es la imposibilidad de enviar mails de alertas mediante ciertos servidores de correos que exigían que la conexión si o si se tenía que realizar a través del puerto 465 (Puerto SMTP = 465) y con seguridad SSL (Seguridad SMTP = SSL). Luego de investigar bastante finalmente pude identificar la causa del problema, que se debía a que el servidor de correos tenía un certificado auto firmado (self-signed), y la funcionalidad PHP Mailer que utiliza Cacti para enviar los correos no permitía por defecto aceptar automáticamente los certificados auto firmados del servidor de correo, motivo por el cual se tuvo que realizar lo siguiente para resolver el problema:
- Como la interfaz web de Cacti no permite configurar la aceptación de certificados auto firmados, la única opción es la de modificar el código fuente PHP de Cacti que se encarga de enviar los correos. Para ello tenemos que editar el archivo functions.php del directorio /srv/www/cacti/lib:
testsrv:~ # vim /srv/www/cacti/lib/functions.php
- Una vez dentro del archivo functions.php buscamos la siguiente sección:
// Create the PHPMailer instance
Y justo abajo le agregamos el código referente a la configuración SMTPOptions:
$mail = new PHPMailer\PHPMailer\PHPMailer;// Create the PHPMailer instance
Una vez realizada la modificación guardamos los cambios y salimos del archivo.
$mail = new PHPMailer\PHPMailer\PHPMailer;
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
- Finalmente, para que los cambios tomen efecto reiniciamos el servicio del Apache:
testsrv:~ # systemctl restart apache2
- Si volvemos a probar el envío de un correo de prueba desde la interfaz web de Cacti ya debería funcionar.
Fuentes
- Manual de instalación de Cacti v1.0.0 y superiores
- Sitio oficial de Cacti
- Sitio oficial de RRDtool
- Lista de plugins para Cacti
- ERROR: Your Cacti database login account does not have access to the MySQL TimeZone database.
- Configuración de Timezone en PHP
- Husos horarios (timezones) de PHP
- Cacti Forum - Zero Traffic Threshold Trigger
- Cacti Forum - Threshold for Bandwidth %
Comentarios
Publicar un comentario