Mengumpulkan log Mesh Layanan Cloud
Bagian berikut menjelaskan cara mengumpulkan berbagai log Cloud Service Mesh untuk memecahkan masalah atau menghubungi Dukungan Google.
Mengumpulkan log menggunakan alat laporan bug
Cloud Service Mesh menyediakan alat pelaporan bug otomatis yang mengumpulkan log diagnostik dan memungkinkan Anda melampirkan log tersebut ke tiket Dukungan Google.
Sebelum memulai, pastikan konteks kubeconfig Anda sudah ditetapkan ke cluster target.
Verifikasi konteks Anda menggunakan perintah berikut:
kubectl config current-context
Memulai pengumpulan log
Untuk memulai pengumpulan log, jalankan alat laporan bug menggunakan metode berikut berikut:
istioctl bug-report
Mengupload arsip debug Anda
Alat ini membuat arsip log dan konfigurasi mesh Anda pada saat ini. Anda dapat mengekstrak arsip dan menggunakan panduan pemecahan masalah untuk mencoba melakukan pemecahan masalah sendiri. Namun, jika Anda memiliki dukungan paket Google Cloud Anda, Anda dapat menghubungi Dukungan Google Cloud, yang akan memberikan langkah lebih lanjut untuk mengunggah arsip log Anda dengan aman.
Mengumpulkan log Cloud Service Mesh secara manual
Alih-alih menggunakan alat laporan bug Cloud Service Mesh, bagian ini menjelaskan cara mengumpulkan semua log yang relevan secara manual.
Log akses Envoy
Log akses {i>proxy<i} Envoy berisi informasi rinci yang berguna untuk pemecahan masalah. Namun, Anda harus mengaktifkannya dan menetapkan tingkat detail yang benar.
Untuk detail tentang cara menafsirkan konten log, lihat Menafsirkan log Envoy.
Mengaktifkan atau menonaktifkan log Envoy
Untuk mengaktifkan log akses proxy Envoy, konfigurasikan file overlay untuk Cloud Service Mesh dalam cluster atau ConfigMap untuk Cloud Service Mesh terkelola.
Meningkatkan detail logging
Untuk meningkatkan level detail log untuk sementara, gunakan perintah berikut. Setelan ini diurungkan saat pod dibuat ulang.
kubectl -n NAMESPACE exec POD_NAME -c istio-proxy -- curl -X POST http://localhost:15000/logging?level=debug
Untuk menyetel tingkat detail log kembali ke default, gunakan perintah berikut:
kubectl -n NAMESPACE exec POD_NAME -c istio-proxy -- curl -X POST http://localhost:15000/logging?level=info
Menulis log Envoy ke folder
Untuk mengumpulkan log akses proxy Envoy dan menyimpannya dalam folder, gunakan perintah berikut:
kubectl logs -l app=APPLICATION_NAME -c istio-proxy > /FILE_PATH
Lihat Mendapatkan Log Akses Envoy untuk informasi selengkapnya.
Log Kubernetes
Kubernetes menghasilkan beberapa log yang berisi informasi tentang perilaku
Komponen Istio, seperti istiod
, Gateway Ingress, dan proxy. Anda dapat meninjau
log ini untuk menemukan {i>error<i}, yang dapat mempersempit
ruang lingkup penyebab masalah.
Ambil log istiod
menggunakan perintah berikut:
kubectl -n istio-system logs $(kubectl -n istio-system get pods -lapp=istiod -oname) > ./LOGS_FOLDER/istiod.log
Ambil log Gateway Istio Ingress menggunakan perintah berikut:
kubectl -n istio-system logs $(kubectl -n istio-system get pods -lapp=istio-ingressgateway -oname) > /FILE_PATH
Ambil log Proxy Istio menggunakan perintah berikut:
kubectl -n WORKLOAD_NAMESPACE logs POD_NAME -c istio-proxy > ./LOGS_FOLDER/proxy.log
Dump konfigurasi Kubernetes
Informasi ini memungkinkan pengguna yang tidak memiliki akses langsung ke cluster untuk melihat status berbagai resource dan mengidentifikasi kemungkinan masalah konfigurasi. Perintah berikut menulis konfigurasi Kubernetes ke file 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
Dump inti envoy
dump inti Envoy biasanya tidak berguna bagi pengguna akhir, tetapi Dukungan Google mungkin meminta Anda mengumpulkannya sebagai bagian dari proses pemecahan masalah, menggunakan mengikuti langkah-langkah berikut.
Untuk mengonfigurasi kernel agar menulis dump inti Envoy ke direktori yang dapat ditulis:
Tambahkan label
sidecar.istio.io/enableCoreDump=true
ke pod.Mulai ulang pod untuk mengaktifkan core dump Envoy.
Salin dump inti dari pod.
Mengonfigurasi proxy Envoy
Konfigurasi proxy Envoy yang terperinci berisi detail tambahan yang mungkin berguna untuk tujuan pemecahan masalah. Anda dapat mengumpulkan informasi ini menggunakan perintah berikut. Dalam contoh ini, ENDPOINT adalah salah satu dari yang berikut (ditunjukkan dalam urutan kepentingan):
- /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