Logstash не работает с allow_time_override и получает информацию о потере данных - PullRequest
0 голосов
/ 18 мая 2018

Я сталкиваюсь с проблемой потери данных в 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 перестает толкать данные к притоку и ничего не получает в файле журнала ошибок.

1 Ответ

0 голосов
/ 20 мая 2018

После большого количества отслеживания шаг за шагом удалось найти основную причину и исправить проблему потери данных, как я вчера писал.

Основная причина проблемы:

Influxdb переопределяет дублированную метку времени

Решение: переопределить время в микросекундах

...