Comment résoudre les problèmes liés aux vérifications d'état Route 53 non saines ?

Date de la dernière mise à jour : 20/05/2021

Les vérifications d'état Amazon Route 53 que j'ai créées sont signalées comme non saines. Comment résoudre et corriger ces problèmes ?

Solution

Remarque : si vous recevez des erreurs lors de l'exécution de commandes depuis l'interface de ligne de commande AWS (AWS CLI), vérifiez que vous utilisez la version la plus récente d'AWS CLI.

Tout d'abord, vous devez déterminer la raison du dernier échec de vérification d'état à l'aide de la Console de gestion AWS. Vous pouvez également utiliser la commande get-health-check-last-failure-reason dans l'interface AWS CLI. Une fois que vous avez identifié le type de vérification d'état, suivez les étapes de résolution correspondantes pour identifier et corriger le problème.

Remarque : quel que soit le type de vérification d'état, veillez à vérifier le statut de l'option « Inverser le statut de vérification de l'état ». Si cette option est définie sur « true », Route 53 considère que la vérification d'état n'est pas saine lorsque les vérificateurs d'état la marquent comme étant saine, et inversement.

Résolution des problèmes liés à une vérification d'état qui surveille un point de terminaison

Cause : Ce problème est indiqué par le message d'erreur « The health checker could not establish a connection within the timeout limit » (Le vérificateur d'état n'a pas pu établir une connexion dans le délai imparti). Cette erreur est due à un dépassement de délai qui se produit lorsque les vérificateurs d'état tentent d'établir une connexion avec le point de terminaison configuré. La délai minimal pour établir une connexion varie en fonction du protocole de vérification d'état (TCP, HTTP ou HTTPS) :

  • Pour les vérifications d'état TCP, la connexion TCP entre les vérificateurs d'état et le point de terminaison doit se produire dans un délai de dix secondes.
  • Pour les vérifications d'état HTTP et HTTPS, la connexion TCP entre les vérificateurs d'état et le point de terminaison doit se produire dans un délai de quatre secondes. Le point de terminaison doit répondre avec un code de statut HTTP 2xx ou 3xx dans les deux secondes qui suivent l'établissement d'une connexion. Pour plus d'informations, consultez Comment Amazon Route 53 détermine si une vérification d'état est saine.

Solution :

1.    Dans la configuration de vérification d'état, notez le « nom de domaine » ou l'« adresse IP » du point de terminaison.

2.    Accédez au point de terminaison. Vérifiez que le pare-feu ou le serveur autorise les connexions à partir des adresses IP publiques Route 53 pour les régions activées dans la configuration de la vérification d'état. Dans les plages d'adresses IP, recherchez « service » : « ROUTE53_HEALTHCHECKS ». Si les ressources du point de terminaison sont hébergées sur AWS, configurez des groupes de sécurité et des listes de contrôle d'accès réseau (ACL réseau) pour autoriser les adresses IP des vérificateurs d'état Route 53.

3.    Utilisez les outils suivants pour tester la connectivité avec le point de terminaison configuré sur Internet. Veillez à remplacer les espaces réservés dans les commandes par vos valeurs.

Test TCP :

$ telnet <domain name / IP address> <port>

Test HTTP/HTTPS :

$ 

curl -Ik -w "HTTPCode=%{http_code} TotalTime=%{time_total}\n" <http/https>://<

domain-name/ip address>:<port>/<path>

 -so /dev/null

Comparez la sortie des précédents tests avec les valeurs de délai d'expiration des vérifications d'état. Puis vérifiez que votre application répond dans les délais respectifs.

Par exemple, si vous exécutez le test suivant :

curl -Ik -w "HTTPCode=%{http_code} TotalTime=%{time_total}\n" https://example.com -so /dev/null

La sortie est :

HTTPCode=200 TotalTime=0.001963

Dans cet exemple, le temps total nécessaire pour obtenir des réponses avec le code d'état HTTP 200 est de 0,001963 secondes.

Pour les connexions HTTP, le temps de connexion doit être inférieur à quatre secondes. Le point de terminaison doit répondre avec le code d'état HTTP dans les deux secondes qui suivent la connexion. Le temps total est de six secondes. Un temps total supérieur à six secondes indique que le point de terminaison met du temps à répondre et que la vérification de l'état est en train d'échouer. Dans ce cas, vérifiez votre point de terminaison pour vous assurer qu'il répond dans le délai imparti.

Si la sortie des commandes de test indique un HTTPCode autre que 200, vérifiez les configurations suivantes :

  • Règles de pare-feu
  • Groupes de sécurité
  • ACL réseau

Lors de la vérification de ces configurations, assurez-vous que votre point de terminaison autorise les connexions à partir d'adresses IP publiques Route 53.

4.    Si elle est activée, utilisez l'option Graphique de latence de la configuration de la vérification d'état pour vérifier ce qui suit dans le graphique des métriques :

  • Temps de connexion TCP
  • Délai jusqu'au premier octet
  • Temps pour établir la liaison SSL

Pour plus d'informations, consultez Surveillance de la latence entre les vérificateurs d'état et votre point de terminaison.

Remarque :

  • si l'option Graphique de latence n'est pas activée, vous ne pouvez pas modifier les vérifications d'état existantes. Vous devez donc créer une nouvelle vérification d'état.
  • Si l'adresse IP Elastic du point de terminaison que vous surveillez est publiée ou mise à jour, la vérification d'état peut échouer.

Cause : ce problème est signalé par le message d'erreur « SSL alert handshake_failure ».

Solution :

Cette erreur indique que la négociation SSL ou TLS avec le point de terminaison a échoué. Lorsque vous activez le protocole SNI (HTTPS uniquement), Route 53 envoie le nom d'hôte contenu dans le message « ClientHello » au point de terminaison au moment de la négociation TLS. Cette action permet au point de terminaison de répondre à la demande HTTPS avec le certificat SSL ou TLS applicable.

Si le nom d'hôte que vous surveillez ne fait pas partie du nom commun dans le certificat SSL ou TLS du point de terminaison, le message d'erreur « SSL alert handshake_failure » apparaît.

Remarque : pour activer le protocole SNI, celui-ci doit être pris en charge par le point de terminaison surveillé.

Résolution des problèmes liés aux vérifications d'état avec la condition de recherche de chaîne

Cause : ce problème est signalé lorsque le serveur de point de terminaison renvoie « 200 OK » et que Route 53 marque la vérification d'état comme étant non saine. Les vérificateurs d'état doivent établir une connexion TCP avec le point de terminaison dans un délai de quatre secondes. Les vérificateurs d'état doivent ensuite recevoir un code de statut HTTP 2xx ou 3xx dans un délai de deux secondes. La chaîne configurée doit ensuite apparaître dans les 5 120 premiers octets du corps de la réponse dans un délai de deux secondes. Si la chaîne n'est pas présente dans les 5 120 premiers octets, Route 53 marque la vérification d'état comme non saine.

Solution :

Pour vérifier que la chaîne apparaît entièrement dans les 5 120 premiers octets du corps de la réponse, utilisez la commande suivante. Veillez à remplacer « $search-string » par votre valeur de chaîne.

$ curl -sL <http/https>://<domain-name>:<port> | head -c 5120 | grep $search-string

Résolution des problèmes liés à une vérification d'état qui surveille une alarme CloudWatch

Cause : Route 53 n'attend pas que l'alarme Amazon CloudWatch passe à l'état ALARM. Route 53 surveille le flux de données des métriques au lieu de surveiller l'état de l'alarme CloudWatch.

Solution :

1.    Vérifiez la configuration de la vérification d'état présentant l'état « DONNÉES INSUFFISANTES ». Si le flux de données des métriques ne fournit pas suffisamment d'informations pour déterminer l'état de l'alarme, le statut de la vérification d'état dépend de la configuration du paramètre « InsufficientDataHealthStatus ». Les options de statut du paramètre « InsufficientDataHealthStatus » sont « sain », « non sain » ou « dernier statut connu ».

2.    Lorsque vous mettez à jour la configuration d'une alarme CloudWatch, les nouveaux paramètres n'apparaissent pas automatiquement dans la vérification d'état associée. Pour synchroniser la configuration de la vérification d'état avec la configuration de l'alarme CloudWatch mise à jour :

  • Dans la console Route 53, choisissez Vérifications de l'état.
  • Sélectionnez la vérification d'état, puis choisissez Synchroniser la configuration.

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?