
Daftar Isi
Anda menjalankan container Docker, tetapi bingung saat ingin melihat log yang muncul di dalamnya? Atau mungkin Anda menemukan error misterius di aplikasi containerized, tapi tidak tahu di mana log-nya tersimpan?
Masalah seperti ini sangat umum terjadi, terutama bagi Anda yang baru belajar menggunakan Docker. Banyak pengguna pemula yang belum tahu bahwa Docker memiliki sistem logging bawaan yang sangat fleksibel—bahkan bisa diatur untuk menulis log ke berbagai tempat seperti file, syslog, atau layanan eksternal seperti Fluentd dan Loki.
Dalam artikel ini, Anda akan mempelajari cara mengkonfigurasi Docker Logging dengan benar, mulai dari konsep dasar hingga contoh konfigurasi nyata. Setelah membaca hingga akhir, Anda akan tahu:
- Di mana log container Docker disimpan.
- Cara membaca log dengan mudah.
- Bagaimana mengubah logging driver Docker.
- Tips memilih metode logging terbaik untuk kebutuhan Anda.
Apa Itu Docker Logging?
Docker Logging adalah mekanisme pencatatan aktivitas dan keluaran dari container. Semua output yang dikirim ke stdout (standard output) dan stderr (standard error)* oleh aplikasi dalam container akan ditangkap oleh Docker dan disimpan menggunakan logging driver.
Secara default, Docker menggunakan json-file logging driver, yang berarti log disimpan dalam format JSON di sistem host. Namun, Anda bisa mengubahnya agar log dikirim ke sistem lain—misalnya journald, syslog, atau layanan observabilitas seperti Fluentd.
Lokasi Log Docker
Jika Anda belum mengubah konfigurasi apapun, log container disimpan di:
/var/lib/docker/containers/<container_id>/<container_id>-json.logNamun, Anda tidak perlu membuka file ini secara manual. Gunakan perintah berikut untuk melihat log container dengan cara yang lebih praktis:
docker logs <nama_container>Anda juga dapat menambahkan opsi:
-f→ untuk mengikuti log secara real-time.--tail→ untuk menampilkan jumlah baris terakhir, misalnya--tail 50.
Langkah-Langkah Mengkonfigurasi Docker Logging
1. Melihat Logging Driver yang Aktif
Gunakan perintah berikut untuk melihat logging driver default yang digunakan Docker:
docker info | grep "Logging Driver"Biasanya hasilnya adalah:
Logging Driver: json-file2. Mengubah Logging Driver Secara Global
Untuk mengubah logging driver default di seluruh sistem, Anda bisa mengedit file konfigurasi Docker daemon:
sudo nano /etc/docker/daemon.jsonTambahkan atau ubah bagian berikut:
{
"log-driver": "journald"
}Simpan file, lalu restart Docker:
sudo systemctl restart docker3. Mengubah Logging Driver per Container
Anda juga bisa menetapkan logging driver hanya untuk container tertentu tanpa mengubah pengaturan global. Contohnya:
docker run -d \
--name myapp \
--log-driver=syslog \
nginxPerintah di atas akan menjalankan container Nginx dengan log dikirim ke syslog, bukan ke file JSON bawaan.
4. Mengatur Opsi Tambahan Logging
Beberapa logging driver mendukung opsi tambahan. Misalnya, jika Anda tetap ingin menggunakan json-file, tetapi ingin membatasi ukuran log agar tidak membengkak, tambahkan konfigurasi seperti ini:
docker run -d \
--name webapp \
--log-driver=json-file \
--log-opt max-size=10m \
--log-opt max-file=3 \
nginxArtinya: setiap file log akan berukuran maksimal 10MB, dan Docker hanya menyimpan 3 file log sebelum melakukan rotasi otomatis.
5. Menghapus atau Membersihkan Log Docker
Jika log container sudah terlalu besar, Anda dapat menghapusnya dengan aman:
truncate -s 0 /var/lib/docker/containers/<container_id>/<container_id>-json.logAtau, jika ingin langsung menghapus container dan log-nya sekaligus:
docker rm -f <container_id>Pilihan Logging Driver Populer di Docker
Berikut beberapa logging driver yang umum digunakan beserta fungsinya:
| Logging Driver | Deskripsi Singkat |
|---|---|
| json-file | Default, log disimpan dalam format JSON di host |
| journald | Integrasi dengan sistem logging Linux (systemd) |
| syslog | Mengirim log ke layanan syslog |
| fluentd | Mengirim log ke server Fluentd untuk analisis terpusat |
| awslogs | Mengirim log ke AWS CloudWatch |
| gelf | Mengirim log ke sistem log berbasis Graylog |
Pilihlah driver sesuai dengan kebutuhan dan lingkungan sistem Anda.
Dengan memahami dan mengkonfigurasi Docker Logging, kini Anda bisa memantau container secara efektif, mencegah penyimpanan log yang berlebihan, dan memusatkan catatan aktivitas untuk analisis keamanan maupun debugging.
Ingin melangkah lebih jauh?
Baca juga: Monitoring Docker dengan Prometheus dan Grafana
