Instalando Logstash
En este post continuaremos con el despliegue de la solución, hoy veremos cómo dejar correctamente instalado Logstash; será la herramienta recoja LOGs y los trate antes de almacenarlos en Elasticsearch.
Logstash se encarga de recoger, parsear y filtrar los logs para posteriormente darles alguna salida y almacenarlos en alguna BD. Trabajamos con diferentes Inputs o Tipos de Entrada, donde podremos indicar qué vamos a recolectar, cualquier tipo de log, de sistema, de aplicaciones específicas, luego podremos Filtrar por tipo de log, si con errores únicamente… los trataremos en base a nuestra necesidad para finalmente mediante Outputs o Tipos de Salida almacenarlos, en nuestro caso en Elasticsearch. Por tanto tendremos 3 secciones en la configuración a tener en cuenta:
[sourcecode]input { ... }[/sourcecode]
De donde viene la información? Podremos usar ficheros de texto, logs de aplicaciones o servicios, así como de cualquier aplicación Beat que usemos.
[sourcecode]filter { ... }[/sourcecode]
Describe qué hará con cada entrada de datos, si parsearla o modificarla o ignorar ciertos datos por ejemplo.
[sourcecode]output { ... }[/sourcecode]
Indica donde redirigirá los datos filtrados, en nuestro caso siempre usaremos lo mismo, Elasticsearch
Veremos en una serie de documentos de ejemplo de como usar Logstash para parsear logs de servidores linux como un Apache, eventos del Visor de Sucesos de los Windows, logs de firewalls Fortigate… y cómo con los filtros leeremos logs en ficheros de texto plano y podremos convertir datos tan interesantes como son las direcciones IP en datos de geolocalización, para obtener su posición exacta y visualizar los datos en mapas. Todo ello sin olvidar podemos tener visualización en tiempo real o consultar entre periodos de fechas.
Instalar Logstash,
Al igual que cualquier herramienta del Stack necesitará Java Virtual Machine, así que instalamos OpenJDK y verificamos que tenemos la instalación OK. Por cierto, si lo estamos instalando en la misma máquina que Elasticsearch ya tendremos este requisito cumplido:
[sourcecode]apt-get install openjdk-8-jre-headless java -version[/sourcecode]
Para instalar, primero nos descargamos e añadimos la clave pública de Elastic, y añadimos el repositorio, actualizamos la lista de paquetes y procedemos a instalar Logstash:
[sourcecode]wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-6.x.list apt-get update apt-get install logstash[/sourcecode]
Para verificar que la instalación ha sido correcta, antes de iniciar el servicio podremos ejecutar el binario y mandarle información de ejemplo para verificar la instalación además que el acceso a Elasticsearch es correcto. Con esta config básica lo validaremos:
[sourcecode]cd /usr/share/logstash bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["Direccion_IP_Elasticsearch:9200"] } }'[/sourcecode]
Saldrán unos mensajes y a continuación podremos poner un texto de ejemplo y darle al [Enter], ej:
[sourcecode]Hola! esto es una prueba![/sourcecode]
Descargamos Postman (herramienta de diagnóstico HTTP) desde nuestro equipo, y hacemos un GET para obtener todos los documentos que encuentre en el índice:
[sourcecode]http://Dirección_IP_Elasticsearch:9200/logstash-*/_search[/sourcecode]
Pulsamos SEND y vemos el resultado! Hay conexión entre ellos! 🙂
[sourcecode]Ctr+C[/sourcecode]
Ya podremos levantar el servicio de Logstash y habilitarlo para que se inicie de manera automática con la máquina!
[sourcecode]systemctl enable logstash service logstash start[/sourcecode]
Creando el índice en Kibana y visualizando los datos,
En el siguiente post veremos la instalación de Kibana, una vez lo tengamos instalado, podremos crear el patrón de los índices de Logstash y visualizar los datos.
En Kibana, desde “Management” > “Index Patterns” > “Create index pattern”, en el patrón especificamos ‘logstash-*’, y continuamos con el asistente.
Seleccionamos el campo @timestamp como para el filtro con tiempos, “Create index pattern”,
Ya tenemos creado el patrón del índice, podremos ver sus campos y su tipo 🙂
Ahora, no queda más que ir a “Discover”, seleccionar nuestro índice y jugando ya con las fechas podremos visualizar toda la información que tenemos almacenada! Si todo ha ido bien tendremos un sólo registro con el ejemplo que hicimos antes!!