Collecter les journaux Cloud Service Mesh
Les sections suivantes expliquent comment collecter les différents journaux de Cloud Service Mesh pour résoudre les problèmes ou pour contacter l'assistance Google.
Collecter des journaux à l'aide de l'outil de signalement de bug
Cloud Service Mesh fournit un outil de signalement de bug automatisé qui collecte les journaux de diagnostic pertinents et vous permet de les associer à une demande d'assistance Google.
Avant de commencer, assurez-vous que le contexte kubeconfig de votre cluster est disponible dans votre fichier kubeconfig.
Démarrer la collecte des journaux
Plan de contrôle géré
Exécutez l'outil de signalement de bug pour collecter les journaux:
gcloud beta container fleet mesh debug bug-report \ --membership=MEMBERSHIP_NAME \ --location=MEMBERSHIP_LOCATION \ --project=PROJECT_NAME
Remplacez les éléments suivants :
MEMBERSHIP_NAME
: nom de votre abonnement.MEMBERSHIP_LOCATION
: région de votre adhésion.PROJECT_NAME
: nom du projet
Plan de contrôle au sein du cluster
Exécutez l'outil de signalement de bug pour collecter les journaux:
istioctl bug-report
Importer votre archive de débogage
L'outil crée une archive des journaux et de la configuration de votre réseau maillé dans le répertoire de travail. Vous pouvez décompresser le fichier de l'archive et utiliser les guides de dépannage pour tenter de résoudre le problème vous-même. Toutefois, si vous disposez d'une formule d'assistance, vous pouvez contacter l'assistance Google Cloud qui vous indiquera les étapes supplémentaires à suivre pour importer votre archive de journaux de manière sécurisée.
Collecter manuellement les journaux Cloud Service Mesh
Cette section explique comment collecter manuellement tous les journaux pertinents plutôt que d'utiliser l'outil de signalement de bug de Cloud Service Mesh.
Journaux d'accès Envoy
Les journaux d'accès du proxy Envoy contiennent des informations détaillées utiles pour le dépannage. Cependant, vous devez les activer et définir le niveau de détail approprié.
Pour plus d'informations sur l'interprétation du contenu des journaux, consultez la page Interpréter les journaux Envoy.
Activer ou désactiver les journaux Envoy
Pour activer les journaux d'accès du proxy Envoy, configurez un fichier superposé pour Cloud Service Mesh dans le cluster ou un fichier ConfigMap pour Cloud Service Mesh géré.
Augmenter les détails de journalisation
Pour augmenter temporairement le niveau de détail des journaux, utilisez la commande suivante. Ce paramètre est annulé lors de la recréation du pod.
kubectl -n NAMESPACE debug --image istio/base --target istio-proxy -it POD_NAME -- curl -X POST http://localhost:15000/logging?level=debug
Pour rétablir le niveau de détail des journaux par défaut, utilisez la commande suivante:
kubectl -n NAMESPACE debug --image istio/base --target istio-proxy -it POD_NAME -- curl -X POST http://localhost:15000/logging?level=info
Écrire les journaux Envoy dans un dossier
Pour collecter les journaux d'accès du proxy Envoy et les stocker dans un dossier, exécutez la commande suivante :
kubectl logs -l app=APPLICATION_NAME -c istio-proxy > /FILE_PATH
Pour en savoir plus, consultez la section Obtenir les journaux d'accès Envoy.
Journaux Kubernetes
Kubernetes génère plusieurs journaux contenant des informations sur le comportement des composants Istio, tels que istiod
, la passerelle d'entrée et les proxys. Vous pouvez consulter ces journaux pour rechercher des erreurs, ce qui peut restreindre la portée des causes possibles d'un problème.
(Plan de contrôle au sein du cluster uniquement) Enregistrez les journaux istiod
à l'aide de la commande suivante:
kubectl -n istio-system logs $(kubectl -n istio-system get pods -lapp=istiod -oname) > ./LOGS_FOLDER/istiod.log
(Plan de contrôle au sein du cluster uniquement) Enregistrez les journaux de la passerelle d'entrée Istio à l'aide de la commande suivante:
kubectl -n istio-system logs $(kubectl -n istio-system get pods -lapp=istio-ingressgateway -oname) > /FILE_PATH
Enregistrez les journaux du proxy Istio à l'aide de la commande suivante :
kubectl -n WORKLOAD_NAMESPACE logs POD_NAME -c istio-proxy > ./LOGS_FOLDER/proxy.log
Fichier de vidage de configuration Kubernetes
Ces informations permettent aux utilisateurs ne disposant pas d'un accès direct au cluster d'afficher l'état de diverses ressources et d'identifier les éventuels problèmes de configuration. La commande suivante écrit la configuration Kubernetes dans un fichier YAML :
for ns in `kubectl get namespaces -o=jsonpath='{.items[*].metadata.name}'` ; do echo "===NAMESPACE===" $ns >> ./LOGS_FOLDER/kubernetes.yaml ;kubectl get -oyaml -n $ns deploy,statefulset,job,ingress,endpoints,configmap,event,secret,service,istio-io >> ./LOGS_FOLDER/kubernetes.yaml; done
Vidage de mémoire Envoy
Les vidages de mémoire Envoy ne sont généralement pas utiles pour les utilisateurs finaux. Toutefois, l'assistance Google peut vous demander de récupérer ces fichiers en suivant les étapes ci-dessous dans le cadre du processus de dépannage.
Pour configurer le noyau afin d'écrire des fichiers de vidage de mémoire Envoy dans un répertoire accessible en écriture :
Ajoutez le libellé
sidecar.istio.io/enableCoreDump=true
à un pod.Redémarrez le pod pour activer les vidages de mémoire du noyau Envoy.
Copiez le dump de mémoire hors du pod.
Configurer le proxy Envoy
La configuration détaillée du proxy Envoy contient des détails supplémentaires qui peuvent être utiles à des fins de dépannage. Vous pouvez collecter ces informations à l'aide de la commande suivante. Dans cet exemple, ENDPOINT est l'un des éléments suivants (affichés par ordre d'importance) :
- /certs
- /clusters
- /listeners
- /config_dump
- /memory
- /server_info
- /stats/prometheus
- /runtime
kubectl debug --image istio/base --target istio-proxy -itq POD_NAME -n NAMESPACE -- curl 127.0.0.1:15000/ENDPOINT > out.log