Вы можете перенастроить свой контейнер Jenkins для публикации его файлов журнала в каталоге хоста (используйте docker run -v
, чтобы предоставить некоторый каталог хоста для дерева /var/jenkins_home/jobs
; это, вероятно, хорошая идея, несмотря на то, что вы не хотите терятьвся ваша история работы, если вам когда-нибудь понадобится обновить базовый код Jenkins).Затем вы можете либо использовать docker run -v
для внедрения этого же каталога в контейнер Filebeat, либо просто запустить Filebeat непосредственно на хосте (если его основное задание - чтение файлов системы хоста ...).
Если выесть возможность и более производительная настройка, переключение драйверов журналов, чтобы они указывали на ваш logstash, также является хорошей идеей, но при этом будут собираться только stdout и stderr основного процесса (вместо того, чтобы запускать docker logs
, эти данные будут отображатьсяна вашем центральном сервере журналов).Однако он не будет собирать файлы журналов по заданию Jenkins.
Мой опыт согласуется с ошибкой Vagrant, которую вы цитируете: никогда не заглядывайте внутрь /var/lib/docker
и особенно не пытайтесь смонтировать внутреннее состояние Докерав контейнер Docker.(У вас , вероятно, не будет паники ядра.)