As seções a seguir explicam como coletar os diversos registros do Anthos Service Mesh para solucionar problemas ou entrar em contato com o Suporte do Google.
Coletar registros usando a ferramenta de relatórios de bugs
O Anthos Service Mesh oferece uma ferramenta automatizada de relatórios de bugs que coleta os registros de diagnóstico relevantes e permite que você anexe os registros a um tíquete de suporte do Google.
Antes de começar, verifique se o contexto do kubeconfig está definido como o cluster de destino.
Verifique seu contexto usando o seguinte comando:
kubectl config current-context
O procedimento para fazer o download e usar a ferramenta de relatório de bugs depende da versão do Anthos Service Mesh que você usa. Consulte a tabela a seguir para determinar se a versão atual do
istioctl
é suficiente ou se é necessário fazer o download de uma versão autônoma da ferramenta.
Versão do Anthos Service Mesh/Istio | Ferramenta de relatórios de bugs |
---|---|
Anthos Service Mesh 1.7.* e mais recente | istioctl bug-report |
Anthos Service Mesh 1.6.* | Independente |
Anthos Service Mesh 1.5.* | Independente |
Istio 1.7.* | Independente |
Istio 1.6.* | Independente |
Istio 1.5.* | Independente |
Para fazer o download da versão independente da ferramenta de relatório do bug, use as seguintes etapas:
Escolha uma distribuição na lista que corresponde ao seu ambiente do SO:
- https://storage.googleapis.com/gke-release/asm/bug-report_darwin_amd64-v2
- https://storage.googleapis.com/gke-release/asm/bug-report_linux_386-v2
- https://storage.googleapis.com/gke-release/asm/bug-report_linux_amd64-v2
- https://storage.googleapis.com/gke-release/asm/bug-report_linux_arm-v2
Use
curl
para fazer o download da distribuição escolhida, por exemplo:curl -LO https://storage.googleapis.com/gke-release/asm/bug-report_darwin_amd64-v1
Defina permissões no binário da ferramenta de relatórios de bugs para permitir que ele seja executado. Por exemplo:
chmod +x bug-report_darwin_amd64-v1
Iniciar a coleta de registros
Para iniciar a coleta de registros, execute a ferramenta de relatórios de bugs e transmita o
arquivo de configuração como um parâmetro. Há mais opções ambiente de execução disponíveis para
substituir a configuração, se necessário. Elas podem ser visualizadas usando a opção
--help
.
Se sua versão do Anthos Service Mesh já tiver a ferramenta de relatórios de bugs
em istioctl
, use o seguinte comando:
istioctl bug-report
Se você precisar da ferramenta autônoma de relatórios de bugs, renomeie a ferramenta e execute-a como os seguintes comandos que usam a distribuição Darwin como exemplo:
mv ./bug-report_darwin_amd64-v1 ./bug-report
./bug-report
Fazer upload do arquivo de depuração
Coloque seu arquivo de registros de depuração no diretório de trabalho da ferramenta de relatórios de bugs. É possível descompactar o arquivo e usar os guias para tentar realizar a solução de problemas por conta própria. No entanto, se você tiver um pacote de suporte, entre em contato com o Suporte do Google Cloud, que fornecerá outras etapas para fazer upload do arquivo de registros com segurança.
Coletar manualmente os registros do Anthos Service Mesh
Em vez de usar a ferramenta de relatório de bugs do Anthos Service Mesh, veja nesta seção como coletar manualmente todos os registros relevantes.
Registros de acesso do Envoy
Os registros de acesso do proxy Envoy contêm informações detalhadas que são úteis para solução de problemas. No entanto, você precisa ativá-los e definir o nível de detalhe correto.
Para detalhes sobre como interpretar o conteúdo do registro, consulte Interpretar registros do Envoy.
Ativar ou desativar registros do Envoy
Para ativar os registros de acesso do proxy Envoy, configure um arquivo de sobreposição para o Anthos Service Mesh no cluster ou um ConfigMap para o Anthos Service Mesh gerenciado.
Aumentar detalhes da geração de registros
Para aumentar temporariamente o nível de detalhes dos registros, use o comando a seguir. Essa configuração é desfeita quando o pod é recriado.
kubectl -n NAMESPACE exec POD_NAME -c istio-proxy -- curl -X POST http://localhost:15000/logging?level=info
Gravar registros do Envoy em uma pasta
Para coletar os registros de acesso do proxy Envoy e armazená-los em uma pasta, use o seguinte comando:
kubectl logs -l app=APPLICATION_NAME -c istio-proxy > /FILE_PATH
Consulte Como conseguir registros de acesso do Envoy para mais informações.
Registros do Kubernetes
O Kubernetes gera vários registros com informações sobre o comportamento dos componentes do Istiod, como o istiod
, o gateway de Entrada e os proxies. Analise esses
registros em busca de erros, o que pode restringir o escopo das possíveis causas de um problema.
Capture registros istiod
usando o seguinte comando:
kubectl -n istio-system logs $(kubectl -n istio-system get pods -lapp=istiod -oname) > ./LOGS_FOLDER/istiod.log
Capture os registros do Gateway de entrada do Istio usando o seguinte comando:
kubectl -n istio-system logs $(kubectl -n istio-system get pods -lapp=istio-ingressgateway -oname) > /FILE_PATH
Capture os registros do Istio Proxy usando o seguinte comando:
kubectl -n WORKLOAD_NAMESPACE logs POD_NAME -c istio-proxy > ./LOGS_FOLDER/proxy.log
Dump de configuração do Kubernetes
Essas informações permitem que usuários sem acesso direto ao cluster visualizem o estado de vários recursos e identifiquem possíveis problemas de configuração. O comando abaixo grava a configuração do Kubernetes em um arquivo 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 de núcleo Envoy
Os dumps do núcleo Envoy normalmente não são úteis para os usuários finais. No entanto, o Suporte do Google pode solicitar que você os colete como parte do processo de solução de problemas, usando as etapas a seguir.
Para configurar o kernel para gravar despejos de núcleo do Envoy em um diretório gravável:
Adicione o rótulo
sidecar.istio.io/enableCoreDump=true
a um pod.Reinicie o pod para ativar o despejo de núcleo do Envoy.
Copie o despejo de núcleo fora do pod.
Configuração de proxy do Envoy
A configuração detalhada do proxy Envoy contém outros detalhes que podem ser úteis para fins de solução de problemas. É possível coletar essas informações usando o seguinte comando. Neste exemplo, ENDPOINT é um dos seguintes (mostrados em ordem de importância):
- /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