Я сталкиваюсь с проблемой потери данных в logstash версии 5.2 с плагином вывода effxdb.
Мои настройки logstash:
filter {
grok {
patterns_dir => ["/etc/logstash/patterns"]
match => { "message" => "%{NGINXACCESSBLOG}"}
if [type] == "nginx-access-router" {
ruby { code => "event.set('epoc', event.get('@timestamp').to_i)" }
date {
match => [ "timestamp" , "dd/MMM/YYYY:HH:mm:ss Z" ]
target => "newdate"
}
mutate { convert => [ "request_time", "float" ] }
if ![response] {
mutate { add_field => ["response", "nil"] }
}
}
}
}
output {
if [type] == "nginx-access" {
influxdb {
host => "localhost"
port => 8086
user => "admin"
password => "XXX"
db => "xx"
allow_time_override => true
retention_policy => "XX"
measurement => "XXXX"
enable_metric => false
send_as_tags => ["response"]
data_points => {
"response" => "%{[response]}"
"timestamp" => "%{[epoc]}"
"time" => "%{[epoc]}"
}
coerce_values => {
"request_time" => "float"
}
}
}
}
Примечание. Я проверил в журнале отладки, что все полученные журналыстроки успешно анализируются с помощью шаблона grok.
Тогда зачем получать потерю данных более чем на 50%.
Некоторое решение, которое я пробовал: Согласно https://github.com/logstash-plugins/logstash-output-influxdb/issues/69
Я пытался использовать«allow_time_override», как указано выше, но logstash перестает толкать данные к притоку и ничего не получает в файле журнала ошибок.