Он генерирует много журналов, потому что вы запускаете docker-compose logs
, который будет получать журналы для всех контейнеров в вашем файле компоновки Docker.
Вероятно, вы хотите:
docker logs <name-of-filebeat-container>
.Имя контейнера filebeat можно найти следующим образом: docker ps
. docker compose logs <name-of-filebeat-service>
.Имя службы можно найти в файле docker-composer.yml.
Что касается выходных данных JSON, вы можете запросить драйвер ведения журналов Docker по умолчанию с помощью:
# docker info | grep 'Logging Driver'
Logging Driver: json-file
Если ваш контейнер имеет другой драйвер ведения журнала, вы можете проверить его с помощью:
docker inspect -f '{{.HostConfig.LogConfig.Type}}' <name-or-id-of-the-container>
Все драйверы журнала можно найти по этой ссылке
Для запуска контейнеров с другимВы можете сделать лог-драйвер:
Что касается вашего вопроса о ротации журналов, я бы сказал, что самый простой способ - настроить драйвер журналирования с драйвером системного журнала, настроить его на свой локальный компьютер (или сервер системного журнала), а затем выполнить логотренировку файлов.
Вы можете найти несколько статей logrotate для Linux (которые, как я полагаю, вы используете), например эта