Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan CloudWatch agen untuk mengirim log format metrik yang disematkan
Untuk menggunakan metode ini, pertama-tama instal CloudWatch agen untuk layanan yang ingin Anda kirimi log format metrik tertanam, dan kemudian Anda dapat mulai mengirim acara.
CloudWatch Agen harus versi 1.230621.0 atau yang lebih baru.
catatan
Anda tidak perlu menginstal CloudWatch agen untuk mengirim log dari fungsi Lambda.
Batas waktu fungsi Lambda tidak akan ditangani secara otomatis. Hal ini berarti bahwa jika fungsi Anda mengalami habis waktu sebelum metrik terkuras, maka metrik untuk invokasi tersebut tidak akan ditangkap.
Memasang CloudWatch agen
Instal CloudWatch agen untuk setiap layanan yang mengirim log format metrik tertanam.
Memasang CloudWatch agen di EC2
Pertama, instal CloudWatch agen pada instance. Untuk informasi selengkapnya, lihat Instalasi CloudWatch agen.
Setelah Anda selesai melakukan instalasi agen tersebut, konfigurasi agen untuk mendengarkan di port UDP atau TCP untuk log format metrik tersemat. Berikut ini adalah contoh konfigurasi yang mendengarkan pada soket bawaan tcp:25888
. Untuk informasi selengkapnya tentang konfigurasi agen, silakan lihat Buat atau edit file konfigurasi CloudWatch agen secara manual.
{ "logs": { "metrics_collected": { "emf": { } } } }
Menginstal CloudWatch agen di Amazon ECS
Cara termudah untuk menyebarkan CloudWatch agen di Amazon ECS adalah menjalankannya sebagai sespan, mendefinisikannya dalam definisi tugas yang sama dengan aplikasi Anda.
Buat file konfigurasi agen
Buat file konfigurasi CloudWatch agen Anda secara lokal. Dalam contoh ini, jalur file relatif adalah amazon-cloudwatch-agent.json
.
Untuk informasi selengkapnya tentang konfigurasi agen, silakan lihat Buat atau edit file konfigurasi CloudWatch agen secara manual.
{ "logs": { "metrics_collected": { "emf": { } } } }
Mendorong konfigurasi ke SSM Parameter Store
Masukkan perintah berikut untuk mendorong file konfigurasi CloudWatch agen ke Parameter Store AWS Systems Manager (SSM).
aws ssm put-parameter \ --name "cwagentconfig" \ --type "String" \ --value "`cat amazon-cloudwatch-agent.json`" \ --region "{{region}}"
Mengonfigurasi definisi tugas
Konfigurasikan definisi tugas Anda untuk menggunakan CloudWatch Agen dan mengekspos port TCP atau UDP. Definisi tugas sampel sederhana yang harus Anda gunakan bergantung pada mode jaringan Anda.
Perhatikan bahwa webapp
menentukan variabel lingkungan AWS_EMF_AGENT_ENDPOINT
. Hal ini digunakan oleh pustaka dan harus menunjuk titik akhir yang didengar oleh agen. Selain itu, cwagent
menentukan CW_CONFIG_CONTENT
sebagai parameter "valueFrom" yang menunjuk ke konfigurasi SSM yang Anda buat pada langkah sebelumnya.
Bagian ini memuat satu contoh untuk mode jembatan dan satu contoh untuk mode host atau awsvpc. Untuk contoh selengkapnya tentang cara mengonfigurasi CloudWatch agen di Amazon ECS, lihat repositori sampel Github
Berikut ini adalah contoh untuk mode jembatan. Ketika mengaktifkan jaringan mode jembatan, agen harus ditautkan ke aplikasi Anda dengan menggunakan parameter links
dan harus ditangani dengan menggunakan nama kontainer.
{ "containerDefinitions": [ { "name": "webapp", "links": [ "cwagent" ], "image": "my-org/web-app:latest", "memory": 256, "cpu": 256, "environment": [{ "name": "AWS_EMF_AGENT_ENDPOINT", "value": "tcp://cwagent:25888" }], }, { "name": "cwagent", "mountPoints": [], "image": "public.ecr.aws/cloudwatch-agent/cloudwatch-agent:latest", "memory": 256, "cpu": 256, "portMappings": [{ "protocol": "tcp", "containerPort": 25888 }], "environment": [{ "name": "CW_CONFIG_CONTENT", "valueFrom": "cwagentconfig" }], } ], }
Berikut ini adalah contoh untuk mode host atau mode awsvpc. Ketika menjalankan mode jaringan ini, agen dapat dialamatkan ke localhost
.
{ "containerDefinitions": [ { "name": "webapp", "image": "my-org/web-app:latest", "memory": 256, "cpu": 256, "environment": [{ "name": "AWS_EMF_AGENT_ENDPOINT", "value": "tcp://127.0.0.1:25888" }], }, { "name": "cwagent", "mountPoints": [], "image": "public.ecr.aws/cloudwatch-agent/cloudwatch-agent:latest", "memory": 256, "cpu": 256, "portMappings": [{ "protocol": "tcp", "containerPort": 25888 }], "environment": [{ "name": "CW_CONFIG_CONTENT", "valueFrom": "cwagentconfig" }], } ], }
catatan
Dalam mode awsvpc, Anda harus memberikan alamat IP publik ke VPC (hanya Fargate), mengatur gateway NAT, atau mengatur titik akhir VPC Log. CloudWatch Untuk informasi selengkapnya tentang menyiapkan sebuah NAT, silakan lihat NAT Gateway. Untuk informasi selengkapnya tentang menyiapkan titik akhir VPC CloudWatch Log, lihat Menggunakan CloudWatch Log dengan Titik Akhir VPC Antarmuka.
Berikut ini adalah contoh tentang cara menetapkan alamat IP publik untuk sebuah tugas yang menggunakan jenis peluncuran Fargate.
aws ecs run-task \ --cluster {{cluster-name}} \ --task-definition cwagent-fargate \ --region {{region}} \ --launch-type FARGATE \ --network-configuration "awsvpcConfiguration={subnets=[{{subnetId}}],securityGroups=[{{sgId}}],assignPublicIp=ENABLED}"
Memastikan izin
Memastikan peran IAM yang melaksanakan tugas Anda memiliki izin untuk membaca dari SSM Parameter Store. Anda dapat menambahkan izin ini dengan melampirkan kebijakan AmazonSSM ReadOnlyAccess. Untuk melakukan hal itu, masukkan perintah berikut.
aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonSSMReadOnlyAccess \ --role-name CWAgentECSExecutionRole
Menginstal CloudWatch agen di Amazon EKS
Bagian dari proses ini dapat dilewati jika Anda telah menginstal CloudWatch Wawasan Kontainer di cluster ini.
Izin
Jika Anda belum melakukan instalasi Wawasan Kontainer, maka pastikan terlebih dahulu bahwa simpul Amazon EKS Anda memiliki izin IAM yang sesuai. Mereka harus memiliki CloudWatchAgentServerPolicy terlampir. Untuk informasi selengkapnya, lihat Memverifikasi prasyarat.
Buat ConfigMap
Buat ConfigMap untuk agen. Mereka ConfigMap juga memberitahu agen untuk mendengarkan pada port TCP atau UDP. Gunakan yang berikut ini ConfigMap.
# cwagent-emf-configmap.yaml apiVersion: v1 data: # Any changes here must not break the JSON format cwagentconfig.json: | { "agent": { "omit_hostname": true }, "logs": { "metrics_collected": { "emf": { } } } } kind: ConfigMap metadata: name: cwagentemfconfig namespace: default
Jika Anda telah menginstal Container Insights, tambahkan "emf": { }
baris berikut ke baris yang ada ConfigMap.
Terapkan ConfigMap
Masukkan perintah berikut untuk menerapkan ConfigMap.
kubectl apply -f cwagent-emf-configmap.yaml
Terapkan agen
Untuk menerapkan CloudWatch agen sebagai sespan, tambahkan agen ke definisi pod Anda, seperti pada contoh berikut.
apiVersion: v1 kind: Pod metadata: name: myapp namespace: default spec: containers: # Your container definitions go here - name: web-app image: my-org/web-app:latest # CloudWatch Agent configuration - name: cloudwatch-agent image: public.ecr.aws/cloudwatch-agent/cloudwatch-agent:latest imagePullPolicy: Always resources: limits: cpu: 200m memory: 100Mi requests: cpu: 200m memory: 100Mi volumeMounts: - name: cwagentconfig mountPath: /etc/cwagentconfig ports: # this should match the port configured in the ConfigMap - protocol: TCP hostPort: 25888 containerPort: 25888 volumes: - name: cwagentconfig configMap: name: cwagentemfconfig
Menggunakan CloudWatch agen untuk mengirim log format metrik yang disematkan
Ketika Anda telah menginstal dan menjalankan CloudWatch agen, Anda dapat mengirim log format metrik yang disematkan melalui TCP atau UDP. Ada dua persyaratan ketika mengirimkan log melalui agen:
-
Log harus memuat sebuah kunci
LogGroupName
yang memberi tahu agen tentang grup log yang harus digunakan. -
Setiap peristiwa log harus berada dalam satu baris. Dengan kata lain, sebuah peristiwa log tidak dapat berisi karakter baris baru (\n).
Peristiwa log juga harus mematuhi spesifikasi format metrik tersemat. Untuk informasi selengkapnya, lihat Spesifikasi: Format metrik tersemat .
Jika Anda berencana untuk membuat alarm-alarm pada metrik yang telah dibuat dengan menggunakan format metrik tersemat, silakan lihat Menyetel alarm pada metrik-metrik yang dibuat dengan format metrik tersemat untuk rekomendasinya.
Berikut ini adalah contoh pengiriman peristiwa log secara manual dari bash shell Linux. Sebagai gantinya, Anda dapat menggunakan antarmuka soket UDP yang disediakan oleh bahasa pemrograman yang Anda kehendaki.
echo '{"_aws":{"Timestamp":1574109732004,"LogGroupName":"Foo","CloudWatchMetrics":[{"Namespace":"MyApp","Dimensions":[["Operation"]],"Metrics":[{"Name":"ProcessingLatency","Unit":"Milliseconds","StorageResolution":60}]}]},"Operation":"Aggregator","ProcessingLatency":100}' \ > /dev/udp/0.0.0.0/25888
catatan
Dengan format metrik tersemat, Anda dapat melacak pemrosesan log EMF berdasarkan metrik yang diterbitkan di ruang nama AWS/Logs
akun Anda. Hal ini dapat digunakan untuk melacak pembuatan metrik yang gagal dari EMF, serta apakah kegagalan terjadi diakibatkan oleh penguraian atau validasi. Untuk detail selengkapnya lihat Pemantauan dengan CloudWatch metrik.