Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pemecahan masalah dengan Amazon ECS Action Log
Log Tindakan membantu Anda mendiagnosis masalah dengan memberikan catatan terperinci tentang operasi yang diprakarsai layanan Amazon ECS. Setiap entri log berisi stempel waktu, tingkat log, nama acara, dan payload detail dengan konteks tentang apa yang terjadi dan mengapa. Topik ini mencakup skenario pemecahan masalah umum dan menyediakan kueri Logs Insights yang siap CloudWatch digunakan.
Memahami Tingkat Log
Action Log menggunakan tiga level log untuk menunjukkan tingkat keparahan setiap peristiwa:
INFO-
Operasi normal seperti deployment yang dimulai, tugas yang diluncurkan, atau sumber daya yang disediakan. Peristiwa ini menunjukkan bahwa Amazon ECS melakukan tindakan seperti yang diharapkan.
WARN-
Non-fatal masalah yang mungkin perlu diperhatikan, seperti upaya coba lagi atau kendala kapasitas. Amazon ECS terus membuat progres, tetapi operasinya mungkin memakan waktu lebih lama dari yang diharapkan.
ERROR-
Kegagalan yang memerlukan tindakan, seperti deployment yang gagal, kesalahan penyediaan, atau pemulaian tugas terganggu. Tinjau peristiwa-peristiwa ini untuk mengidentifikasi akar penyebab dan mengambil tindakan korektif.
Tip
Mulailah dengan memfilter ERROR atau WARN mencatat level untuk mengidentifikasi masalah dengan cepat. Anda kemudian dapat memperluas pencarian Anda ke INFO acara untuk konteks tambahan.
Men-debug penerapan layanan yang gagal
Gejala
Penerapan macet dalam proses atau diputar kembali secara otomatis.
Apa yang harus dicari
Filter untuk ERROR log yang eventName berisiDEPLOYMENT. Periksa detail payload untuk ARN penerapan, alasan status, dan jumlah tugas yang gagal.
Contoh berikut menunjukkan kegagalan penerapan di mana tidak ada kandidat rollback yang tersedia:
{ "resourceArn": "arn:aws:ecs:us-east-1:111122223333:cluster/my-cluster", "actionSourceId": "service/my-cluster/my-service", "logLevel": "ERROR", "eventTimestamp": 1784573730986, "detail": { "statusReason": "No rollback candidate was found to run the rollback.", "serviceDeploymentArn": "arn:aws:ecs:us-east-1:111122223333:service-deployment/my-cluster/my-service/abc123def456", "status": "FAILED", "eventName": "SERVICE_DEPLOYMENT_ROLLBACK_FAILED" } }
Resolusi
Periksa detail.statusReason bidang untuk mengidentifikasi mengapa tugas gagal. Gunakan kueri Log CloudWatch s Insights berikut untuk menemukan semua kesalahan penerapan:
fields @timestamp, detail.statusReason | filter logLevel = "ERROR" and detail.deploymentArn like /my-cluster\/my-service/ | sort @timestamp desc | limit 20
Mendiagnosis masalah daemon terkelola
Gejala
Daemon tidak dimulai pada instance atau penerapan daemon macet.
Apa yang harus dicari
Filter log oleh daemon ARN untuk menemukan peristiwa yang terkait dengan daemon Anda. Anda juga dapat memfilter logLevel untuk mempersempit hasil menjadi peringatan atau kesalahan.
Contoh berikut menunjukkan tugas daemon yang gagal dimulai karena memori yang tidak mencukupi pada instance target:
{ "timestamp": 1719500050000, "logLevel": "WARN", "account": "123456789012", "region": "us-east-1", "resourceArn": "arn:aws:ecs:us-east-1:123456789012:cluster/my-cluster", "actionSourceId": "arn:aws:ecs:us-east-1:123456789012:daemon/my-cluster/my-logging-daemon", "eventName": "DAEMON_TASK_START_IMPAIRED", "detail": { "statusReason": "RESOURCE:MEMORY - Unable to place daemon task on container instance: insufficient memory", "containerInstanceArn": "arn:aws:ecs:us-east-1:123456789012:container-instance/my-cluster/a1b2c3d4" } }
Resolusi
Verifikasi bahwa instance target memiliki sumber daya yang cukup untuk menjalankan tugas daemon. Jika instans menguras tenaga, daemon mungkin tidak dimulai sampai instans baru tersedia. Gunakan kueri berikut untuk memfilter peristiwa untuk daemon tertentu:
fields @timestamp, logLevel, detail.statusReason | filter actionSourceId like /my-logging-daemon/ | filter logLevel in ["ERROR", "WARN"] | sort @timestamp desc | limit 20
Memahami alasan penghentian tugas daemon
Gejala
Tugas Daemon berhenti secara tak terduga.
Apa yang harus dicari
Filter untuk WARN dan ERROR log yang berisi detail kegagalan tugas daemon. Bidang berikut dalam detail payload memberikan informasi tentang mengapa tugas daemon berhenti:
detail.stopCode-
Kode yang dapat dibaca mesin yang mengkategorikan alasan penghentian tugas.
detail.statusReason-
Deskripsi yang dapat dibaca manusia tentang mengapa tugas berhenti. Bidang ini tidak ada di semua entri log.
detail.containerStoppedReason-
Konteks tambahan tentang wadah tertentu yang menyebabkan tugas berhenti.
Untuk daftar lengkap kode penghentian tugas dan deskripsinya, lihatPesan kesalahan tugas yang dihentikan Amazon ECS.
catatan
Penghentian tugas daemon yang diharapkan, sepertiUserInitiated, disaring dari Log Aksi. Anda hanya melihat penghentian tugas daemon yang tidak terduga atau terkait kesalahan.
Kueri Log CloudWatch s Insights yang berguna
Gunakan kueri CloudWatch Logs Insights berikut untuk menyelidiki masalah umum dengan layanan Amazon ECS Anda.
Semua kesalahan dalam satu jam terakhir
fields @timestamp, logLevel, eventName, detail.statusReason | filter logLevel = "ERROR" | sort @timestamp desc | limit 50
catatan
Bid detail.statusReason ang tidak ada di semua entri log. Jika bidang kosong di hasil Anda, gunakan bidang eventName dan bidang lainnya dalam detail payload untuk konteks.
Acara untuk layanan tertentu
fields @timestamp, logLevel, detail.statusReason | filter @message like /my-service/ | sort @timestamp desc | limit 50
Garis waktu penerapan untuk penerapan tertentu
fields @timestamp, logLevel, detail.statusReason | filter detail.deploymentArn like /my-cluster\/my-service\/abc123/ | sort @timestamp asc
Kegagalan tugas Daemon dikelompokkan berdasarkan alasan
filter logLevel = "ERROR" and detail.stopCode != "" | stats count(*) as failureCount by detail.stopCode, detail.statusReason | sort failureCount desc | limit 20