Troubleshooting
Tujuan
Memperbaiki kegagalan operasional tanpa melemahkan keamanan atau menganggap sehat layanan yang tidak sehat.
Prasyarat
- Akses log service dan endpoint health.
- Snapshot/backup valid tersedia sebelum tindakan destruktif.
- Kredensial produksi tidak pernah dicetak ke log publik.
Kode error umum
400— payload atauContent-Typesalah; perbaiki permintaan.401— autentikasi gagal; periksa token dan tenant, bukan menonaktifkan kontrol akses.403— otorisasi/role ditolak; periksa role dan origin allowlist.404— resource, path, atau endpoint tidak tersedia; cek status fitur.409— konflik state atau duplicate; ambil state terbaru atau pakai idempotency key sama.413— body melebihi limit; kecilkan payload atau naikkan batas sesuai kebijakan.429— rate limit; hormatiRetry-Afterdan gunakan backoff.500— error internal; korelasikan request ID dengan log service.501— operasi belum didukung; jangan fallback diam-diam ke jalur lain yang mengubah arti permintaan.
Health, readiness, dan startup
- Baca log service asli untuk alasan crash; jangan menganggap container hidup = sehat.
- Periksa apakah service menyediakan health/readiness endpoint; jika tidak, jangan klaim sehat.
- Konfirmasi seluruh variabel environment terisi dan kredensial database konsisten satu sumber.
- Periksa konflik port-sumber pada mapping Compose; diagnosis dari log service.
Backup dan restore
- Buat dan uji restore secara berkala di lingkungan terpisah; backup tanpa restore teruji bukan perlindungan.
- Dokumentasikan prosedur restore lengkap, termasuk urutan service dan validasi data.
- Verifikasi hasil restore dengan memeriksa data nyata, bukan hanya status proses.
Operational hardening
- Batasi akses metrik publik dan data kinerja; jangan membuka detail operasional ke publik tanpa kontrol akses.
- Gunakan TLS untuk traffic lintas jaringan tidak tepercaya dan jangan menonaktifkan verifikasi HMAC, origin check, atau access control sebagai workaround.
- Jangan mencetak secret/PII ke log; batasi akses ke antarmuka admin.
Tanda berhasil
Masalah terdiagnosis dari sumber yang benar, perbaikan diterapkan di konfigurasi/kode, dan status sehat terverifikasi tanpa mengorbankan keamanan.
Batasan
Tidak ada jaminan exactly-once lintas jaringan dan tidak semua event/status delivery tersedia. Beberapa area masih limited/experimental.