Cette page explique comment créer des règles d'alerte pour les clusters Anthos clusters on Bare Metal.
Avant de commencer
Vous devez disposer des autorisations suivantes pour créer des règles d'alerte :
monitoring.alertPolicies.create
monitoring.alertPolicies.delete
monitoring.alertPolicies.update
Vous obtenez ces autorisations si vous disposez de l'un des rôles suivants :
monitoring.alertPolicyEditor
monitoring.editor
- Éditeur de projet
- Propriétaire du projet
Pour vérifier vos rôles, accédez à la page IAM dans Google Cloud Console.
Créer une règle : serveur d'API du cluster indisponible
Dans cet exercice, vous allez créer une règle d'alerte pour les serveurs d'API Kubernetes des clusters. Une fois cette règle en place, vous pouvez faire en sorte d'être averti dès que le serveur d'API d'un cluster tombe en panne.
Téléchargez le fichier de configuration de la règle : apiserver-down.json.
Créez la règle :
gcloud alpha monitoring policies create --policy-from-file=POLICY_CONFIG
Remplacez POLICY_CONFIG par le chemin d'accès du fichier de configuration que vous venez de télécharger.
Affichez vos règles d'alerte :
Console
Dans Google Cloud Console, accédez à la page Monitoring.
Sur la gauche, sélectionnez Alertes.
Sous Règles, vous pouvez voir la liste de vos règles d'alerte.
Dans la liste, sélectionnez Serveur d'API Anthos on Bare Metal (critique) pour afficher les informations détaillées sur votre nouvelle règle. Sous Conditions, vous pouvez consulter une description de la règle. Exemple :
Policy violates when ANY condition is met Anthos on baremetal API server is up
gcloud
gcloud alpha monitoring policies list
La sortie affiche des informations détaillées sur la règle. Exemple :
--- combiner: OR conditions: - conditionMonitoringQueryLanguage: duration: 0s query: |- { t_0: fetch k8s_container | metric 'kubernetes.io/anthos/up' | filter (resource.container_name =~ 'kube-apiserver') | align mean_aligner() | group_by 1m, [value_up_mean: mean(value.up)] | every 1m | group_by [resource.project_id, resource.location, resource.cluster_name], [value_up_mean_aggregate: aggregate(value_up_mean)] ; t_1: fetch k8s_container::kubernetes.io/anthos/anthos_cluster_info | filter (metric.anthos_distribution = 'baremetal') | align mean_aligner() | group_by [resource.project_id, resource.location, resource.cluster_name], [value_anthos_cluster_info_aggregate: aggregate(value.anthos_cluster_info)] | every 1m } | join | value [t_0.value_up_mean_aggregate] | window 1m | absent_for 300s trigger: count: 1 displayName: Anthos on baremetal API server is up name: projects/xxxxxx/alertPolicies/8497323605386949154/conditions/8497323605386950375 creationRecord: mutateTime: '2021-03-17T23:07:18.618778106Z' mutatedBy: sharon@example.com displayName: Anthos on baremetal API server down (critical) enabled: true mutationRecord: mutateTime: '2021-03-17T23:07:18.618778106Z' mutatedBy: sharon@example.com name: projects/xxxxxx/alertPolicies/8497323605386949154
Créer des règles d'alerte supplémentaires
Cette section fournit des descriptions et des fichiers de configuration pour un ensemble de règles d'alerte recommandées.
Pour créer une règle, suivez les étapes que vous avez utilisées dans l'exercice précédent :
Pour télécharger le fichier de configuration, cliquez sur le lien dans la colonne de droite.
Pour créer la règle, exécutez
gcloud alpha monitoring policies create
.
Disponibilité des composants du plan de contrôle
Nom de l'alerte | Description | Définition de la règle d'alerte dans Cloud Monitoring |
---|---|---|
Serveur Anthos on Bare Metal en panne (critique) | Le serveur d'API a disparu de la découverte cible de métriques | apiserver-down.json |
Programmeur Anthos on Bare Metal en panne (critique) | Le programmeur a disparu de la découverte cible de métriques | scheduler-down.json |
Gestionnaire de contrôleur Anthos on Bare Metal en panne (critique) | Le gestionnaire de contrôleur a disparu de la découverte cible de métriques | controller-manager-down.json |
Système Kubernetes
Nom de l'alerte | Description | Définition de la règle d'alerte dans Cloud Monitoring |
---|---|---|
Boucle de plantage de pod Anthos on Bare Metal (critique) | Le pod se trouve dans une boucle de plantage. | pod-crash-looping.json |
Pod Anthos on Bare Metal indisponible pendant plus d'une heure (critique) | Le pod est dans un état non prêt pendant plus d'une heure. | pod-not-ready-1h.json |
Utilisation intensive du volume persistant Anthos on Bare Metal (critique) | Le volume persistant déclaré doit être plein | persistent-volume-usage-high.json |
Nœud Anthos on Bare Metal indisponible pendant plus d'une heure (critique) | Le nœud est dans un état non prêt pendant plus d'une heure. | node-not-ready-1h.json |
Utilisation du processeur du nœud Anthos on Bare Metal supérieure à 80 % (critique) | L'utilisation du processeur du nœud est supérieure à 80 % | node-cpu-usage-high.json |
Utilisation de la mémoire du nœud Anthos on Bare Metal supérieure à 80 % (critique) | L'utilisation de la mémoire du nœud dépasse 80 % | node-memory-usage-high.json |
Utilisation du disque du nœud Anthos on Bare Metal supérieure à 80 % (critique) | L'utilisation du disque du nœud dépasse 80 % | node-disk-usage-high.json |
Performances de Kubernetes
Nom de l'alerte | Description | Définition de la règle d'alerte dans Cloud Monitoring |
---|---|---|
Ratio du taux d'erreur du serveur d'API Anthos on Bare Metal supérieur à 10 % (critique) | Le serveur d'API renvoie des erreurs pour plus de 10 % des requêtes | api-server-error-ratio-10-percent.json |
Ratio du taux d'erreur du serveur d'API Anthos on Bare Metal supérieur à 5 % (avertissement) | Le serveur d'API renvoie des erreurs pour plus de 5 % des requêtes | api-server-error-ratio-5-percent.json |
Modification des variantes optimales etcd Anthos on Bare Metal trop fréquente (critique) | La variante optimale etcd change trop souvent |
etcd-leader-changes-too-frequent.json |
Échec des propositions etcd Anthos on Bare Metal trop fréquent (critique) | Les propositions etcd échouent trop souvent |
etcd-proposals-failed-too-frequent.json |
Serveur etcd Anthos on Bare Metal hors quorum (critique) | Le serveur etcd n'est pas dans un quorum |
etcd-server-not-in-quorum.json |
Recevoir des notifications
Une fois que vous avez créé une règle d'alerte, vous pouvez définir un ou plusieurs canaux de notification pour cette règle. Il existe plusieurs types de canaux de notification. Par exemple, vous pouvez être averti par e-mail, ou via un canal Slack ou une application mobile. Vous pouvez choisir les canaux qui répondent à vos besoins.
Pour obtenir des instructions sur la configuration des canaux de notification, consultez la page Gérer les canaux de notification.