Я пытаюсь объединить журналы из моего кластера Kubernetes на сервер Elasticsearch.
Для этого я развернул Filebeat в кластере, но думаю, что у него нет возможности работать, поскольку в /var/lib/docker/containers
каталоги, логов нет.
Я могу просматривать журналы контейнеров через kubectl logs
, но не знаю, как заставить Filebeat добраться до него.
Вот фрагмент docker inspect
вывод команды:
"LogPath": "",
"Name": "/k8s_POD_checkit-incubator-6bd48754c5-s64bk_checkit-incubator_2cb40353-c7b4-11e8-9574-005056b1f077_1",
"RestartCount": 0,
"Driver": "devicemapper",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "",
"ExecIDs": null,
"HostConfig": {
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "journald",
"Config": {}
},
"NetworkMode": "none",
"PortBindings": {},
"RestartPolicy": {
"Name": "",
"MaximumRetryCount": 0
},
Есть какие-нибудь подсказки, как я могу определить действительную конфигурацию для Filebeat?
Ваша конфигурация отправляет журналы в journald, поэтому journalctl - ваш инструмент.
Расскажите, какой у вас дистрибутив Kubernetes, kubespray, gke или что-то еще.
Во-вторых, вы можете проверить другие каталоги узлов, например /var/log/containers/
для контейнерных журналов.
В-третьих, попробуйте развернуть filebeat с помощью helm или любым другим способом, рекомендованным вашим дистрибутивом k8s.