Monitorix, un sencillo sistema de monitorización para servidores Linux

Hace algunos años escribí un artículo sobre la necesidad de monitorizar los sistemas informáticos a nuestro cargo, en el que comentaba que la tarea de implantar un sistema de monitorización no era tan difícil como exigente. Pues bien, existe un software que no sólo es muy fácil de instalar sino que permite elegir el nivel de exigencia que queramos tanto para nosotros como administradores como para el propio software.

El software en cuestión se llama Monitorix, lo desarrolla Jordi Sanfeliu en el lenguaje Perl, es de licencia libre y está disponible para Linux y FreeBSD. Su objetivo es ofrecer un panel de control sencillo, personalizable a través de un único fichero de configuración en texto plano (en algunas distros existe un fichero extra, como veremos más adelante), que permita realizar un detallado seguimiento mediante completas gráficas a los parámetros y servicios del sistema que más nos interesen. Monitorix no sólo nos habla del uso de la CPU, la RAM, la red o el almacenamiento local, sino que está preparado para mantenernos informados del rendimiento de servidores tan populares como Apache o MySQL. Y todo, insisto, a través de gráficas muy completas y a la vez sencillas de interpretar.

Todo el acceso a Monitorix se realiza a través de navegador web, ya que se invoca a través de un CGI que incluye su propio servidor web (se puede integrar con uno ya existente en el sistema) y que consulta las bases de datos generadas por un demonio que está periódicamente recopilando la información que nos interese.

Para ello, Monitorix utiliza bases de datos Round Robin (RRD) como backend para el almacenamiento de los datos recogidos. Esto le permite mantener un histórico del comportamiento del sistema y nos ofrece la posibilidad de consultar la información tanto en tiempo real como del periodo de tiempo que queramos.

Otra característica muy interesante de Monitorix es que se puede configurar una instancia a través de la cual accedamos a todas las demás instaladas en los sistemas monitorizados. De esta forma sólo necesitamos un panel de control para acceder a toda la información de nuestros sistemas. Para ello hay que activar en la configuración de Monitorix el modo multihost en el nodo central e indicarle cuales son los otros sistemas a monitorizar a través suyo. La activación de esta característica es muy sencilla y se detalla claramente en la FAQ del proyecto.

Antes de proceder a explicar cómo instalar Monitorix en Debian, debo aclarar que tenemos dos opciones: instalación manual e instalación mediante repositorio. Qué opción nos interesa más es algo que debemos elegir cada uno en base a nuestras circunstancias particulares, aunque por mi parte tengo claro que para hacer una prueba me quedo con la manual, mientras que para instalar definitivamente no hay nada mejor que usar un repositorio.

Instalación a mano

Empezamos comprobando cuál es la última versión disponible en http://www.monitorix.org/downloads.html y procedemos a la instalación del paquete, sustituyendo (version) por el número que hemos visto en la web de descarga.

Primero descargamos el paquete:

# wget http://www.monitorix.org/monitorix_(version)-izzy1_all.deb

A continuación instalamos software de apoyo:

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

Ahora instalamos el paquete descargado de Monitorix:

# dpkg -i monitorix_(version)-izzy1_all.deb

Y le decimos al sistema que resuelva cualquier depedencia incmplida que pueda haber surgido:

# apt-get -f install
Instalación mediante repositorio

En este caso comenzamos editando la lista de repositorios de nuestra Debian en /etc/apt/sources.list y añadimos el repositorio deb http://apt.izzysoft.de/ubuntu generic universe.

Después añadimos la firma de dicho repositorio importando su clave GPG al sistema:

# wget -O - http://apt.izzysoft.de/izzysoft.asc 2>/dev/null | apt-key add -

Finalmente actualizamos los repositorios e instalamos el paquete:

# apt-get update && apt-get install monitorix
Configuración y puesta en marcha

En Debian, configuramos Monitorix a través del fichero /etc/monitorix/conf.d/00-debian.conf, que sustituye la configuración presente en el fichero principal /etc/monitorix/monitorix.conf, de forma que no tengamos que tocarlo y así la actualización entre versiones sea más sencilla.

Dado que Monitorix trabaja sobre los registros del sistema, en este fichero comprobamos que sus caminos son correctos. Asimismo, en la sección <graph_enable> podemos habilitar y deshabilitar lo que queramos monitorizar. Finalmente, cada parámetro del sistema o servicio a monitorizar tiene su propia sección en la que podemos personalizar su comportamiento.

Tras cualquier cambio en la configuración, basta con reiniciar el servicio para activarlo:

# /etc/init.d/monitorix restart

El servidor web que incluye Monitorix es accesible a través del puerto 8080 (también configurable). Para acceder al recién instalado panel de control, abrimos un navegador y apuntamos a http://<IP>:8080/monitorix/.

Con esto tendremos instalado un potente sistema de monitorización, con información directa y sencilla de interpretar y con un bajo impacto en el sistema.

Espero haberos animado a probar Monitorix. A cambio espero vuestros comentarios.