Enviando logs de Nagios a dos entornos Elastic

La situación inicial

En algunas ocasiones podemos querer enviar los datos obtenidos en un log a dos instancias de Elastic. Este escenario lo podemos encontrar (como ejemplos):

  • Entorno de prueba y producción. Es una situación muy "nomal". En este caso tenemos dos instalaciones de Elastic, una de producción y otra donde hacemos nuestras pruebas o desarrollos de preproducción. En cualquier caso, queremos tener la información real de producción en los dos entornos.
  • Entornos con diferentes tratos de datos. Esta circunstancia puede por darse en caso de que tengamos varios entornos de producción, y en cada uno de ellos tratemos temas diferentes y nos interese tener el dato por duplicado.

Hay muchas, muchas, situaciones en que nos interese enviar un dato a dos (o más) sitios.

Las soluciones

Con la suite de Elastic se nos plantean dos posibles soluciones a estas circunstancias:

  • Enviamos los datos vía Filebeat a un Logstash que luego envía los datos a dos Elasticsearch.
  • Tenemos dos instancias Filebeat, enviando cada una a su Logstash, que posteriormente almacena en el Elasticsearch determinado.

Ambas soluciones son perfectamente válidas y solo la arquitectura de los dos entornos Elastic nos permitirá elegir la más adecuada.

De un Logstash a dos Elasticsearch

Esta es la solución técnica más sencilla, pues simplemente en el "output" de configuración del Logstash indicaremos los dos (o más) destinos. Cabe destacar que esta opción es recomendada por parte de Elastic.

Dos instancias Fileebat

Esta situación es un poco más compleja, pues deberemos crear dos instancias (servicios) Filebeat en el equipo de origen de los datos. Filebeat no es capaz de mandar simultáneamente los datos a dos Logstash diferentes. Esta es una función que en versiones anteriores estaba incluida, pero se quitó, ya que daba algunos problemas (con el gestor del proceso "filebeat-god") y no era muy usada (en la versión 6 no existe). Así que manos a la obra, vamos a configurar nuestras instancias Filebeat (lo haremos en un CentOS 6, aunque el proceso en un CentOS 7 es el mismo):

    • 1. Instalamos el "primer" Filebeat.
      • Configuramos el repositorio de Elastic.
      • Realizamos la instalación de Filebeat: # yum install filebeat
      • Configuramos Filebeat: # vi /etc/filebeat/filebeat.yml (seleccionamos ficheros, opciones y ponemos de destino nuestro primer Logstash).
      • Iniciar el servicio: # service filebeat start
      • Lo podemos poner para que inicie al arrancar el equipo: # chkconfig filebeat on
    • 2. Añadimos una "segunda" instancia de Filebeat.
      • Copiamos el fichero de servicio y de configuración:
        • # cp /etc/filebeat/filebeat.yml /etc/filebeat/filebeat2.yml
        • # cp /etc/init.d/filebeat /etc/init.d/filebeat2
      • Configuramos Filebeat2: # vi /etc/filebeat/filebeat2.yml (seleccionamos ficheros, opciones y ponemos de destino nuestro segundo Logstash).
      • Configuramos el segundo servicio Filebeat:
        • # vi /etc/init.d/filebeat
        • Solo tenemos que comentar una línea, copiarla y realizar los cambios de ficheros y directorios:
        • # args="-c /etc/filebeat/filebeat.yml -path.home /usr/share/filebeat -path.config /etc/filebeat -path.data /var/lib/filebeat -path.logs /var/log/filebeat"
        • args="-c /etc/filebeat/filebeat2.yml -path.home /usr/share/filebeat -path.config /etc/filebeat -path.data /var/lib/filebeat2 -path.logs /var/log/filebeat2"
        • Solo cambiamos el patch de datos y de logs, y apuntamos al nuevo fichero de configuración.
      • Iniciar el servicio: # service filebeat2 start
      • Lo podemos poner para que inicie al arrancar el equipo: # chkconfig filebeat2 on

Solo nos falta validar que la información se manda correctamente a los dos Logstash indicados.

Añadir Comentario

* Información necesaria
1000
Captcha Imagen
Powered by Commentics

Comentarios (0)

No hay comentarios todavía. Sé el primero!
Ver más noticias