Configurar Logstash para que obtenga datos de una base de datos SQL
En caso de que necesitemos que nuestro logstash obtenga datos de una base de datos lo podemos hacer utilizando el plugin logstash-input-jdbc
para establecer la conexión y ejecutar las consultas directamente desde nuestro logstash
El plugin logstash-input-jdbc
Este plugin nos permite configurar como input
de logstash cualquier fuente a la que se puede acceder con Java JDBC
En este tutorial configuraremos logstash para que acceda a una base de datos MySQL/MariaDB, luego ejecute una consulta SQL, una vez que reciba los datos los mismos pueden ser tratados con cualquier filtro que tengamos definido en nuestro logstash
Este turorial esta basado en:
S.O. : CentOS 7.2
Logstash : 5.0
Obtener el driver JDBC
Lo primero que tenemos que hacer es obtener el driver JDBC a utilizar, en este caso lo podemos descargar de https://dev.mysql.com/downloads/connector/j/, una vez que descarguemos el .zip debemos copiar el .jar que se encuentra dentro del mismo a nuestro servidor logstash a la ruta /etc/logstash/jdbc/mysql-connector-java.jar
Con esto tendremos listo nuestro driver JDBC, ahora podemos comenzar a configurar el logstash
Instalar y configurar el plugin logstash-input-jdbc
Para instalar el plugin debemos ejecutar el siguiente comando:
Una vez instalado el plugin debemos configurar el input de logstash, para esto creamos el archivo /etc/logstash/conf.d/01-mysql-jdbc.conf
Una vez que guardamos en caso de que tengamos configurado nuestro logstash con autoreload veríamos en unos minutos que se ejecuta la consulta en el log /var/log/logstash/logstash-plain.log
Caso contrario debemos reiniciar el servicio logstash para que tome los cambios
Con esto tenemos una fuente JDBC como input de logstash, tal como dije al inicio, para logstash es como cualquier otro input por lo tanto podemos agregar filtros como si fuese un log normal
Para más informacion:
https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html