Suivez les instructions de la page correspondant à votre distribution :
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.
Modifier le paramètre cluster.name : par défaut il utilise elasticsearch. Si vous lancez un autre serveur elasticsearch non paramétré sur le même réseau, il va commencer à recopier toutes les données car ils considéreront qu'ils font partie du même cluster.
# Nom du cluster utilisé pour Agimus. Toutes les machines utilisées (si vous utilisez le mécanisme de distribution) doivent avoir le même. cluster.name: Agimus |
Modifier le paramètre node.name : permet de savoir plus précisément quelle machine pose problème le cas échéant. Le nœud est un serveur elasticsearch.
# Nom du noeud (une des machines du cluster). Permet de différencier chaque machine du cluster. node.name: "Agimus1" |
Ajouter le paramètre indices.fielddata.cache.size : 40% .
Ceci permet de limiter l'espace de heap alloué à fielddata et d'éviter que les requêtes ne soient bloquées par un circuit breaker (cf http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/_limiting_memory_usage.html)
indices.fielddata.cache.size: 40% |
Avant de commencer l'indexation, ajoutez ces templates qui limiteront le nombre de processus lucene utilisés, le nombre de valeurs enregistrées et paramétreront les méthodes d'analyse utilisées pour les données enregistrées.
$ curl -XPUT "http://localhost:9200/_template/logs_agimus" -d ' { "template": "logstash-*", "order": 1, "settings": { "number_of_shards": 1, "number_of_replicas": 0 }, "mappings": { "_default_": { "dynamic_templates": [ { "string_fields": { "mapping": { "index": "not_analyzed", "fielddata": { "format": "doc_values" }, "type": "string" }, "match": "*", "match_mapping_type": "string" } } ], "_all": { "enabled": false } } }, "aliases": { } }' |
$ curl -XPUT "http://localhost:9200/_template/ldap" -d ' { "template": "ldap", "order": 1, "settings": { "number_of_shards": 1, "number_of_replicas": 0 }, "mappings": { "_default_": { "dynamic_templates": [ { "string_fields": { "mapping": { "index": "not_analyzed", "type": "string" }, "match": "*", "match_mapping_type": "string" } } ], "_all": { "enabled": false } } }, "aliases": {} } }' |
curl -XPUT "http://localhost:9200/_template/ldap-stat" -d' { "order": 1, "template": "ldap-stat*", "mappings": { "ldap-stat": { "properties": { "attribut": { "type": "string", "index": "not_analyzed", "fields": {} }, "value": { "type": "string", "index": "not_analyzed", "fields": {} } }, "_all": { "enabled": false } } } }' |
Pour vous assurer que les commandes ont été prises en compte, vérifier que vous avez les entrées "logs_agimus" et "ldap" en lançant la commande suivante :
|
Il est possible d'installer le plugin kopf pour elasticsearch qui vous permettra de requêter et administrer votre serveur elasticsearch. Pour cela, taper dans votre répertoire elasticsearch :
bin/plugin -install lmenezes/elasticsearch-kopf OU bin/plugin -DproxyHost=host_name -DproxyPort=port_number -install lmenezes/elasticsearch-kopf |
Pour l'utiliser, il suffit alors d'accéder à l'adresse http://agimus.univ.fr:9200/_plugin/kopf
décompresser et lancer la commande suivante dans le dossier
./bin/kibana plugin --install elastic/sense |
Si votre version d'elasticsearch est inférieure à 2, vous devez désactiver les fonctionnalités principales de kibana
kibana.enabled: false # disable the standard kibana discovery, visualize & dashboard plugins elasticsearch.enabled: false # do not require a running Elasticsearch 2.0 instance |
Il existe d'autres plugins intéressants :
ElasticsearchHQ,
Bigdesk, ...
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 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 et installer directement :
#Récupération du paquet du module wget https://pypi.python.org/packages/source/e/elasticsearch/elasticsearch-1.4.0.tar.gz #Récupération de sa dépendance wget https://pypi.python.org/packages/source/u/urllib3/urllib3-1.9.tar.gz # On décompresse les fichiers tar -zxf urllib3-1.9.tar.gz tar -zxf elasticsearch-1.4.0.tar.gz #On installe d'abord la dépendance cd urllib3-1.9 python setup.py install #Puis le module elasticsearch cd ../elasticsearch-1.4.0 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.
|