Raccolta dei log di Anthos Service Mesh
Le seguenti sezioni spiegano come raccogliere i vari log di Anthos Service Mesh per risolvere i problemi o per contattare l'Assistenza Google.
Raccogli i log utilizzando lo strumento per la segnalazione di bug
Anthos Service Mesh fornisce uno strumento di segnalazione di bug automatizzato che raccoglie i log di diagnostica pertinenti e ti consente di allegarli a un ticket dell'Assistenza Google.
Prima di iniziare, assicurati che il contesto kubeconfig sia impostato sul cluster di destinazione.
Verifica il contesto utilizzando il seguente comando:
kubectl config current-context
Avvia la raccolta di log
Per avviare la raccolta dei log, esegui lo strumento per la segnalazione di bug utilizzando il seguente comando:
istioctl bug-report
Caricare l'archivio di debug
Lo strumento crea un archivio dei log e della configurazione del mesh nella directory di lavoro. Puoi decomprimere l'archivio e utilizzare le guide alla risoluzione dei problemi per tentare di eseguire autonomamente la risoluzione dei problemi. Tuttavia, se disponi di un pacchetto di assistenza, puoi contattare l'Assistenza Google Cloud, che ti fornirà ulteriori passaggi per caricare in modo sicuro l'archivio di log.
Raccogli manualmente i log di Anthos Service Mesh
Anziché utilizzare lo strumento per la segnalazione di bug di Anthos Service Mesh, in questa sezione viene spiegato come raccogliere manualmente tutti i log pertinenti.
Log di accesso Envoy
I log degli accessi al proxy Envoy contengono informazioni dettagliate utili per la risoluzione dei problemi. Tuttavia, devi attivarle e impostare il livello di dettaglio corretto.
Per informazioni dettagliate su come interpretare i contenuti dei log, vedi Interpretare i log di Envoy.
Abilitare o disabilitare i log di Envoy
Per attivare i log degli accessi al proxy Envoy, configura un file overlay per Anthos Service Mesh nel cluster o un ConfigMap per Anthos Service Mesh gestito.
Aumenta dettagli di logging
Per aumentare temporaneamente il livello di dettaglio dei log, utilizza il comando seguente. Questa impostazione viene annullata quando il pod viene ricreato.
kubectl -n NAMESPACE exec POD_NAME -c istio-proxy -- curl -X POST http://localhost:15000/logging?level=debug
Per ripristinare il livello di dettaglio dei log al valore predefinito, utilizza il comando seguente:
kubectl -n NAMESPACE exec POD_NAME -c istio-proxy -- curl -X POST http://localhost:15000/logging?level=info
Scrittura dei log di Envoy in una cartella
Per raccogliere i log degli accessi al proxy Envoy e archiviarli in una cartella, utilizza il comando seguente:
kubectl logs -l app=APPLICATION_NAME -c istio-proxy > /FILE_PATH
Per ulteriori informazioni, vedi Recupero dei log degli accessi di Envoy.
Log di Kubernetes
Kubernetes genera diversi log contenenti informazioni sul comportamento dei componenti Istio, come istiod
, gateway Ingress e proxy. Puoi esaminare questi log per individuare errori, il che potrebbe limitare l'ambito delle possibili cause di un problema.
Acquisisci i log di istiod
utilizzando il seguente comando:
kubectl -n istio-system logs $(kubectl -n istio-system get pods -lapp=istiod -oname) > ./LOGS_FOLDER/istiod.log
Acquisisci i log del gateway di Istio Ingress utilizzando il seguente comando:
kubectl -n istio-system logs $(kubectl -n istio-system get pods -lapp=istio-ingressgateway -oname) > /FILE_PATH
Acquisisci i log del proxy Istio utilizzando il seguente comando:
kubectl -n WORKLOAD_NAMESPACE logs POD_NAME -c istio-proxy > ./LOGS_FOLDER/proxy.log
Dump della configurazione di Kubernetes
Queste informazioni consentono agli utenti senza accesso diretto al cluster di visualizzare lo stato di varie risorse e identificare possibili problemi di configurazione. Il seguente comando scrive la configurazione di Kubernetes in un file YAML:
for namespace in "istio-system" "ns1" "ns2"; do kubectl get -oyaml deploy,statefulset,job,ingress,endpoints,configmap,event,secret,service,istio-io > ./LOGS_FOLDER/kubernetes.log; done
Dump del core di Envoy
I core dump di Envoy non sono in genere utili per gli utenti finali, tuttavia l'Assistenza Google potrebbe richiederti di raccoglierli durante la procedura di risoluzione dei problemi, seguendo i passaggi riportati di seguito.
Per configurare il kernel in modo che scriva i core dump di Envoy in una directory scrivibile:
Aggiungi l'etichetta
sidecar.istio.io/enableCoreDump=true
a un pod.Riavvia il pod per abilitare i core dump di Envoy.
Copia il dump del core dal pod.
Configura proxy Envoy
La configurazione proxy di Envoy dettagliata contiene ulteriori dettagli che potrebbero essere utili per la risoluzione dei problemi. Per raccogliere queste informazioni, puoi utilizzare il comando seguente. In questo esempio, ENDPOINT è uno dei seguenti (in ordine di importanza):
- /certs
- /clusters
- /listeners
- /config_dump
- /memory
- /server_info
- /stats/prometheus
- /runtime
kubectl exec -i POD_NAME -c istio-proxy -n NAMESPACE curl 127.0.0.1:15000/ENDPOINT > out.log