Giả sử rằng bạn có nhiều container và bạn muốn tổng hợp các bản ghi vào một tập tin duy nhất, bạn cần phải sử dụng một số aggregator log như fluentd. fluentd được hỗ trợ như trình điều khiển ghi nhật ký cho các vùng chứa docker.
Vì vậy, trong Docker-soạn, bạn cần phải xác định người lái xe khai thác gỗ
service1:
image: webapp:0.0.1
logging:
driver: "fluentd"
options:
tag: service1
service2:
image: myapp:0.0.1
logging:
driver: "fluentd"
options:
tag: service2
Bước thứ hai sẽ được cập nhật conf fluentd để phục vụ các bản ghi cho cả hai dịch vụ 1 và vụ 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>
Trong cấu hình này, chúng tôi yêu cầu các bản ghi được ghi vào một tệp duy nhất cho đường dẫn này
/fluentd/log/service/service.*.log
và bước thứ ba là chạy fluentd tùy chỉnh sẽ bắt đầu ghi nhật ký vào tệp.
Đây là link for step by step instructions
Bit Long, nhưng cách chính xác kể từ khi bạn có được kiểm soát tốt hơn các file log con đường vv và nó hoạt động tốt trong Docker Swarm quá.
'tail -f \ 'Docker kiểm tra --format = '{{LogPath}.}' Myapp \' '- nó thực sự là JSON – Adam
nó sẽ thất bại nếu tập tin đó không có. có nghĩa là nếu docker không tạo ra bất kỳ nhật ký nào thì tệp này sẽ không được tạo. nhưng nếu docker tạo ra các bản ghi thì lệnh này là tốt để xem các bản ghi trực tiếp. cảm ơn Adam. thêm nó vào câu trả lời của tôi để giúp đỡ người khác. –