Installation du plugin logstash-input-jdbc

L’installation du plugin logstash-input-jdbc permet d’indexer des tables de base de données avec l’aide de logstash. Il faut préalablement avoir installer la stack elastic, le tuto se trouve sur mon blog.

Le serveur utilisé est un Ubuntu 16.04 64bits LTS.

Il faut se rendre dans ce répertoire

cd /usr/share/logstash/bin/
Et taper la commande ci-dessous
./logstash-plugin install logstash-input-jdbc
Une fois le plugin installé vous pourrez ensuite suivre les procédures pour la configuration de la connexion avec les différentes base de données
Mysql
Mssql Server
Oracle

Configuration de logstash et mssql server

Pour pouvoir récupérer les données d’une base de données mssql server via logstash, il faut avoir installer le plugin logstash-input-jdbc (voir le tuto). Puis récupérer le connecteur java et le copier.

Installation du connecteur

L’opération n’est à faire qu’une seule fois.

Tout d’abord, il faut créer le dossier qui accueillera le connecteur

 mkdir -p /usr/share/logstash/vendor/jdbc-mssql

Ensuite, il faut télécharger le connecteur via le site ci-dessous et copier le fichier  mssql-jdbc-6.2.1.jre8.jar (le nom du fichier peut changer selon la version téléchargée) dans le dossier créé ci-dessus.

https://docs.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server

Une fois le fichier dans son répertoire, il faut ensuite modifier les droits

 chown logstash:logstash /usr/share/logstash/vendor/jdbc-mssql -Rvf

A partir de ce moment vous pouvez créer un fichier de configuration pour connecter une table mssql server à logstash.

Création d’un fichier de configuration

 nano /etc/logstash/conf.d/config_mssql_nomdematable.config

Et y mettre le contenu ci-dessous

input {
  jdbc {
    jdbc_driver_library => "/usr/share/logstash/vendor/jdbc-mssql/mssql-jdbc-6.2.1.jre8.jar"
    jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
    jdbc_connection_string => "jdbc:sqlserver://ipduserver:1433;databasename=nomdelabase"
    jdbc_user => "utilisateurquipeutseconnecter"
    jdbc_password => "motdepasse"     
    statement => "SELECT * FROM nomdelatable"
  }
}
output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "nomdelatable"
    document_type => "nomdelatable"
    document_id => "%{id}"
  }
}
Il faut penser à modifier les informations de connexion à la base de données.
Le champ document_id => « %{id} » est à adapter en fonction de votre table dans mon cas la clef primaire est id.
Une fois le fichier créé, il faut ensuite exécuter la commande ci-dessous pour lancer l’indexation.
cd /usr/share/logstash/bin
./logstash -f /etc/logstash/conf.d/config_mssql_nomdelatable.config
Une fois les commandes lancées, selon la taille de la table, il faudra peut être attendre un peu.

Configuration de logstash et oracle

Pour pouvoir récupérer les données d’une base de données oracle via logstash, il faut avoir installer le plugin logstash-input-jdbc (voir le tuto). Puis récupérer le connecteur java et le copier.

Installation du connecteur

L’opération n’est à faire qu’une seule fois.

Tout d’abord, il faut créer le dossier qui accueillera le connecteur

 mkdir -p /usr/share/logstash/vendor/jdbc-oracle

Ensuite, il faut télécharger le connecteur via le site ci-dessous et copier le fichier  ojdbc8.jar (le nom du fichier peut changer selon la version téléchargée, il faut utiliser le connecteur pour java8) dans le dossier créé ci-dessus.

http://www.oracle.com/technetwork/database/features/jdbc/jdbc-ucp-122-3110062.html

Une fois le fichier dans son répertoire, il faut ensuite modifier les droits

/usr/share/logstash/vendor/jdbc-oracle
chown logstash:logstash /usr/share/logstash/vendor/jdbc-oracle -Rvf

A partir de ce moment vous pouvez créer un fichier de configuration pour connecter une table oracle à logstash.

Création d’un fichier de configuration

nano /etc/logstash/conf.d/config_oracle_nomdematable.config

Et y mettre le contenu ci-dessous

input {
  jdbc {
    jdbc_driver_library => "/usr/share/logstash/vendor/jdbc-oracle/ojdbc8.jar"
    jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
    jdbc_connection_string => "jdbc:oracle:thin:@ipduserveur:port/nomdelabase"
    jdbc_user => "utilisateurquipeutseconnecter"
    jdbc_password => "motdepasse"
    statement => "SELECT * FROM nomdelatable"
  }
}
output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "nomdelatable"
    document_type => "nomdelatable"
    document_id => "%{id}"
  }
}
Il faut penser à modifier les informations de connexion à la base de données.
Le champ document_id => « %{id} » est à adapter en fonction de votre table dans mon cas la clef primaire est id.
Une fois le fichier créé, il faut ensuite exécuter la commande ci-dessous pour lancer l’indexation.
cd /usr/share/logstash/bin
./logstash -f /etc/logstash/conf.d/config_oracle_nomdelatable.config
Une fois les commandes lancées, selon la taille de la table, il faudra peut être attendre un peu.

Configuration de logstash et mysql

Pour pouvoir récupérer les données d’une base de données mysql via logstash, il faut avoir installer le plugin logstash-input-jdbc (voir le tuto). Puis récupérer le connecteur java et le copier.

Installation du connecteur

L’opération n’est à faire qu’une seule fois.

Tout d’abord, il faut créer le dossier qui accueillera le connecteur

  mkdir /usr/share/logstash/vendor/jdbc-mysql -p

Ensuite, il faut télécharger le connecteur via le site ci-dessous et copier le fichier mysql-connector-java-5.1.44-bin.jar  (le nom du fichier peut changer selon la version téléchargée) dans le dossier créé ci-dessus.

https://dev.mysql.com/downloads/connector/j/

Une fois le fichier dans son répertoire, il faut ensuite modifier les droits

 chown logstash:logstash /usr/share/logstash/vendor/jdbc-mysql -Rvf

A partir de ce moment vous pouvez créer un fichier de configuration pour connecter une table mysql à logstash.

Création d’un fichier de configuration

 nano /etc/logstash/conf.d/config_mysql_nomdematable.config

Et y mettre le contenu ci-dessous

input {
  jdbc {
    jdbc_driver_library => "/usr/share/logstash/vendor/jdbc-mysql/mysql-connector-java-5.1.44-bin.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://ipserveur:3306/nomdelabase"
    jdbc_user => "utilisateurquipeutseconnecter"
    jdbc_password => "motdepasse"
    statement => "SELECT * FROM nomdelatable"
  }
}
output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "nomdelatable"
    document_type => "nomdelatable"
    document_id => "%{id}"
  }
}
Il faut penser à modifier les informations de connexion à la base de données.
Le champ document_id => « %{id} » est à adapter en fonction de votre table dans mon cas la clef primaire est id.
Une fois le fichier créé, il faut ensuite exécuter la commande ci-dessous pour lancer l’indexation.
cd /usr/share/logstash/bin
./logstash -f /etc/logstash/conf.d/config_mysql_nomdelatable.config
Une fois les commandes lancées, selon la taille de la table, il faudra peut être attendre un peu.