Différences entre les versions de « Elk »

De InfoXelec
Aller à la navigation Aller à la recherche
 
Ligne 1 : Ligne 1 :
=Présentation=
=Présentation=
ElasticSearch utilise des requêtes HTTP. Ces requêtes seront envoyées au serveur via l'outil <b>CURL</b><br>
ElasticSearch utilise des requêtes HTTP. Ces requêtes seront envoyées au serveur via l'outil <b>CURL</b><br>
Un concurrent de ElasticSearch est OpenSearch de Amazon.<br>
Les concurrents de ElasticSearch sont OpenSearch de Amazon et Cassandra de Oracle.<br>
<b>Attention car en Powershell, curl est un alias de Invoke-WebRequest. Il faut donc utiliser c:\windows\system32\curl.exe</b><br>
<b>Attention car en Powershell, curl est un alias de Invoke-WebRequest. Il faut donc utiliser c:\windows\system32\curl.exe</b><br>
ElasticSearch fonctionne avec 2 ports. Le 9200 pour les requêtes externes et le 9300 pour la mise en cluster.
ElasticSearch fonctionne avec 2 ports. Le 9200 pour les requêtes externes et le 9300 pour la mise en cluster.

Version actuelle datée du 2 juin 2023 à 09:36

Présentation

ElasticSearch utilise des requêtes HTTP. Ces requêtes seront envoyées au serveur via l'outil CURL
Les concurrents de ElasticSearch sont OpenSearch de Amazon et Cassandra de Oracle.
Attention car en Powershell, curl est un alias de Invoke-WebRequest. Il faut donc utiliser c:\windows\system32\curl.exe
ElasticSearch fonctionne avec 2 ports. Le 9200 pour les requêtes externes et le 9300 pour la mise en cluster.

On parle d'index pour identifier un ensemble de données. L'équivalent en relationnel MySQL serait une Database.
Un type est un regroupement de documents. Sa structure n'est pas fixe mais évolutive.
Le mapping permet de définir les propriétés du type.
Un document est l'équivalent d'un ligne en SQL. C'est un objet du type.

Commandes utiles

Pour avoir une meilleure vision, on peut ajouter le paramètre ?pretty en fin de commande

Commande Description
Pour savoir si le serveur fonctionne. curl -X GET "http://@IP:9200"
Pour avoir l'état du cluster curl -X GET "http://@IP:9200/_cluster/health?pretty"
Lister les index d'un serveur curl -X GET "http://@IP:9200/_cat/indices"
Récupérer le mapping d'un index curl -X GET "http://@IP:9200/index_name/_mapping?pretty"
Création d'un index
curl -X PUT 'http://@IP:9200/index_name' -d '
  {"mappings":{
    "utilisateurs":{
      "properties:{
        "nom":{"type":"string"},
        "prenom":{"type":"string"},
        "ville":{"type":"string"}
  }}}}
Lister les Documents d'un index curl -X GET "http://@IP:9200/index_name/_search
Pour supprimer un index curl -X DELETE "http://@IP:9200/index_name"
Pour insérer des données
curl -X POST 'http://@IP:9200/_bulk' -d '
  {"create":{"_index":"index_name","type":"utilisateurs","_id":1}}
  {"nom":"nom1","prenom":"prenom1","ville":"ville1"}
  {"create":{"_index":"index_name","type":"utilisateurs","_id":2}}
  {"nom":"nom2","prenom":"prenom2","ville":"ville2"}'
Pour consulter un document curl -X GET "http://@IP:9200/index_name/utilisateurs/1"
Pour faire une recherche simple de tous les éléments curl -X GET "http://@IP:9200/index_name/utilisateurs/_search"
Pour faire une recherche simple curl -X GET "http://@IP:9200/index_name/utilisateurs/_search?q=valeur"
Pour faire une recherche sur un champ en particulier curl -X GET "http://@IP:9200/index_name/utilisateurs/_search?q=nom:valeur"

L'application ElasticHQ est une interface graphique permettant de gérer plus facilement un cluster ElasticSearch.
Cette application est développée en Python 3.6 mais n'est plus soutenue car la licence ElasticSearch a changée. L'application est encore disponible en version GitHub (https://github.com/ElasticHQ/elasticsearch-HQ) ou Docker.

Sauvegarde et restauration

La sauvegarde et restauration de bases ElasticSearch se fait avec l'application elasticdump.
Il y a deux éléments à sauvegarder le mapping et les données.

elasticdump --input=http://@IP:9200/index_name --output=/dossier/index_name_mapping.json --mapping
elasticdump --input=http://@IP:9200/index_name --output=/dossier/index_name_mapping.json --data

Bibliographie

Chaine Youtube de XAVKI et son GitLab https://gitlab.com/xavki/presentations-elastic/-/blob/master/