Installations Logstash - Elasticsearch

Suivez les instructions correspondant à votre distribution :

Elasticsearch

https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html

# Les deux valeurs doivent être identiques et correspondrent au maximum à la moitié de la RAM de la machine
-Xms8g
-Xmx8g

 Pour éviter que les nœuds elasticsearch ne swappent, il faut les paramétrer pour leur indiquer de ne pas utiliser le swap :

vm.swappiness = 1


Lancez la commande suivante sur votre serveur. Elle doit vous retourner une ligne d'information (nom, @IP, ...) concernant votre serveur elasticsearch.

[agimus@agimus logstash]$ curl -XGET http://localhost:9200/_cat/nodes


Logstash

https://www.elastic.co/guide/en/logstash/current/installing-logstash.html

Nous utilisons des plugins spécifiques dans les fichiers de configurations par défaut qu'il vous faudra installer grâce aux commandes suivantes (chemin à adapter)

/opt/logstash/bin/logstash-plugin install logstash-input-LDAPSearch
/opt/logstash/bin/logstash-plugin install logstash-filter-translate
/opt/logstash/bin/logstash-plugin install logstash-filter-cidr
/opt/logstash/bin/logstash-plugin install logstash-filter-elasticsearch


Les appels à logstash se feront alors /opt/logstash/bin/logstash.

Pour tester la bonne installation de logstash et LDAPSearch, téléchargez le fichier test-logstash.conf, paramétrez la partie LDAP en début de fichier et lancez la commande suivante dans le répertoire contenant le fichier modifié :

[agimus@agimus logstash]$ /opt/logstash/bin/logstash -f test-logstash.conf

Vous devez voir apparaître la liste des personnes dont l'uid commence par "dupon". Si ce n'est pas le cas, vérifiez les ouvertures réseau entre votre serveur Agimus-NG et votre LDAP et analyser les erreurs retournées par logstash.

Paramétrage Elasticsearch important

Avant de démarrer et commencer à utiliser votre serveur elasticsearch, il est important de vérifier le paramétrage suivant dans le fichier de configuration d'elasticsearch.


Le fichier de configuration elasticsearch s'appelle elasticsearch.yml et se trouve soit dans ./config/elasticsearch.yml du répertoire des sources soit dans /etc/elasticsearch/elasticsearch.yml pour une installation par paquet.

Ajouts intéressants

Si vous avez paramétré la variable d'environnement http_proxy et que votre serveur elasticsearch se trouve sur la même machine que logstash, il faut utiliser le script suivant pour appeler logstash.

En effet, la variable no_proxy, suivant son contenu, n'est pas toujours correctement interprétée par ruby. Le script désactive donc temporairement http_proxy, le temps de l'appel à logstash.

 

Python

Python 3 est utilisé pour faire une synthèse quotidienne de la répartition dans le LDAP par type de population.

Pour cela le script (donné ci-dessous), nécessite un plugin elasticsearch afin d'interroger le LDAP. Pour installer ce plugin lancer la commande suivante :

pip install elasticsearch

Si vous rencontrez des problèmes avec pip, vous pouvez télécharger la version que vous souhaitez et installer directement :

#Récupération du paquet du module
wget https://pypi.python.org/packages/source/e/elasticsearch/elasticsearch-7.8.1.tar.gz
#Récupération de sa dépendance
wget https://pypi.python.org/packages/source/u/urllib3/urllib3-1.22.tar.gz

# On décompresse les fichiers
tar -zxf urllib3-1.22.tar.gz
tar -zxf elasticsearch-7.8.1.tar.gz

#On installe d'abord la dépendance
cd urllib3-1.22
python setup.py install
#Puis le module elasticsearch
cd ../elasticsearch-7.8.1
python setup.py install


 Pour tester la bonne installation du module elasticsearch pour python, télécharger le script de test test-elasticsearch.py et exécutez le sur votre serveur. Vérifiez qu'il n'y a pas d'erreur en sortie.

[agimus@agimus scripts]$ cp config-sample.py config.py
# Paramétrer les informations spécifiques à votre installation
[agimus@agimus scripts]$ vim config.py   
[agimus@agimus scripts]$ python test-elasticsearch.py
L'index test-index est cree
Il y a 1 document(s) dans l'index test-index :
Créé le 2020-08-03T12:03:55.976158 par testeur : Elasticsearch fonctionne dans python
L'index de test "test-index" est supprimé.

Le test s'est déroulé correctement. Le plugin elasticsearch pour python est installé correctement

[agimus@agimus scripts]$