Estoy interesado en hacer una centralización de logs para facilitar el análisis de los problemas de infraestructura, monitorear y mantener un histórico de servicio.

Para entender lo básico de logstash me puse un servidor pequeño para hacer pruebas, inicialmente con los logs de apache.

Dado que no tengo $$$$ para pagar algo con soporte y todas las utilidades, usaré todas las versiones oss (Open Source Software) de estos productos:

  • Apache HTTP Server: A descargar según distribución
  • Logstash: Centraliza los logs | Descargar Logstash
  • Filebeat: Envía la información de archivos (logs) a Elastic Search | Descargar Filebeat
  • ElasticSearch: Guarda la información obtenida de los logs | Descargar ElasticSearch
  • Grok: Filtra el log de apache y lo convierte en campos con nombre, al estilo JSON | Plugin ya incluido con Elastice
  • Kibana: Visualiza y permite jugar con los datos en vez de hacer queries por CURL | Descargar Kibana

Orden de instalación y configuración

Asumiendo que ya tenemos algún sitio publicado en el apache usaremos alguno de los logs generados por default. En mi distro usaré:

Instalamos Logstash:

Configuramos logstash /etc/logstash/conf.d/logstash.conf 

Instalamos Filebeat

Configuramos filebeat /etc/filebeat/filebeat.yml 

Instalamos Elastic Search

Instalamos Kibana

Configuramos Kibana para acceder desde cualquier equipo /etc/kibana/kibana.yml

Iniciar los servicios

Finalmente cuando ingresemos en la URL de Kibana podremos agregar el filtro:

Como configuramos previamente. De esta forma en Kibana aparece cada parte del log con un nombre de campo al que se le pueden aplicar queries fácilmente: