Giả sử rằng bạn có nhiều vùng chứa và bạn muốn tổng hợp các nhật ký thành một tệp duy nhất, bạn cần sử dụng một số công cụ tổng hợp nhật ký như thông thạo. lưu loát được hỗ trợ như trình điều khiển ghi nhật ký cho các bộ chứa docker.
Vì vậy, trong docker-soạn, bạn cần xác định trình điều khiển ghi nhật ký
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 là cập nhật thông tin lưu loát để cung cấp nhật ký cho cả dịch vụ 1 và dịch 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 đến đường dẫn này
/fluentd/log/service/service.*.log
và bước thứ ba là chạy thông thạo tùy chỉnh sẽ bắt đầu ghi nhật ký vào tệp.
Đây là liên kết để hướng dẫn từng bước
Hơi dài, nhưng đúng cách vì bạn có nhiều quyền kiểm soát hơn đối với đường dẫn tệp nhật ký, v.v. và nó cũng hoạt động tốt trong Docker Swarm.
tail -f `docker inspect --format='{{.LogPath}}' myapp`
- nó thực sự là JSON