Monitoreo fácil con Monitorix

Volviendo poco a poco a la actividad a la web, hoy os quiero hablar del penúltimo sistema de monitoreo, llamado Monitorix. Sí, la verdad es que a mí también me ha recordado a los nombres de los personajes de Astérix y Obelix 😊 Tal y como indica en su web se trata de un sistema de monitoreo liviano, que sigue en su desarrollo la filosofía del código abierto y que es software libre, ya que utiliza una licencia GNU GPLv2. Tiene como fin principal controlar tanto servicios como recursos del sistema, tanto como sea posible. Ha sido creado para ser utilizado en servidores GNU/Linux, pero también se puede utilizar en sistema integrados.

Tal y como viene siendo habitual he utilizado para las pruebas y las capturas del producto, los VPS ofrecidos por mi proveedor de confianza Clouding.io

Logo de Monitorix

Cuéntame algo más sobre Monitorix

Consta de dos partes: un recopilador, llamado también monitorix, que es un servicio escrito en Perl, que se inicia de forma automática como cualquier otro servicio del sistema, y un script CGI llamado monitorix.cgi

Monitorix incluye su propio servidor HTTP, que funciona sobre el puerto 8080/TCP, para ver los gráficos de las estadísticas, por lo que no hace falta instalar un servidor web de terceros. Por lo que, para acceder a esta herramienta, lo haremos vía web por el puerto antes comentado en http://localhost:8080/monitorix

Aunque inicialmente esta herramienta fue pensada para sistemas con paquetería RPM, como Red Hat, Fedora o Centos, actualmente es compatible con otras distribuciones GNU/Linux, incluso para sistemas UNIX de la rama BSD

El equipo detrás de Monitorix siempre está intentando mejorarla, agregando nuevas funciones, nuevos gráficos y corrigiendo errores. Intentando así ofrecer una gran herramienta para los administradores de sistemas.

Importante comentar que el impulsor principal de esta herramienta es Mikaku (Jordi Sanfeliu)

Principales características de Monitorix

  • Control del promedio de carga del sistema, procesos activos, uso del kernel por el número de procesador, uso del kernel global y la asignación de la memoria.
  • Supervisa la temperatura y el estado de los discos.
  • Uso del sistema de archivos y actividad E/S
  • Uso del tráfico de red.
  • Se pueden controlar servicios como SSH, FTP, Vsftpd, ProFTP, SMTP, POP3, IMAP, VirusMail, entre otros.
  • Estadísticas de MTA Mail, incluidas las conexiones de entrada y salida.
  • Tráfico de los puertos de red, incluidos TCP, UDP, etcétera.
  • Estadísticas de FTP, MySQL, Squid o Fail2ban, incluyendo el servidor local y hosts remotos.
  • Monitoreo de equipos remotos.
  • Capacidad para ver las estadísticas en gráficos o en tablas de texto.
  • Posibilidad de hacer zoom sobre las gráficas.
  • Servidor HTTP integrado

Instalar Monitorix en sistemas RHEL, Centos y Fedora

Primero de todo en estos sistemas debemos tener habilitado el popular repositorio EPEL, para ello debemos ejecutar:

# En versiones RHEL 9 y similares
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm 
# En versiones RHEL 8 y similares
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# En versions RHEL 7 y similares
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

La herramienta tiene una serie de dependencias que tenemos que cumplir:

yum install rrdtool rrdtool-perl perl-libwww-perl perl-MailTools
yum install perl-CGI perl-DBI perl-XML-Simple perl-Config-General 
yum install perl-IO-Socket-SSL perl-HTTP-Server-Simple wget

También es importante que tengamos deshabiitado SELinux, cambiando el parámetro «enforcing» por «disabled» en el fichero «/etc/selinux/config»

Ahora sí, ya podemos instalar Monitorix:

yum install monitorix

Para muestra un botón:

Instalo Monitorix sobre Rocky Linux 8

Una vez instalada, el fichero de configuración lo encontramos en la ruta «/etc/monitorix/monitorix.conf«. Desde allí podemos indicar que partes del sistema y servicios queremos controlar.

Para añadir el sistema al arranque, encenderlo y controlar su estado:

systemctl enable monitorix
systemctl start monitorix
systemctl status monitorix

En mi caso, en el Rocky Linux 8, que estoy utilizando tengo el cortafuegos con Firewalld activado, por lo que tengo que abrir el puerto 8080, de la siguiente manera:

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload

Si todo ha ido bien ya tendríamos que poder acceder vía web a la URL «http://localhost:8080/monitorix» o bien «http:/IP-servidor:8080/monitorix«

La primera vez que accedemos el aspecto es el siguiente:

Aspecto de la herramienta la primera vez que entramos

Instalar Monitorix en sistemas Debian, Ubuntu o Linux Mint

En estas versiones es aún más fácil la instalación, ya que Monitorix ya se e encuentra en los repositorios principales, en las últimas versiones de las distribuciones.

sudo apt-get update
sudo apt-get install monitorix

Si son un poco más antiguas, debemos habilitar el repositorio Izzy, en el caso de Ubuntu. Añadiendo en el fichero «/etc/apt/sources.list», la siguiente línea:

deb http://apt.izzysoft.de/ubuntu generic universe

Guardamos y salimos. Ahora añadimos la llave GPG:

wget http://apt.izzysoft.de/izzysoft.asc
apt-key add izzysoft.asc

Ahora ya podemos actualizar e instalar:

apt-get update
apt-get install monitorix

Instalación manual de Monitorix utilizando el paquete DEB

También podemos descargarnos directamente el paquete DEB e instalarlo, siguiendo estas instrucciones.

Actualizamos el sistema e instalamos las dependencias:

apt-get update
apt-get install rrdtool perl libwww-perl libmailtools-perl 
apt get install libmime-lite-perl librrds-perl libdbi-perl 
apt-get install libxml-simple-perl libhttp-server-simple-perl
apt-get install libconfig-general-perl libio-socket-ssl-perl

Descargamos el paquete DEB y lo instalamos:

wget https://www.monitorix.org/monitorix_3.14.0-izzy1_all.deb
dpkg -i monitorix_3.14.0-izzy1_all.deb

Durante la instalación se realizará la configuración del servidor web. Por lo tanto, debemos volver a recargar el servidor web Apache:

# En sistemas con SysVinit
service apache2 restart
# En Sistemas con Systemd
systemctl enable apache2

Si cambiamos alguna parte de la configuración de la herramienta, debemos reiniciarla:

# En sistemas con SysVinit
service monitorix restart
# En Sistemas con Systemd
systemctl restart monitorix

Cuando lo instalamos de esta manera, solo podemos acceder a la herramienta desde el propio localhost. Si queremos que se pueda acceder desde otro lugar, debemos modificar el fichero «/etc/apache2/conf.d/monitorix.conf» y modificar la línea de «Allow from«, con la IP que nos interese.

Algunas muestras de uso

Para ver un poco su funcionamiento, lo he dejado funcionando un rato, para que así recopile información y realizar las siguientes capturas:

Carga del servidor

Muestra carga del servidor

Cómo apenas ha tenido tiempo la herramienta de recopilar información, y quiero publicar hoy la entrada, aprovecho las capturas de la propia web del proyecto.

Estadísticas de MySQL/MariaDB

Estadísticas de uso de MysQL/MariaDB

Uso de FTP

Uso de FTP

Estadísticas de un servidor Apache

Estadísticas de un servidor Apache

Y eso es todo, espero que esta entrada os haya sido de utilidad. ¿Habéis probado Monitorix en algún momento? ¿Conocéis alguna herramienta similar?

Fuentes consultadas

Web oficial de Monitorix

Documentación

Entrada sobre la herramienta en Tecmint