Я установил эластичный стек в частном облаке kubernetes, и я запускаю filebeat на узлах K8. Filebeat отправляет журналы некоторых контейнеров в logstash, которые в конечном итоге появляются на Kibana, но некоторые журналы контейнеров не отображаются, потому что они, вероятно, не собраны в первую очередь. Какую ошибку я делаю?
Filebeat может читать по таким путям, как /var/lib/docker/containers/7a36cc887cc4ba1cea8ebedcf5ed8c74fee9e6cd307bac5e1ba795d07369ca2d/7a36cc887cc4ba1cea8ebedcfbae0e0e. На моем кластере K8 запущены службы jupyterhub, cassandra, sftp. Журналы, которые я вижу при выполнении журналов kubectl -f, также выбираются с помощью filebeat, но на моем кластере K8 также работают некоторые пользовательские приложения. Журналы, которые я вижу при ведении журналов kubectl -f, не выбираются с помощью filebeat.
kind: ConfigMap
metadata:
name: filebeat-config
namespace: kube-logging
labels:
k8s-app: filebeat
kubernetes.io/cluster-service: "true"
data:
filebeat.yml: |-
filebeat.config:
prospectors:
# Mounted `filebeat-prospectors` configmap:
path: ${path.config}/prospectors.d/*.yml
# Reload prospectors configs as they change:
reload.enabled: false
modules:
path: ${path.config}/modules.d/*.yml
# Reload module configs as they change:
reload.enabled: false
processors:
- add_cloud_metadata:
cloud.id: ${ELASTIC_CLOUD_ID}
cloud.auth: ${ELASTIC_CLOUD_AUTH}
output.logstash:
hosts: ['logstash-service:5044']
---
apiVersion: v1
kind: ConfigMap
metadata:
name: filebeat-prospectors
namespace: kube-logging
labels:
k8s-app: filebeat
kubernetes.io/cluster-service: "true"
data:
kubernetes.yml: |-
- type: docker
containers.ids:
- "*"
processors:
- add_kubernetes_metadata:
in_cluster: true
---
Я хочу, чтобы журналы из всех моих контейнеров выбирались с помощью filebeat и показывались в Kibana. Как этого добиться, что за недостающее звено?