Instalación y configuración de Cacti en openSUSE

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 Cacti en openSUSE, incluyendo también los pasos para instalar nuevos complementos que permiten agregar nuevas características y funcionalidades muy interesantes 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

  1. Se necesitan tener instalados los siguientes paquetes:
    apache2
    apache2-mod_php5
    php5
    php5-mysql
    php5-snmp
    mysql-community-server
    net-snmp

  2. Para instalar los paquetes con zypper tenemos que ejecutar el siguiente comando:
    testsrv:~ # zypper in apache2 apache2-mod_php5 php5 php5-mysql php5-snmp mysql-community-server net-snmp
  3. OBS: Para instalar y configurar el motor de base de datos MySQL les recomiendo seguir el manual redactado en este blog, que lo pueden ubicar en la lista de guías.


Instalación de la herramienta

Los pasos que se siguieron para instalar esta herramienta de monitoreo son los siguientes:
  1. Para comenzar les recomiendo instalar la herramienta mediante el método One-Click Install para vuestra respectiva versión y arquitectura de openSUSE desde la siguiente URL:
    http://software.opensuse.org/package/cacti
    Siempre es recomendable instalar los paquetes a partir de los repositorios oficiales (en este caso de server:monitoring) que de los repositorios de contribuciones, ya que estos últimos suelen tener demasiado software inestable que nos pueden dar problemas.

  2. El siguiente paso consiste en crear en el motor de base de datos MySQL una nueva base de datos para la herramienta Cacti.
    testsrv:~ # mysqladmin -u root -pcontraseña_de_root create cacti
  3. Luego importamos una base de datos estándar para la herramienta Cacti:
    testsrv:~ # mysql -u root -pcontraseña_de_root cacti < /usr/share/cacti/cacti.sql
  4. Nos conectamos a la base de datos MySQL con el usuario root para crear un nuevo usuario 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 -pcontraseña_de_root mysql
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 295
    Server version: 5.1.46-log SUSE MySQL RPM

    Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
    This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL v2 license

    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

    mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'contraseña_para_cactiuser';
    Query OK, 0 rows affected (0.00 sec)

    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

    mysql> exit
    Bye
  5. Editamos el archivo config.php ubicado en el directorio /usr/share/cacti/include,
    testsrv:~ # vi /usr/share/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 MySQL 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";
    $database_default = "cacti";
    $database_hostname = "localhost";
    $database_username = "cactiuser";
    $database_password = "contraseña_de_cactiuser";
    $database_port = "3306";
    Realizado lo anterior guardamos los cambios y cerramos el archivo config.php para pasar al siguiente punto de configuración.

  6. En este paso tenemos que crear en el directorio /usr/share/cacti la carpeta log y luego aplicar los permisos apropiados para los directorios rra y log. 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:~ # mkdir /usr/share/cacti/log
    testsrv:~ # chown -Rf wwwrun:www /usr/share/cacti/rra
    testsrv:~ # chown -Rf wwwrun:www /usr/share/cacti/log

  7. Agregamos al servicio crontab una tarea programada que tiene como objetivo realizar la limpieza del pool de la herramienta Cacti. Para ello creamos un archivo denominado cacti en el directorio /etc/cron.d y luego lo editamos:
    testsrv:~ # touch /etc/cron.d/cacti
    testsrv:~ # vi /etc/cron.d/cacti

    Una vez abierto el archivo le agregamos el siguiente contenido:
    # Ejecución de la graficación de Cacti cada cinco minutos.
    */5 * * * * wwwrun php /usr/share/cacti/poller.php > /dev/null 2>&1
    Finalmente guardamos los cambios y reiniciamos el servicio cron.
    testsrv:~ # /etc/init.d/cron restart
  8. Para que nos permita acceder remotamente necesitamos reemplazar la directiva allow from 127.0.0.1 por allow from all en el archivo /etc/apache2/conf.d/cacti.conf. Abrimos el archivo,
    testsrv:~ # vi /etc/apache2/conf.d/cacti.conf
    y el contenido debería quedar como se muestra a continuación:
    Alias /cacti/ /usr/share/cacti/
    <Directory /usr/share/cacti/>
    Options None
    order deny,allow
    deny from all
    #allow from 127.0.0.1
    allow from all
    </Directory>
  9. Configuramos los niveles de ejecución y arrancamos el servicio Apache.
    testsrv:~ # chkconfig --add apache2
    testsrv:~ # /etc/init.d/apache2 start

  10. Luego habilitamos el servicio Apache en el cortafuegos de openSUSE, para ello editamos el archivo /etc/sysconfig/SuSEfirewall2:
    testsrv:~ # vi /etc/sysconfig/SuSEfirewall2
    Buscamos la directiva FW_CONFIGURATIONS_EXT y le agregamos el nombre de servicio apache2 debiendo quedar similar a lo que sigue:
    FW_CONFIGURATIONS_EXT="sshd apache2"
    Guardamos los cambios, salimos del editor y procedemos a reiniciar el cortafuegos con el siguiente comando:
    testsrv:~ # rcSuSEfirewall2 restart
  11. 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:
    http://nombre_o_ip_servidor/cacti/
    OBS: No deben olvidarse de colocar la barra / al final de la URL, ya que si no se encuentra no se desplegará la herramienta web en el navegador.
    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 nos informará sobre la herramienta y el tipo de licencia que utiliza, presionamos en el botón Next para continuar.

  12. En la siguiente pantalla nos solicitará seleccionar que tipo de instalación es la que se está realizando, si es una instalación o una actualización, en mi caso es de tipo instalación nueva (New Install).

  13. En la tercera pantalla la herramienta desplegará un formulario en las que se muestran 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 mi caso no fue necesario realizar ninguna modificación, concluí con la instalación haciendo clic en el botón Finish.

  14. Del paso anterior la herramienta directamente nos redirigirá a la interfaz de logueo. Para acceder por primero vez tenemos que utilizar el usuario admin y la contraseña admin. Para continuar presionamos el botón Login como se muestra en la siguiente captura de pantalla.

  15. Luego de conectarnos por primera vez a Cacti con el usuario admin, automáticamente nos solicitará el cambio de la contraseña del mencionado usuario. Esto se debe a que la contraseña por defecto es muy simple y vulnerable, y como medida de seguridad se obliga al operador a cambiarla.

  16. Y con esto hemos concluido, luego de cambiar la contraseña pasamos a la interfaz de gestión de la herramienta Cacti. Como dije al principio, queda a cargo de ustedes aprender a utilizar esta potente herramienta. A continuación les dejo con una captura de la pantalla de gestión de la misma:



Instalación de plugins

Cacti cuenta con varios plugins que permiten ampliar su funcionalidad y el procedimiento de instalación es muy sencillo.
  1. Antes que nada debemos dirigirnos al directorio de plugins de Cacti en el directorio /usr/share/cacti/plugins, y si la carpeta no existe la creamos.
    testsrv:~ # mkdir /usr/share/cacti/plugins
    testsrv:~ # cd /usr/share/cacti/plugins

  2. Buscamos la URL del complemento que nos interesa en la página de plugins de cacti, yo he probado los siguientes:

  3. El siguiente paso consiste en descargar el complemento deseado con el programa wget y posteriormente descomprimirlo. En este ejemplo el complemento descargado será realtime, un plugin que permite analizar el tráfico o la información deseada de un host específico casi en tiempo real, ya que los gráficos estándar de Cacti se actualizan por defecto cada cinco minutos para no generar demasiado tráfico. Los pasos son los siguientes:
    testsrv:/usr/share/cacti/plugins # wget http://docs.cacti.net/_media/plugin:realtime-v0.5-2.tgz -O realtime.tgz
    testsrv:/usr/share/cacti/plugins # tar -xzf realtime.tgz

  4. Para activar el nuevo complemento nos dirigimos a la consola de administración web de Cacti y seleccionamos la opción Plugin Management de la barra lateral izquierda. En esta interfaz solo resta instalar y habilitar el plugin Realtime presionando los botones Install y Enable respectivamente de la columna Actions como se muestra en las siguientes capturas:

  5. Realizado el paso anterior ya tendremos el complemento activo y listo para ser utilizado. En el caso de Realtime, este aparecerá como opción al lado de cada gráfico que tengamos configurado en Cacti:

  6. Es posible que al tratar de ejecutar el complemento Realtime se presente el siguiente inconveniente:
    The Image Cache Directory directory does not exist. Please first create it and set permissions and then attempt to open another realtime graph.
    Si este ha sido su caso para solucionarlo necesitamos dirigirnos a la sección Settings -> Misc de la consola de administración de Cacti:
    http://localhost/cacti/settings.php?tab=misc
    Y especificar en el campo Cache Directory el siguiente directorio:
    /usr/share/cacti/rra
    Finalmente guardamos los cambios con el botón Save y ya está, el complemento debería funcionar sin problemas.
OBS: La lista completa de plugins se encuentra en esta página.


Observaciones

  • Para crear el usuario de Cacti en MySQL y ejecutar el script de creación de tablas iniciales también podemos utilizar la herramienta phpMyAdmin.
  • El directorio en donde se encuentra instalado Cacti en openSUSE es /usr/share/cacti/, a diferencia del directorio /var/www/html/cacti/ especificado en la documentación oficial de la herramienta.


Enlaces externos

Comentarios