Dengan asumsi Anda memiliki banyak penampung dan Anda ingin menggabungkan log menjadi satu file, Anda perlu menggunakan beberapa agregator log seperti fluentd. fluentd didukung sebagai driver logging untuk kontainer buruh pelabuhan.
Jadi di docker-compose, Anda perlu menentukan driver logging
service1:
image: webapp:0.0.1
logging:
driver: "fluentd"
options:
tag: service1
service2:
image: myapp:0.0.1
logging:
driver: "fluentd"
options:
tag: service2
Langkah kedua adalah memperbarui konfigurasi fluentd untuk memenuhi log untuk layanan 1 dan layanan 2
<match service1>
@type copy
<store>
@type file
path /fluentd/log/service/service.*.log
time_slice_format %Y%m%d
time_slice_wait 10m
time_format %Y%m%dT%H%M%S%z
</store>
</match>
<match service2>
@type copy
<store>
@type file
path /fluentd/log/service/service.*.log
time_slice_format %Y%m%d
time_slice_wait 10m
time_format %Y%m%dT%H%M%S%
</store>
</match>
Dalam konfigurasi ini, kami meminta log untuk ditulis ke satu file ke jalur ini
/fluentd/log/service/service.*.log
dan langkah ketiga adalah menjalankan fluentd yang disesuaikan yang akan mulai menulis log ke file.
Ini dia tautan untuk petunjuk langkah demi langkah
Bit Long, tapi cara yang benar karena Anda mendapatkan lebih banyak kendali atas jalur file log dll dan itu bekerja dengan baik di Docker Swarm juga.
tail -f `docker inspect --format='{{.LogPath}}' myapp`
- Ini benar-benar JSON