### Installer Elasticsearch

<<<<<<< HEAD
# Installation Elasticsearch & Kibana 

## Installer et lancer Elasticsearch
``` bash
# Creer un network 
docker network create elastic 
# Télécharger l'image Elastic
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.4.3
# Lancer l'image 
docker run --name es-node01 --net elastic -p 9200:9200 -p 9300:9300 -t docker.elastic.co/elasticsearch/elasticsearch:8.4.3
```
**Note** : Durant le lancement dans le terminal ou dans Docker desktop vont apparaitre des informations suivantes :

```
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-> Elasticsearch security features have been automatically configured!
-> Authentication is enabled and cluster connections are encrypted.

->  Password for the elastic user (reset with `bin/elasticsearch-reset-password -u elastic`):
  IvI2WWQ89b2jXfeFvDHN

->  HTTP CA certificate SHA-256 fingerprint:
  ae12d482d7f1e668c091d17d81e94b13f1d6ab45bb6afafd0c9de6a66fadbe57

->  Configure Kibana to use this cluster:
* Run Kibana and click the configuration link in the terminal when Kibana starts.
* Copy the following enrollment token and paste it into Kibana in your browser (valid for the next 30 minutes):
  eyJ2ZXIiOiI4LjQuMyIsImFkciI6WyIxNzIuMTkuMC4yOjkyMDAiXSwiZmdyIjoiYWUxMmQ0ODJkN2YxZTY2OGMwOTFkMTdkODFlOTRiMTNmMWQ2YWI0NWJiNmFmYWZkMGM5ZGU2YTY2ZmFkYmU1NyIsImtleSI6IlQwbG81SU1CNm9sMWo5bnN0YklrOjJsdXBWM0hPUU1pWmN4cl9JNGZ1elEifQ==

-> Configure other nodes to join this cluster:
* Copy the following enrollment token and start new Elasticsearch nodes with `bin/elasticsearch --enrollment-token <token>` (valid for the next 30 minutes):
  eyJ2ZXIiOiI4LjQuMyIsImFkciI6WyIxNzIuMTkuMC4yOjkyMDAiXSwiZmdyIjoiYWUxMmQ0ODJkN2YxZTY2OGMwOTFkMTdkODFlOTRiMTNmMWQ2YWI0NWJiNmFmYWZkMGM5ZGU2YTY2ZmFkYmU1NyIsImtleSI6IlVVbG81SU1CNm9sMWo5bnN0YkkzOktFbkRKYlVOVDhTMXQyMklSZDlEMncifQ==

  If you're running in Docker, copy the enrollment token and run:
  `docker run -e "ENROLLMENT_TOKEN=<token>" docker.elastic.co/elasticsearch/elasticsearch:8.4.3`
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
```
### ATTENTION **Converser ses informations**
* Mot de passe pour votre user "elasticsearch"
* Enrollment token pour Kibana

``` bash
# Copier le certificat
docker cp es-node01:/usr/share/elasticsearch/config/certs/http_ca.crt .
# Lancer la commande 
curl --cacert http_ca.crt -u elastic https://localhost:9200
```
Cela va vous demander votre mot de passe, ce cera le mot de passe que vous avez sauvegardé précédemment 

Réponse attendu :
![attendu1](/images/reponseattenduinstallation.PNG)

``` bash
### Installer Kibana
docker pull docker.elastic.co/kibana/kibana:8.4.2  
docker run --name kib-01 --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.4.2
```
Pour accéder au Kibana, vous devez utiliser le login "elasticsearch" et le mot de passe

## Partie 1 : Elastic Search dans Kibana et REST API

Aller dans Kibana, choisir Dev Tools>Console

#### Q1. Ajouter le nom d'une personne qui s'appelle Brayan dans l'index customer 1
=======
> docker network create elastic  
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.4.2  
docker run --name es01 --net elastic -p 9200:9200 -p 9300:9300 -it docker.elastic.co/elasticsearch/elasticsearch:8.4.2

Tester la configuration :
 - Vérifier que l'instance est up depuis le navigateur ou via curl ou postman : http://127.0.0.1:9200. La réponse doit ressemble à cela : 

>{  
>    "name" : "elasticsearch-fd9946598-4lnrm",  
>    "cluster_name" : "docker-| ",  
>    "cluster_uuid" : "5lqmnamcTeqrRj4AFi9_8g",  
>    "version" : {  
>        "number" : "7.15.2",  
>        "build_flavor" : "default",  
>        "build_type" : "docker",  
>        "build_hash" :"93d5a7f6192e8a1a12e154a2b81bf6fa7309da0c",  
>        "build_date" : "2021-11-04T14:04:42.515624022Z",  
>        "build_snapshot" : false,  
>        "lucene_version" : "8.9.0",  
>        "minimum_wire_compatibility_version" : "6.8.0",  
>        "minimum_index_compatibility_version" : "6.0.0-beta1"  
>},  
>"tagline" : "You Know, for Search"

### Installer Kibana
> docker pull docker.elastic.co/kibana/kibana:8.4.2  
docker run --name kib-01 --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.4.2

<strong>Note<strong>:  Moyen pour intéragir avec Elastic ( Add,Update,Read,…)

* API elasticsearch (Python, Java, etc.)
* Avec les beats (metricbeat, filebeat, etc.)
* Sur l'écran Kibana en utilisant dev tools ou l’option "Upload * Data” en chargeant directement depuis un fichier

### Partie 1 : Elasticsearch
#### 1. Ajouter le nom d'une personne qui s'appelle Brayan dans l'index customer 1
>>>>>>> b29d0fad22727cd638307181d1d6fd26465b02a8
Réponse attendu :
> POST /customer/_doc/1  
{  
    "name": "Brayan"  
}
<<<<<<< HEAD
#### Q2. Ajouter l'age de 23 pour Brayan
> POST /customer/_doc/1  
{  
    "age": 23  
}
#### Q3. Ajouter 10000 dans la balance de Brayan
> POST /customer/_doc/1  
{  
    "balance": 10000  
}

#### Q4. Ouvrir un nouveau terminal, lancer la commande :
>  curl --cacert http_ca.crt -u elastic https://localhost:9200/customer/_doc/1  

On doit pouvoir voir Brayan 23 ans avec 5000€ dans sa balance

#### Q5. Supprimer Brayan :) 

Vous pouvez utiliser la ligne de commande ou Kibana comme vous voulez. Vérifiez bien que Brayan n'existe plus dans notre base de données

Note : Pour ajouter plusieurs documents en même temps, nous allons utiliser la requête _bulk
#### Q6.  Ajouter le tableau suivant :
 ![Q2](/images/tableau.png)

#### Q7. Trouver le client le plus jeune
#### Q8. Trouver la balance la plus élevé
=======

#### 2. Ajouter l'age de 23 pour Brayan
#### 3. Ajouter 5000 dans la balance de Brayan
#### 4. Supprimer Brayan :)

Note : Pour ajouter plusieurs documents en même temps, nous allons utiliser la requête _bulk
#### 4.  Ajouter le tableau suivant :
 ![Q2](/images/tableau.png)

#### 5. Trouver le client le plus jeune
#### 6. Trouver la balance la plus élevé
>>>>>>> b29d0fad22727cd638307181d1d6fd26465b02a8

### Partie 2 : Agrégation de données et visualisation dans Kibana

Grâce aux visualisation, répondez aux questions suivants :

* Le nombre total de vol
* Le pourcentage de vol en retard
* Le billet moyen le plus cher
* Le jour où il y a eu le plus de vol
* Le nombre de vol retardé avec un retard supérieur à 360 minutes

### Partie 3 : API Elasticsearch