Я пытаюсь использовать Fluent, чтобы выгрузить мою учетную запись докера в файл, но Fluent показывает слишком много данных, чтобы человек мог что-то понять из этого. В каждой строке я получаю такие данные, как идентификатор контейнера и имя контейнера, но меня интересует только фактическое поле журнала.
Пример получаемой строки выглядит следующим образом:
2019-10-18T12:36:31+00:00 hello-world.dev {"container_id":"5bcd768620c54d0508522c3c7bf4040d3556ab39accc11043ce384548c1bca10","container_name":"/docker_hello-world_1","source":"stdout","log":"Hello from Docker!"}
Но я бы хотел видеть только часть «log» json:
Hello from Docker!
Моя свободная конфигурация:
<source>
@type forward
port 24224
bind 0.0.0.0
</source>
<match *.**>
@type file
<buffer tag>
</buffer>
append true
path /fluentd/log/${tag}/logfile
</match>
Мой файл docker-compose:
version: "3"
services:
hello-world:
image: hello-world:latest
restart: always
logging:
driver: "fluentd"
options:
fluentd-address: ${HOSTNAME}:24224 #You have to use the hostname of your machine
tag: "hello-world.dev"
fluentd-async-connect: "true"
fluent:
image: fluent/fluentd:v1.4-debian
ports:
- 24224:24224
volumes:
- /tmp/fluent.conf:/fluentd/etc/fluent.conf
- /tmp/fluentLogs:/fluentd/log
Обратите внимание: использование журналов Docker или журналов Docker-Compose не является решением, к которому я стремлюсь. Я хочу использовать свободный для отправки журналов в другие системы.
Спасибо!