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
Bagian ini menjelaskan cara menginstal dan menggunakan CloudWatch agen. Bagian pertama dari bagian ini menjelaskan cara menginstal CloudWatch agen. Bagian kedua dari bagian ini menjelaskan cara menggunakan CloudWatch agen untuk mengirim log format metrik yang disematkan. Jika Anda ingin menggunakan metode ini, Anda harus menginstal CloudWatch agen untuk Layanan AWS Anda ingin mengirim log format metrik yang disematkan dari. 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 pada EC2
Pertama, instal CloudWatch agen pada instance. Untuk informasi selengkapnya, lihat Instal CloudWatch agen.
Setelah Anda menginstal agen, konfigurasikan agen untuk mendengarkan pada TCP port UDP atau untuk log format metrik yang disematkan. 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": { } } } }
Dorong konfigurasi ke SSM Parameter Store
Masukkan perintah berikut untuk mendorong file konfigurasi CloudWatch agen ke AWS Systems Manager (SSM) Parameter Store.
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 UDP port TCP atau. 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 SSM konfigurasi 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 AmazonECS, 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 (hanya VPC Fargate), mengatur NAT gateway, atau mengatur titik akhir Log. CloudWatch VPC Untuk informasi selengkapnya tentang pengaturanNAT, lihat NATGateway. Untuk informasi selengkapnya tentang menyiapkan VPC titik akhir CloudWatch Log, lihat Menggunakan CloudWatch Log dengan Titik VPC Akhir 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
Pastikan IAM peran yang menjalankan tugas Anda memiliki izin untuk membaca dari SSM Parameter Store. Anda dapat menambahkan izin ini dengan melampirkan mazonSSMRead OnlyAccess kebijakan A. 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 menginstal Container Insights, pastikan terlebih dahulu bahwa EKS node Amazon Anda memiliki IAM izin yang sesuai. Mereka harus memiliki CloudWatchAgentServerPolicy terlampir. Untuk informasi selengkapnya, lihat Memverifikasi prasyarat untuk Wawasan Kontainer di CloudWatch.
Buat ConfigMap
Buat ConfigMap untuk agen. Mereka ConfigMap juga memberi tahu agen untuk mendengarkan di UDP port TCP atau. 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 ke atas TCP atauUDP. 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 UDP soket yang disediakan oleh bahasa pemrograman pilihan Anda.
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 yang disematkan, Anda dapat melacak pemrosesan EMF log berdasarkan metrik yang dipublikasikan di AWS/Logs
namespace akun Anda. Ini dapat digunakan untuk melacak pembuatan metrik yang gagalEMF, serta apakah kegagalan terjadi karena penguraian atau validasi. Untuk detail selengkapnya lihat Pemantauan dengan CloudWatch metrik.