Instalar y configurar Log.io

Publicado en: Tecnología

De hace años tengo la necesidad en mi trabajo de poder controlar los logs de varias máquinas, cada una con unos servicios diferentes, versiones de sistema distinto, etc Y cada vez lo mismo, me tenía que conectar vía SSH a cada host para leer los logs, o si eran realmente grandes, copiarlos a mi equipo y abrirlos con la propia Console.app o con un editor de textos como BBEdit.

Pues hoy, de casualidad, sin buscarlo, ha surgido el tema en MadridDevOps, un grupo de google bastante activo con muchos profesionales que saben lo que se hacen, y donde cualquiera puede preguntar y ser respondido. Pues eso, ha salido de casualidad el tema de métricas, y Log.io, que permite leer logs remotos desde tu equipo. Tachán! lo tanto buscado y nunca encontrado.

Interfaz web de Log.io

Log.io está basado en Node.js, con sus ventajas e inconvenientes, pero que queréis que os diga, por ahora son todo ventajas. Y una vez istalado, todo es accesible vía web. Inconvenientes: que solo sirve para Mac’s Intel, con sistema operativo 10.6 o superior.

  1. Instalar Node.js
  2. Instalar Log.io
  3. Configurar el Log.io Server
  4. Configurar los Log.io clientes o harvester

1. Instalar Node.js

Descargar el instalador, el binario, el compilable… que nos convenga para nuestro equipo. En mi caso, lo más cómodo es el pkg para Mac OS X Universal. En Mac todo se instala en /usr/local/bin. Asegúrate de tener /usr/local/bin en el PATH de sistema.

  • /usr/local/bin/node
  • /usr/local/bin/npm

2. Instalar Log.io

Para no tener problemas de permisos, la instalación la hago como root, pero podrías pasarle el parámetro de –user = ‘tu_usuario’ al ejecutar la instalación con sudo.

Instalar Log.io vía paquetes npm (esto es el Node.js instalado antes):

$ npm install -g log.io

Arrancar el servicio de log.io server

$ log.io-server

3. Configurar el Log.io Server

Por defecto, el fichero de configuración tiene el servicio Apache configurado para leer tus logs, si quieres ver como funciona sin más, arranque el servidor web si no lo tienes arrancado antes de seguir, ejecutando en Terminal:

$ apachectl graceful

Configurar el fichero harvester.conf, lo editamos con un editor de textos, como vi, y modificamos la IP del host que recibe las peticiones y las gestiona, el Server, en este ejemplo le pongo 192.168.1.10.

$ vi /var/root/.log.io/harvester.conf
exports.config = {
  nodeName: "application_server",
    logStreams: {
    apache: [
    "/var/log/apache2/access_log",
    "/var/log/apache2/error_log"
    ]
    },
  server: {
    host: '192.168.1.10',
    port: 28777
  }
}

Arrancar el log harvester, para que recoja los logs de nuestro propio equipo.

$ log.io-harvester

Para ver los resultados ya podemos ir a la web http://192.168.1.10:28778/

En el servidor no es necesario correr log.io-harvester, si no vamos a recoger los logs propios de ese equipo.

4. Configurar los Log.io clientes o harvester

La forma de trabajo de Log.io son peticiones TCP, en el equipo cliente debe correr el servicio harvester, que cada vez que reciba un cambio lo enviará vía TCP al servicio log.io del Server. De esta forma, configurando el fichero harvester.conf con la lista de logs a ‘vigilar’ y el host a donde debe enviar los eventos tendremos nuestro sistema de monitorización a nivel de logs montado.

Para todo esto, instalamos en los equipos clientes Node.js y Log.io con npm.

Configuramos el fichero harvester.conf, por ejemplo, para vigilar un entorno de desarrollo con MAMP, pero podemos añadir tantos como querramos:

$ vi /var/root/.log.io/harvester.conf
exports.config = {
  nodeName: "application_server",
    logStreams: {
    apache: [
    "/Applications/MAMP/logs/apache_error_log",
    "/Applications/MAMP/logs/mysql_error_log.err",
    "/Applications/MAMP/logs/php_error.log"
    ]
    },
  server: {
    host: '192.168.1.10',
    port: 28777
  }
}

Guardamos el fichero, y arrancamos log.io-harvester:

$ log.io-harvester

Y listo, desde nuestro propio equipo, o donde tengamos el Server, podremos abrir la web de Log.io http://192.168.1.10:28778/ y disfrutar vigilando los logs de sistema remotos.

SaludoX