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 variar 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-curlCentos:
# yum install php-cli php-mysql php-xml php-curlAdicionalmente, 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/htmlNos descargamos Monit-Graph con wget:
# wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/monit-graph/monit-graph.tar.gzDescomprimimos:
# tar zxf monit*.tar.gzEliminamos el tar.gz:
# rm monit*.tar.gzConfiguramos 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.phpModificamos el fichero de configuración:
# nano config.phpY 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 falseAñ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.logTened 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.phpAl 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
passedSignifica 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
148Significa 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: DreamConception, Code Google