Hi All
I have recently setup ELK stack as belows.
Kibana <-- ElasticSearch <-- Logstash <-- Redis <-- Filebeat.
Here my Filebeat is producing log events faster than Logstash can consume..resulting in pile up on redis..which results in redis consuming all the memory. Can anyone suggest how can logstash be speed up. I am running with 20 threads i started with 4 threads and started increasing in multiples of 4, but not sure if continuously increasing number of threads will bear me any fruit though.
input {
redis {
host => "some host"
port => "port"
type => "redis-input"
data_type => "list"
key => "filebeat"
}
}
filter {
grok {
match => [ "message", "^%{TIME:timestamp}\s+%{LOGLEVEL:level}%{GREEDYDATA}\u0001somesource=%{GREEDYDATA:inst}\u0001someText%{GREEDYDATA}" ]
match => [ "message", "^%{TIME:timestamp}\s+%{LOGLEVEL:level}" ]
break_on_match => true
}
}
output {
elasticsearch {
hosts => ["some host:port"]
manage_template => false
index => "someindex-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
#stdout { codec => rubydebug }
}
I also have one more issue on the filebeat side. I am getting issue as:
ERR Fail to publish event to REDIS: write tcp sourceHost:sourcePort->redisHost:redisPort: i/o timeout
But this one is intermittent. I have checked on my network side. Everything looks good. I am able to see log events being send over to ES from FileBeat without any issues but intermittently I am seeing this issue in filebeat logs.