Hi,
I am using Filebeat to read all the application logs in my openshift cluster. The filebeat sends the logs to the logstash for indexing and then to Elasticsearch and finally visible on Kibana.
Using 3 filebeat pods (pod per each worker node), 1 logstash pod, 1 elasticsearch pod & 1 kibana pod.
Resources Allocated per each filebeat pod - 6 GB RAM & 6 core CPU
After I upgrade the stack (ELK & filebeat) from version 6.5.4 to 7.9.3, filebeat became very slow and to read around 3 lakh records it took more than 60 minutes which is slower than 6.5.4.
contents of filebeat.yml -
filebeat.autodiscover:
providers:
- type: kubernetes
host: ${NODE_NAME}
tags:
- "kube-logs"
templates:
- condition:
or:
- contains:
kubernetes.pod.name: "ne-mgmt"
- contains:
kubernetes.pod.name: "list-manager"
- contains:
kubernetes.pod.name: "scheduler-mgmt"
- contains:
kubernetes.pod.name: "sync-ne"
- contains:
kubernetes.pod.name: "file-manager"
- contains:
kubernetes.pod.name: "dash-board"
- contains:
kubernetes.pod.name: "ne-db-manager"
- contains:
kubernetes.pod.name: "config-manager"
- contains:
kubernetes.pod.name: "report-manager"
- contains:
kubernetes.pod.name: "clean-backup"
- contains:
kubernetes.pod.name: "warrior"
- contains:
kubernetes.pod.name: "ne-backup"
- contains:
kubernetes.pod.name: "ne-restore"
config:
- type: docker
containers.ids:
- "${data.kubernetes.container.id}"
multiline.pattern: '^[[:space:]]'
multiline.negate: false
multiline.match: after
logging.level: debug
processors:
- drop_event:
when.or:
- equals:
kubernetes.namespace: "kube-system"
- equals:
kubernetes.namespace: "default"
- equals:
kubernetes.namespace: "logging"
output.logstash:
hosts: ["logstash-service.logging:5044"]
index: filebeat
pretty: true
setup.template.name: "filebeat"
setup.template.pattern: "filebeat-*"
Please let me know if there are any issues with the configuration and suggest me if there are parameters that I can tune filebeat for better performance.