Différences entre les versions de « Elk »

De InfoXelec
Aller à la navigation Aller à la recherche
(Page créée avec « =Présentation= ElasticSearch utilise des requêtes HTTP. Ces requêtes seront envoyées au serveur via l'outil <b>CURL</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. On parle d'<b>index</b> pour identifier un ensemble de données. L'équivalent en relationnel MySQ... »)
 
 
(2 versions intermédiaires par le même utilisateur non affichées)
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>
<b>Attention car en Powershell, curl est un alias de Invoke-WebRequest. Il faut donc utiliser c:\windows\system32\curl.exe</b></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>
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.


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


Ligne 30 : Ligne 31 :
         "ville":{"type":"string"}
         "ville":{"type":"string"}
   }}}}</pre>
   }}}}</pre>
|-
|Lister les Documents d'un index||<code>curl -X GET "http://@IP:9200/index_name/_search</code>
|-
|-
|Pour supprimer un index||<code>curl -X DELETE "http://@IP:9200/index_name"</code>
|Pour supprimer un index||<code>curl -X DELETE "http://@IP:9200/index_name"</code>
Ligne 48 : Ligne 51 :
|}
|}


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


=Sauvegarde et restauration=
=Sauvegarde et restauration=
La sauvegarde et restauration de bases ElasticSearch se fait avec l'application elasticdump.</br>
La sauvegarde et restauration de bases ElasticSearch se fait avec l'application elasticdump.<br>
Il y a deux éléments à sauvegarder le mapping et les données.</br>
Il y a deux éléments à sauvegarder le mapping et les données.<br>
<pre>elasticdump --input=http://@IP:9200/index_name --output=/dossier/index_name_mapping.json --mapping
<pre>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</pre>
elasticdump --input=http://@IP:9200/index_name --output=/dossier/index_name_mapping.json --data</pre>

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/