Introduction - Initiation Elasticsearch
- Initiation à l'API REST
- Indices, documents, mappings: les concepts principaux
- Analyse du text à l'indexation et à la recherche
- Rechercher des documents avec Elasticsearch
- Calculer des agrégations avec Elasticsearch
TP1:
- Exécuter le cluster à un noeud d'Elasticsearch et son Kibana associé via docker-compose
- Indexer et chercher nos premiers documents à travers l'interface devtools de kibana
Installer & estimer les ressources nécessaires d'infrastructure
- Cluster, Noeuds, Indices, Shards et Replicas: Les principaux concepts
- Allocation des shards, commandes and philosophie:
- déploiement classique
- déploiement multi data tiers
- Rôles des noeuds
- Savoir expliquer les allocations effectuées
- Recovery: Quand et comment les contrôler
- Explications du routing des requêtes de recherche et d'indexation
- Noeuds Masters et Voting configuration
- Paramétrage de la Memoire
- Paramétrage du disque
- Paramétrage réseau
- Paramétrage CPU
- Avertissement sur la virtualisation
- Recette de "Sizing"
- Usage API pour lister les features XPack actives
TP2:
- Découvrir le fichier docker-compose fourni pour le cluster à un noeud,
- Découvrir le fichier docker-compose fourni pour le cluster à trois noeuds,
- Specialiser les noeuds du second cluster de manière à avoir des tiers hot, warm et cold (rôles data_hot, data_warm et data_cold)
- Ajouter le rôle ingest node au noeud de rôle data_cold
- Ajouter le rôle voting_only au noeud de rôle data_hot
- Ajouter le rôle master au noeuds data_warm et data_cold
- Examiner les allocations des shards des nouveaux indices créés
Monitorer & réagir
- API Cluster Health, Cluster stats/state, Node infos/stats, Index _stats
- APIs équivalentes avec l'API _cat
- Connaître les tâches en attente de traitement sur le cluster (pending tasks)
- Connaître les threads les plus actifs d'un noeud (hot threads)
- Monitorer les fonctionnalités de la stack
- Monitorer la mémoire utilisée
- Monitorer les file handles utilisés
- Monitorer l'occupation disque
- Monitorer la bande passante et connexions réseau
- Surveiller les indicateurs de performance: charge de travail des threads , performances d'indexation/recherche et surveillance des requêtes "lentes"
- Monitorer à l'aide des journaux applicatifs elasticsearch
- Alerter sur la base des données de monitoring (nécessite une licence supérieure à "basic" ou une licence d'essai)
TP3:
- Installer et paramétrer une instance metricbeat utilisant le cluster à un noeud pour indexer les données de monitoring du cluster à trois noeuds
- Explorer les commandes Cluster/Nodes/Indices states and stats
- Explorer les commandes _cat
- Utiliser les slowlogs pour lister toutes les requêtes de recherche effectuées
Maintenance
- Mécanismes du Recovery
- Se mettre à l'échelle: ajouter ou retirer un noeud
- Opérations de maintenance: redémarrer un noeud ou un cluster complet
- Ré-indexer des données
- Prévenir les arrêts de services: Aliases et Rollover API
- Cas particulier d'usage de indices: les Datastreams
- Sauvegarder/Restaurer des indices
- Fonctionnalité de sauvegarde automatisée (Snapshot Lifecycle Management ou SLM)
- Fonctionnalité de gestion du cycle de vie des indices (Index Lifecycle Management ou ILM)
- Utiliser l'API de dépréciation
- Préparer une montée de version
- Monter de Version
TP4:
- Ajouter/Enlever un noeud sans conséquence
- Ré_indexer depuis un autre index
- Sauvegarder/Restaurer un index
- Paramétrer une ILM policy avec une action Rollover et une SLM policy
- Créer un datastream pour les données Metricbeat avec la datastream policy fournie afin de surveiller les allocations des indices ""vieillissants" sous-jacents
Securité
- Périmètre et vue d'ensemble
- Filtrer les flux réseau
- Limiter les fonctionnalités de Scripting
- Chiffrer les données sur disque ou échangées sur le réseau
- Authentifier les utilisateurs avec XPack security
- Autentifier les utilisateur avec un reverse proxy
- Authorisations d'accès aux ressources
TP5:
- Sécuriser le trafic réseau entre les noeuds du cluster et entre le cluster et ses clients: Kibana, Metricbeat (HTTP + TCP transport)
- Paramétrer l'authentification basique:
- Paramétrer les utilisateurs "built-in"
- Définir un utilisateur administrateur, un utilisateur standard et un utilisateur en lecture seule avec le File realm
Cross Cluster Replication (CCR)
- Réplications entres clusters distants uni-directionelles ou bi-directionnelles pour permettre différents cas d'usage:
- Une Architecture capable un retour rapide à la normale après désastre
- Une architecture de mise à proximité données
- Une architecture de centralisation de la supervision
Optimisation & Performance
Indexer plus rapidement:
- Bulk API
- Refresh interval
- Optimisations des Mappings
Rechercher plus efficacement:
- Contextes de filtres, de post filters, opérateurs "exact matches" et caches
- Pièges des opérateurs wildcard ou des mappings parent/child
- Agréger and trier plus efficacement: doc_values et fielddata
- Diagnostiquer le calcul de score, ou les erreurs
- Profiler ses recherches pour comprendre les temps de réponse
Matériel & Infrastructure:
- Penser aux capacité de gestion des data_tiers d'Elasticsearch
- Pas d'ingestion sans noeud dédier à cette activité
- Dissocier les clusters pour les spécialiser dans des tâches données (supervision vs métier)
- Faire sans logstash en environnement cloud