Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pemecahan masalah metrik Prometheus di klaster Amazon dan Kubernetes EKS
Bagian ini memberikan bantuan untuk memecahkan masalah penyiapan metrik Prometheus Anda di Amazon dan klaster Kubernetes. EKS
Langkah-langkah pemecahan masalah umum di Amazon EKS
Untuk mengonfirmasi bahwa CloudWatch agen sedang berjalan, masukkan perintah berikut.
kubectl get pod -n amazon-cloudwatch
Outputnya harus menyertakan sebuah baris dengan cwagent-prometheus-
pada kolom id
NAME
dan Running
dalam STATUS
column.
Untuk menampilkan detail tentang pod yang sedang berjalan, Anda harus memasukkan perintah berikut. Ganti pod-name
dengan nama lengkap pod Anda yang memiliki nama yang dimulai dengancw-agent-prometheus
.
kubectl describe pod
pod-name
-n amazon-cloudwatch
Jika Anda telah menginstal CloudWatch Wawasan Kontainer, Anda dapat menggunakan Wawasan CloudWatch Log untuk menanyakan log dari CloudWatch agen yang mengumpulkan metrik Prometheus.
Cara menjalankan kueri terhadap log aplikasi
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. -
Di panel navigasi, pilih Wawasan CloudWatch Log.
-
Pilih grup log untuk log aplikasi, /aws/containerights/
cluster-name
/aplikasi -
Ganti persamaan pencarian dengan kueri berikut, dan pilih Jalankan kueri
fields ispresent(
kubernetes.pod_name
) as haskubernetes_pod_name, stream, kubernetes.pod_name, log | filter haskubernetes_pod_name andkubernetes.pod_name
like /cwagent-prometheus
Anda juga dapat mengonfirmasi bahwa metrik dan metadata Prometheus sedang dicerna sebagai peristiwa Log. CloudWatch
Cara mengonfirmasi bahwa data Prometheus sedang diserap
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. -
Di panel navigasi, pilih Wawasan CloudWatch Log.
-
Pilih /aws/containerights/
cluster-name
/prometheus -
Ganti persamaan pencarian dengan kueri berikut, dan pilih Jalankan kueri
fields @timestamp, @message | sort @timestamp desc | limit 20
Mencatat log metrik-metrik Prometheus yang dibuang
Rilis ini tidak akan mengumpulkan metrik-metrik Prometheus yang bertipe histogram. Anda dapat menggunakan CloudWatch agen untuk memeriksa apakah ada metrik Prometheus yang dijatuhkan karena merupakan metrik histogram. Anda juga dapat mencatat daftar 500 metrik Prometheus pertama yang dijatuhkan dan tidak dikirim CloudWatch karena merupakan metrik histogram.
Untuk melihat apakah ada metrik yang dibuang, masukkan perintah berikut:
kubectl logs -l "app=cwagent-prometheus" -n amazon-cloudwatch --tail=-1
Jika ada metrik yang dibuang, maka Anda akan melihat garis-garis berikut di file /opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log
.
I! Drop Prometheus metrics with unsupported types. Only Gauge, Counter and Summary are supported. I! Please enable CWAgent debug mode to view the first 500 dropped metrics
Jika Anda melihat garis-garis tersebut dan ingin mengetahui metrik apa yang dibuang, lakukan langkah-langkah berikut ini.
Cara mencatat log daftar metrik Prometheus yang dibuang
-
Ubah CloudWatch agen ke mode debug dengan menambahkan baris tebal berikut ke
prometheus-k8s.yaml
fileprometheus-eks.yaml
atau Anda, dan simpan file.{ "agent": { "debug": true },
Bagian file ini akan terlihat seperti berikut ini:
cwagentconfig.json: | { "agent": { "debug": true }, "logs": { "metrics_collected": {
-
Instal ulang CloudWatch agen untuk mengaktifkan mode debug dengan memasukkan perintah berikut:
kubectl delete deployment cwagent-prometheus -n amazon-cloudwatch kubectl apply -f prometheus.yaml
Metrik yang dijatuhkan dicatat di pod CloudWatch agen.
-
Untuk mengambil log dari pod CloudWatch agen, masukkan perintah berikut:
kubectl logs -l "app=cwagent-prometheus" -n amazon-cloudwatch --tail=-1
Atau, jika Anda menginstal logging Container Insights Fluentd, log juga disimpan di grup log Log CloudWatch /aws/containerinsights/
cluster_name
/aplikasi.Untuk melakukan kueri pada log ini, Anda dapat mengikuti langkah-langkah kueri aplikasi log in Langkah-langkah pemecahan masalah umum di Amazon EKS.
Di mana metrik Prometheus dicerna sebagai peristiwa log Log? CloudWatch
CloudWatch Agen membuat aliran log untuk setiap konfigurasi pekerjaan scrape Prometheus. Sebagai contoh, di dalam file prometheus-eks.yaml
dan file prometheus-k8s.yaml
, garis job_name:
'kubernetes-pod-appmesh-envoy'
melakukan scraping terhadap metrik-metrik App Mesh. Target Prometheus ditentukan sebagai kubernetes-pod-appmesh-envoy
. Jadi semua metrik App Mesh Prometheus dicerna CloudWatch sebagai peristiwa Log di aliran log di bawah grup log bernama /AWS/ContainerInsights/Cluster-Name/Prometheus. kubernetes-pod-appmesh-envoy
Saya tidak melihat metrik Amazon EKS atau Kubernetes Prometheus dalam metrik CloudWatch
Pertama, Anda harus memastikan bahwa metrik-metrik Prometheus diserap sebagai peristiwa log dalam grup log /aws/containerinsights/cluster-name/Prometheus. Gunakan informasi dalam Di mana metrik Prometheus dicerna sebagai peristiwa log Log? CloudWatch untuk membantu Anda memeriksa log stream target. Jika log stream tidak dibuat atau tidak ada peristiwa log baru di log stream, periksa hal berikut:
-
Periksa apakah titik akhir pengekspor metrik Prometheus sudah diatur dengan benar
-
Periksa apakah konfigurasi pengikisan Prometheus di
config map: cwagent-prometheus
bagian file agen sudah benar. CloudWatch YAML Konfigurasinya harus sama dengan konfigurasi yang akan digunakan dalam file konfigurasi Prometheus. Untuk informasi selengkapnya, silakan lihat <scrape_config>dalam dokumentasi Prometheus.
Jika metrik Prometheus dicerna sebagai peristiwa log dengan benar, periksa apakah setelan format metrik yang disematkan ditambahkan ke dalam peristiwa log untuk menghasilkan metrik. CloudWatch
"CloudWatchMetrics":[ { "Metrics":[ { "Name":"envoy_http_downstream_cx_destroy_remote_active_rq" } ], "Dimensions":[ [ "ClusterName", "Namespace" ] ], "Namespace":"ContainerInsights/Prometheus" } ],
Untuk informasi selengkapnya tentang format metrik tersemat, silakan lihat Spesifikasi: Format metrik tersemat .
Jika tidak ada format metrik yang disematkan dalam peristiwa log, periksa apakah metric_declaration
bagian tersebut dikonfigurasi dengan benar di config
map: prometheus-cwagentconfig
bagian YAML file instalasi CloudWatch agen. Untuk informasi selengkapnya, lihat Tutorial untuk menambahkan target scrape Prometheus baru: metrik Prometheus Server API.