Visualizar datos Monit con gráficas gracias a Monit-Graph

En una entrada anterior os hablamos sobre Monit y cómo instalarlo en nuestro servidor Centos y/o Ubuntu para poder controlar los servicios que tenemos instalados. En esta ocasión os traemos una aplicación web que permite graficar los datos que recoge Monit. Este tutorial funciona tanto para Centos y Ubuntu, aunque es posible que algunas rutas y algunos comandos puedan varias un poco.

Requisitos y dependencias

Para que Monit Graph funcione correctamente, es necesario que en nuestro servidor tengamos instalado un servidor de Apache o Nginx con PHP. Si necesitas saber como se instala un servidor Apache puedes ir a “Cómo instalar en Linux: Apache MariaDB y PHP (LAMP)” o si bien prefieres Nginx puedes ir a “Cómo instalar en Linux: NGINX MariaDB y PHP (LEMP)“.

También es importante tener los siguientes paquetes de PHP instalados:

Ubuntu:

# apt-get install libapache2-mod-php7.0 php7.0-cli php7.0-mysql php7.0-xml php7.0-curl

Centos:

# yum install php-cli php-mysql php-xml php-curl

Adicionalmente, podéis crear un VirtualHost o Server (según si usáis Apache o Nginx) para poder acceder vía subdominio y así lo preferís. Recuerda que es importante proteger el directorio donde vais a instalar Monit Graph ya que no dispone de un panel de login. Nosotros, al ser un tutorial vamos a trabajar con la ruta por defecto del Apache que es /var/www/html y vamos a añadir la web allí. Si tenéis alguna duda al respecto siempre podéis poneros en contacto con Soporte de Clouding para que os ayudemos.

Descargar Monit-Graph

Para descargar Monit-Graph podemos utilizar dos métodos: O bien accedemos vía SSH y usamos wget o bien podemos copiarlo desde FTP. Nosotros utilizaremos el primer método ya que es el más cómodo para nosotros.

Una vez accedamos vía SSH, tendremos que ir a la ruta que hemos configurado en nuestro DocumentRoot o Root, en nuestro caso:

# cd /var/www/html

Nos descargamos Monit-Graph con wget:

# wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/monit-graph/monit-graph.tar.gz

Descomprimimos:

# tar zxf monit*.tar.gz

Eliminamos el tar.gz:

# rm monit*.tar.gz

Configuramos permisos de directorios y ficheros:

chown www-data.www-data -R *
chmod 755 -R *
chmod 777 data/logs
chmod 644 data/index.php
chmod 644 data/logs/index.php

Modificamos el fichero de configuración:

# nano config.php

Y lo configuramos así:

$monit_url = "46.183.XXX.XXX:2812";  // La IP:Puerto o dominio:puerto de nuestro Monit
$monit_http_username = "admin"; // Usuario con el que accedemos a Monit
$monit_http_password = "monit"; // Contraseña con el que accedemos a Monit
$monit_url_ssl = false; // Cambiamos true por false

Añadimos lo siguiente en cron para que cada minuto recoja datos de nuestro Monit:

# crontab -e
* * * * * php /var/www/html/cron.php >> /var/log/monit-graph.log

Tened en cuenta de modificar la ruta al fichero cron.php.

Una vez hacemos estos cambios, reiniciamos el servidor Apache/Nginx y accedemos a nuestro Monit Graph:

Monit-Graph no muestra gráficos

En el caso de que no funcione correctamente y no muestre los gráficos, una manera sencilla para depurar errores de nuestra configuración es ejecutar el fichero cron.php desde nuestro terminal, de la siguiente manera:

# php cron.php

Al momento de ejecutarse nos mostrará errores y podremos solventarlos fácilmente. Por ejemplo el siguiente error:

[MonitGraph] /var/www/html/monit-graph.class.php line 122: cURL Error (27): SSL: couldn't create a context: error:140A90C4:SSL routines:SSL_CTX_new:null ssl method passed

Significa que en nuestro fichero de configuración tenemos el valor $monit_url_ssl con true en vez de con false.

Otro ejemplo:

PHP Warning:  file_get_contents(/var/www/html/data/server.xml): failed to open stream: No such file or directory in /var/www/html/monit-graph.class.php on line 148

Significa que no encuentra el fichero /var/www.html/data.server.xml, eso significa que probablemente Monit Graph no se ha podido conectar con Monit y aún no ha creado automáticamente ese fichero. En este caso, toca revisar de nuevo nuestro fichero de configuración y ver si el valor $monit_url es correcto (no os olvidéis de poner los puertos del Monit)

Fuentes: DreamCenception, Code Google

Para comentar sobre este artículo, rellena el formulario. Los campos marcados con un asterisco (*) son obligatorios.