Добавить централизованное ведение журнала в кластер Kubernetes, использующий systemd

Я пытаюсь добавить централизованное ведение журнала в свой кластер Kubernetes с помощью EFK. Я обнаружил, что мои журналы из модулей, которые записываются в систему, хранятся в журнале на моем главном узле. Но я хочу хранить эти журналы в elasticsearch.

Могу ли я изменить конфигурацию докера для перенаправления журналов в журналы var? Я стараюсь не входить в систему со своих модулей в произвольном месте.

Или я могу перехватить логи из journald с помощью fluentd или чего-то еще?

Спасибо


person Dorin    schedule 06.09.2018    source источник
comment
Это похоже на ваше решение: kubernetes.io/docs/tasks / debug-application-cluster /   -  person d g    schedule 06.09.2018


Ответы (1)


Воспользуйтесь этой ссылкой

Основная идея - запустить Filebeat как демон, который будет собирать и отправлять журналы из контейнеров и передавать их в Elasticsearch.

person fatcook    schedule 06.09.2018
comment
Благодарю за ваш ответ. Если я правильно понимаю из файла yaml, Filebeat читает журналы из /var/lib/docker/containers/*/*.log, и моя проблема в том, что докер не записывает в файлы, а пишет в journald. Мой вопрос в том, как я могу изменить docker / kubernetes для входа в файлы или как я могу захватить журналы из journald? - person Dorin; 07.09.2018
comment
Есть 2 варианта: 1. Вы можете проверить эту ссылку, чтобы изменить докер по умолчанию ведет журнал обратно в json-log, отсюда filebeat берет и отправляет журнал в Elasticsearch. 2. Используйте Journalbeat программу сообщества, созданную специально для отправки журналов из journald в Elasticsearch. Если у вас нет какой-либо конкретной причины отправлять журналы докеров в journald, я считаю, что 1-й вариант может быть более простым подходом. - person fatcook; 07.09.2018
comment
Я попытался добавить в daemon.json log-driver: json-file, но затем докеру не удалось запустить задание для docker.service, не удалось, потому что процесс управления завершился с кодом ошибки. См. Systemctl status docker.service и journalctl -xe для подробностей. Я могу разобраться, в чем проблема .. - person Dorin; 07.09.2018
comment
Пожалуйста, проверьте подробные логи в journalctl -xeu docker.service, я думаю, там будет намного больше деталей. Также проверьте, есть ли у вашего пользователя соответствующие разрешения. Вы используете docker как root? - person fatcook; 07.09.2018
comment
Спасибо за ваши ответы. Вы мне очень помогли, я разобрался, в чем проблема. Я установил старую версию докера на машины, я установил последнюю версию докера, и все работает нормально. - person Dorin; 10.09.2018