Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyiapkan CloudWatch agen untuk mengumpulkan metrik klaster
penting
Jika Anda menginstal Container Insights di EKS klaster Amazon, sebaiknya gunakan EKS add-on Amazon CloudWatch Observability untuk penginstalan, alih-alih menggunakan petunjuk di bagian ini. Untuk informasi dan instruksi selengkapnya, silakan lihat Instal add-on Amazon CloudWatch Observability EKS.
Untuk menyiapkan Wawasan Kontainer guna mengumpulkan metrik-metrik, Anda dapat mengikuti langkah-langkah yang diuraikan di Penyiapan Mulai Cepat untuk Wawasan Kontainer di Amazon EKS dan Kubernetes atau Anda dapat mengikuti langkah-langkah di bagian ini. Pada langkah-langkah berikut, Anda mengatur CloudWatch agen untuk dapat mengumpulkan metrik dari cluster Anda.
Jika Anda menginstal di EKS klaster Amazon dan Anda menggunakan petunjuk di bagian ini pada atau setelah 6 November 2023, Anda menginstal Wawasan Kontainer dengan peningkatan observabilitas untuk Amazon EKS di cluster.
Langkah 1: Buat namespace untuk CloudWatch
Gunakan langkah berikut untuk membuat namespace Kubernetes yang dipanggil. amazon-cloudwatch
CloudWatch Anda dapat melewati langkah ini jika Anda telah membuat namespace ini.
Untuk membuat namespace untuk CloudWatch
-
Masukkan perintah berikut.
kubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/cloudwatch-namespace.yaml
Langkah 2: Membuat sebuah akun layanan di klaster
Gunakan salah satu metode berikut untuk membuat akun layanan untuk CloudWatch agen, jika Anda belum memilikinya.
Gunakan
kubectl
Gunakan
kubeconfig
file
Gunakan kubectl
untuk otentikasi
Untuk digunakan kubectl
untuk membuat akun layanan untuk CloudWatch agen
-
Masukkan perintah berikut.
kubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/cwagent/cwagent-serviceaccount.yaml
Jika Anda tidak mengikuti langkah-langkah sebelumnya, tetapi Anda sudah memiliki akun layanan untuk CloudWatch agen yang ingin Anda gunakan, Anda harus memastikan bahwa ia memiliki aturan berikut. Selain itu, di langkah-langkah selanjutnya dalam instalasi Wawasan Kontainer, Anda juga harus menggunakan nama akun layanan tersebut, bukan cloudwatch-agent
.
rules: - apiGroups: [""] resources: ["pods", "nodes", "endpoints"] verbs: ["list", "watch"] - apiGroups: [ "" ] resources: [ "services" ] verbs: [ "list", "watch" ] - apiGroups: ["apps"] resources: ["replicasets", "daemonsets", "deployments", "statefulsets"] verbs: ["list", "watch"] - apiGroups: ["batch"] resources: ["jobs"] verbs: ["list", "watch"] - apiGroups: [""] resources: ["nodes/proxy"] verbs: ["get"] - apiGroups: [""] resources: ["nodes/stats", "configmaps", "events"] verbs: ["create", "get"] - apiGroups: [""] resources: ["configmaps"] resourceNames: ["cwagent-clusterleader"] verbs: ["get","update"] - nonResourceURLs: ["/metrics"] verbs: ["get", "list", "watch"]
Gunakan kubeconfig
untuk otentikasi
Atau, Anda dapat menggunakan kubeconfig
file untuk otentikasi. Metode ini memungkinkan Anda untuk melewati kebutuhan akan akun layanan b secara langsung menentukan kubeconfig
jalur dalam konfigurasi CloudWatch agen Anda. Ini juga memungkinkan Anda untuk menghapus ketergantungan Anda pada bidang kontrol Kubernetes API untuk otentikasi, menyederhanakan pengaturan Anda dan berpotensi meningkatkan keamanan dengan mengelola otentikasi melalui file kubeconfig Anda.
Untuk menggunakan metode ini, perbarui file konfigurasi CloudWatch agen Anda untuk menentukan jalur ke kubeconfig
file Anda, seperti pada contoh berikut.
{ "logs": { "metrics_collected": { "kubernetes": { "cluster_name": "
YOUR_CLUSTER_NAME
", "enhanced_container_insights": false, "accelerated_compute_metrics": false, "tag_service": false, "kube_config_path": "/path/to/your/kubeconfig" "host_ip": "
HOSTIP
" } } } }
Untuk membuat kubeconfig
file, buat Certificate Signing Request (CSR) untuk admin/{create_your_own_user}
pengguna dengan peran system:masters
Kubernetes. Kemudian tandatangani dengan Certificate Authority (CA) cluster Kubernetes dan buat file tersebut. kubeconfig
Langkah 3: Buat ConfigMap untuk CloudWatch agen
Gunakan langkah-langkah berikut untuk membuat ConfigMap untuk CloudWatch agen.
Untuk membuat ConfigMap untuk CloudWatch agen
-
Unduh ConfigMap YAML ke host
kubectl
klien Anda dengan menjalankan perintah berikut:curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/cwagent/cwagent-configmap-enhanced.yaml
-
Edit YAML file yang diunduh, sebagai berikut:
-
cluster_name – Di bagian
kubernetes
, ganti{{cluster_name}}
dengan nama klaster Anda. Hapus karakter{{}}
. Atau, jika Anda menggunakan EKS klaster Amazon, Anda dapat menghapus"cluster_name"
bidang dan nilainya. Jika Anda melakukannya, CloudWatch agen mendeteksi nama cluster dari EC2 tag Amazon.
-
-
(Opsional) Buat perubahan lebih lanjut ConfigMap berdasarkan persyaratan pemantauan Anda, sebagai berikut:
-
metrics_collection_interval – Di bagian
kubernetes
, Anda dapat menentukan seberapa sering agen mengumpulkan metrik. Bawaannya adalah 60 detik. Interval pengumpulan kadvisor bawaan di kubelet adalah 15 detik, jadi jangan mengatur nilai ini menjadi kurang dari 15 detik. -
endpoint_override - Di
logs
bagian ini, Anda dapat menentukan titik akhir CloudWatch Log jika Anda ingin mengganti titik akhir default. Anda mungkin ingin melakukan ini jika Anda menerbitkan dari cluster di a VPC dan Anda ingin data pergi ke VPC titik akhir. -
force_flush_interval — Di
logs
bagian ini, Anda dapat menentukan interval untuk batching peristiwa log sebelum dipublikasikan ke Log. CloudWatch Bawaannya adalah 5 detik. -
region – Secara bawaan, agen menerbitkan metrik–metrik ke Wilayah tempat simpul pekerja berada. Untuk menggantinyaini, Anda dapat menambahkan sebuah bidang
region
di bagianagent
: misalnya,"region":"us-west-2"
. -
bagian statsd - Jika Anda ingin agen CloudWatch Log juga berjalan sebagai pendengar StatSD di setiap node pekerja klaster Anda, Anda dapat menambahkan
statsd
bagian ke bagianmetrics
tersebut, seperti pada contoh berikut. Untuk informasi tentang pilihan StatsD lainnya untuk bagian ini, silakan lihat Ambil metrik kustom dengan StatSD."metrics": { "metrics_collected": { "statsd": { "service_address":":8125" } } }
Contoh lengkap dari JSON bagian ini adalah sebagai berikut. Jika Anda menggunakan
kubeconfig
file untuk otentikasi, tambahkankube_config_path
parameter untuk menentukan path ke file kubeconfig Anda.{ "agent": { "region": "us-east-1" }, "logs": { "metrics_collected": { "kubernetes": { "cluster_name": "MyCluster", "metrics_collection_interval": 60, "kube_config_path": "
/path/to/your/kubeconfig
" //if using kubeconfig for authentication } }, "force_flush_interval": 5, "endpoint_override": "logs.us-east-1.amazonaws.com" }, "metrics": { "metrics_collected": { "statsd": { "service_address": ":8125" } } } }
-
-
Buat ConfigMap di cluster dengan menjalankan perintah berikut.
kubectl apply -f cwagent-configmap.yaml
Langkah 4: Menyebarkan CloudWatch agen sebagai DaemonSet
Untuk menyelesaikan instalasi CloudWatch agen dan mulai mengumpulkan metrik kontainer, gunakan langkah-langkah berikut.
Untuk menyebarkan CloudWatch agen sebagai DaemonSet
-
-
Jika Anda tidak ingin menggunakan StatsD pada klaster tersebut, Anda harus memasukkan perintah berikut.
kubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/cwagent/cwagent-daemonset.yaml
-
Jika Anda ingin menggunakan StatsD, Anda harus mengikuti langkah-langkah ini:
-
Unduh DaemonSet YAML ke host
kubectl
klien Anda dengan menjalankan perintah berikut.curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/cwagent/cwagent-daemonset.yaml
-
Batalkan komentar di bagian
port
dalam filecwagent-daemonset.yaml
seperti berikut ini:ports: - containerPort: 8125 hostPort: 8125 protocol: UDP
-
Terapkan CloudWatch agen di cluster Anda dengan menjalankan perintah berikut.
kubectl apply -f cwagent-daemonset.yaml
Menyebarkan CloudWatch agen pada node Windows di cluster Anda dengan menjalankan perintah berikut. Pendengar StatSD tidak didukung pada CloudWatch agen di Windows.
kubectl apply -f cwagent-daemonset-windows.yaml
-
-
-
Lakukan validasi bahwa agen di-deploy dengan menjalankan perintah berikut.
kubectl get pods -n amazon-cloudwatch
Saat selesai, CloudWatch agen membuat grup log bernama /aws/containerinsights/
dan mengirimkan peristiwa log kinerja ke grup log ini. Jika Anda juga menyiapkan agen sebagai sebuah pendengar StatsD, maka agen itu juga akan mendengarkan metrik-metrik StatsD pada port 8125 dengan alamat IP simpul tempat pod aplikasi dijadwalkan.Cluster_Name
/performance
Pemecahan Masalah
Jika agen tersebut tidak melakukan deployment dengan benar, coba lakukan hal berikut:
-
Jalankan perintah berikut untuk mendapatkan daftar pod.
kubectl get pods -n amazon-cloudwatch
-
Jalankan perintah berikut dan periksa peristiwa di bagian bawah output.
kubectl describe pod
pod-name
-n amazon-cloudwatch -
Jalankan perintah berikut untuk memeriksa log.
kubectl logs
pod-name
-n amazon-cloudwatch