Les opérations quotidiennes de l'édition Agent Engine incluent la surveillance des instances, la gestion des autorisations de Collection ainsi que la sauvegarde et la restauration des Collections.
Surveillance des instances
Pour consulter les métriques d'exécution de l'instance, accédez à la page du produit de l'instance dans la console, puis choisissez Monitoring and Logging > Cluster Monitoring dans le volet de navigation de gauche. Définissez les seuils d'alerte en fonction de vos objectifs de niveau de service (SLO) métier et des lignes de base des tests de charge. Les noms des métriques et les points d'entrée d'alerte affichés dans la console font foi.
La page Cluster Monitoring regroupe les métriques par catégorie et non par rôle de nœud (tels que les nœuds d'index ou les nœuds de requête). Pour observer ces deux types de nœuds séparément, définissez Resource Type sur un nœud spécifique, puis filtrez par nom de nœud. Les noms des nœuds d'index contiennent -index-. Les noms des nœuds de requête contiennent -search-, bien que les noms des métriques de la console utilisent à la fois Query et Search. L'édition Agent Engine ne dispose pas de nœuds warm ; vous devez donc surveiller uniquement les nœuds d'index et les nœuds de requête.
Le tableau suivant associe les cibles d'observation courantes aux métriques de la console, regroupées par dimension. Commencez par les métriques au niveau du cluster, descendez jusqu'aux métriques au niveau du nœud et considérez les rejets de pool de threads comme des indicateurs de capacité.
|
Cible d'observation |
Métrique de la console |
Dimension |
|
Débit d'écriture |
Cluster Write QPS |
Niveau du cluster |
|
Latence d'écriture |
Average Cluster Write Latency |
Niveau du cluster |
|
Débit des requêtes |
Cluster Query QPS |
Niveau du cluster |
|
Latence des requêtes |
Average Cluster Search Latency |
Niveau du cluster |
|
Utilisation du CPU |
Node CPU Utilization_ES Business, Node CPU Utilization_Total |
Niveau du nœud |
|
Utilisation de la mémoire Heap |
Node Heap Memory Utilization_ES Business |
Niveau du nœud |
|
Rejets |
Number of Tasks Rejected by the Write Thread Pool, Number of Requests Rejected by the Query Thread Pool |
Niveau du pool de threads |
Autorisations de Collection
L'accès aux Collections, Slices et Backings est contrôlé par les autorisations d'index et les autorisations de cluster que vous configurez dans les rôles.
Étendue de l'autorisation pour Collection et Backing
Lorsque vous configurez un rôle, vous devez généralement accorder des autorisations d'accès à la fois sur le nom de la Collection et sur le Backing sous-jacent. Configurez les deux valeurs suivantes dans le rôle et remplacez <collection> par le nom de votre Collection :
<collection>
.sc-<collection>-*
Par exemple, si la Collection est nommée knowledge-chunks, vous pouvez configurer knowledge-chunks et .sc-knowledge-chunks-* dans le rôle. Si vous configurez uniquement le nom de la Collection et omettez le modèle de Backing, les lectures et écritures de documents uniques, MGet, l'actualisation explicite, _update_by_query et _delete_by_query peuvent renvoyer une erreur HTTP 403. Pour résoudre cette erreur, ajoutez le modèle de Backing correspondant au rôle. Les autorisations requises par chaque opération API font foi et les applications en ligne ne doivent pas accéder directement au Backing.
Vérifiez le chevauchement des préfixes avant d'accorder des autorisations. .sc-knowledge-chunks-* correspond également au Backing de knowledge-chunks-private ; ce modèle seul ne peut donc pas garantir une isolation stricte entre les Collections. .sc-* a une portée encore plus large et ne doit pas être utilisé comme configuration par défaut du moindre privilège.
Autorisations requises pour chaque opération
Le tableau suivant répertorie les autorisations requises pour chaque opération.
|
Opération |
Autorisations requises |
|
Créer, mettre à jour ou supprimer une Collection ou un Slice |
L'autorisation d'index |
|
Pré-créer un Backing |
L'autorisation d'index |
|
Appeler |
L'autorisation d'index |
|
Démarrer ou annuler Copy Slice |
L'autorisation d'index |
|
Créer un Branch Slice (Beta) |
L'autorisation d'index |
|
Créer ou modifier un alias de Collection |
L'autorisation d'index |
|
Obtenir une Collection, interroger ou lister les Slices, utiliser CAT ou interroger l'état de la copie |
L'autorisation d'index |
|
Appeler |
L'autorisation d'index |
|
Lire, écrire et interroger des documents |
L'autorisation d'index |
|
Utiliser |
L'autorisation de cluster |
Pratiques d'isolation et de moindre privilège
manage couvre simultanément la gestion de la Collection, la préparation et la suppression. N'accordez que read et write aux comptes de lecture et d'écriture en ligne. Lancez la préparation, la pré-création de Backing, Copy, Branch et la gestion de Collection ou de Slice à partir d'un compte de service distinct ou d'une tâche O&M, et limitez les Collections auxquelles le compte peut accéder. Si votre activité nécessite qu'une application en ligne effectue directement la préparation, acceptez que le compte dispose également de ces capacités de gestion et restreignez les appels aux API de gestion au niveau de la couche application.
De plus, appliquez les principes suivants :
Principe d'accès aux applications : les applications doivent toujours accéder aux données via le nom de la Collection. N'accédez pas directement aux noms de Backing et ne les stockez pas. L'accès direct à un Backing contourne le point d'entrée logique de la Collection et la réécriture de portée
_slice, de sorte qu'une seule requête peut lire les données de tous les Slices de ce Backing.Isolation stricte : pour isoler strictement les identifiants entre les Collections, ne vous fiez pas uniquement au caractère générique actuel du nom de Backing. Assurez l'isolation en évitant le chevauchement des préfixes entre les noms de Collection et en utilisant une isolation indépendante au niveau de la plateforme ou de la couche application, et vérifiez l'étendue d'index réellement accessible après chaque modification d'autorisation.
Isolation des locataires et identifiants : Un Slice n'est pas une limite d'isolation des autorisations de locataire. Le modèle d'autorisation actuel ne peut pas émettre de compte Elasticsearch pour un seul locataire capable de lire uniquement les Slices de ce locataire. Effectuez l'authentification au niveau du locataire et la restriction de la portée des données au niveau de la couche application, et ne distribuez jamais les identifiants de compte Elasticsearch directement aux utilisateurs finaux.
Sauvegarde et récupération de Collection
La sauvegarde et la récupération de Collection s'effectuent au niveau de l'espace de noms complet : toutes les Collections d'une instance sont sauvegardées et restaurées ensemble. La restauration d'une seule Collection ou d'un seul Slice n'est pas prise en charge et vous ne pouvez pas renommer une Collection lors de la récupération. Le support technique effectue ces opérations via des tickets.
Avant la récupération, l'instance cible ne doit contenir aucune Collection et aucun index sous-jacent portant le même nom que la sauvegarde ne doit subsister. Après avoir déterminé vos besoins en matière de sauvegarde et avant la mise en production, soumettez un ticket avec l'instance source, la cible de récupération et vos exigences de sauvegarde. Le support technique vérifie ensuite la version, les conditions de stockage et l'impact sur la configuration globale, et planifie la fenêtre de sauvegarde.
Pendant une sauvegarde, les lectures, requêtes, écritures, mises à jour et suppressions normales de documents dans les Slices existants peuvent se poursuivre. Du début à la fin de la sauvegarde, suspendez les opérations de gestion suivantes :
Création, mise à jour ou suppression d'une Collection
Enregistrement ou suppression d'un Slice, y compris l'enregistrement automatique déclenché par la première écriture
Roulage ou basculement d'un Backing
Création d'un Branch Slice (Beta)
Demandez au support technique de vous aider à coordonner ces opérations, y compris l'enregistrement des Slices et la création de roulage de Backing qui peuvent être déclenchées automatiquement. Si l'un de ces changements se produit pendant une sauvegarde, recréez la sauvegarde.