यह मानते हुए कि आपके पास कई कंटेनर हैं और आप लॉग को एक फ़ाइल में एकत्रित करना चाहते हैं, आपको फ़्लूल्ड जैसे कुछ लॉग एग्रीगेटर का उपयोग करने की आवश्यकता है। फ्लोकेड डॉकटर कंटेनरों के लिए लॉगिंग ड्राइवर के रूप में समर्थित है।
इसलिए डॉक-कंपोज़ में, आपको लॉगिंग ड्राइवर को परिभाषित करने की आवश्यकता है
service1:
image: webapp:0.0.1
logging:
driver: "fluentd"
options:
tag: service1
service2:
image: myapp:0.0.1
logging:
driver: "fluentd"
options:
tag: service2
दूसरा चरण सेवा 1 और सेवा 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>
इस कॉन्फिगरेशन में, हम लॉग्स को इस पथ के लिए एक फाइल में लिखे जाने के लिए कह रहे हैं
/fluentd/log/service/service.*.log
और तीसरा चरण होगा स्वनिर्धारित फ्लुएंट को चलाना जो लॉग फाइल करने के लिए लिखना शुरू करेगा।
यहाँ कदम से कदम निर्देश के लिए लिंक है
बिट लॉन्ग, लेकिन सही तरीका है क्योंकि आपको लॉग फाइल पथ आदि पर अधिक नियंत्रण मिलता है और यह डॉकर झुंड में भी अच्छा काम करता है।
tail -f `docker inspect --format='{{.LogPath}}' myapp`
- यह वास्तव में JSON है