Logstash "У плагина была неисправимая" ошибка, как это исправить? - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь отправить данные в эластичный поиск, который происходит из раздела kafka с Logstash, но у меня возникает эта проблема при запуске logstash

код ошибки: в плагине возникла неисправимая ошибка

как это исправить?Конфигурационный файл находится ниже.

 `input{
   kafka{
bootstrap_servers =>"localhosts:9092"
topics => ["cars"]
       }
  }
 filter{
   csv {
       separator =>","

    columns => [ "maker", "model", "mileage", "manufacture_year", "engine_displacement", "engine_power", "body_type", "color_slug", "stk_year", "transmission", "door_count", "seat_count", "fuel_type", "date_created", "date_last_seen", "price_eur" ]

      } 
   mutate {convert => ["mileage", "integer"] }
   mutate {convert => ["price_eur", "float"] }
   mutate {convert => ["engine_power", "integer"] }
   mutate {convert => ["door_power", "integer"] }
   mutate {convert => ["seat_count", "integer"] }
   }
  output{
      elasticsearch {
      hosts => ["localhost:9200"]
      index => "cars1"
      document_type=>"sold_cars"
      }
         stdout{}
      }`

1 Ответ

0 голосов
/ 26 апреля 2019

Фильтр convert mutate - это хеш, а не массив: https://www.elastic.co/guide/en/logstash/current/plugins-filters-mutate.html#plugins-filters-mutate-convert

Попробуйте это так:

input {
    kafka {
        bootstrap_servers => "localhost:9092"
        topics => ["cars"]
    }
}

filter {
    csv {
        separator => ","
        columns => ["maker", "model", "mileage", "manufacture_year", "engine_displacement", "engine_power", "body_type", "color_slug", "stk_year", "transmission", "door_count", "seat_count", "fuel_type", "date_created", "date_last_seen", "price_eur"]
    }
    mutate {
        convert => {
            "mileage" => "integer"
            "price_eur" => "float"
            "engine_power" => "integer"
            "door_power" => "integer"
            "seat_count" => "integer"
        }
    }
}
output {
    elasticsearch {
        hosts => ["localhost:9200"]
        index => "cars1"
        document_type => "sold_cars"
    }
    stdout {}
}

Вы также можете использовать convert внутри самого фильтра CSV, например:

csv {
    separator => ","
    columns => ["maker", "model", "mileage", "manufacture_year", "engine_displacement", "engine_power", "body_type", "color_slug", "stk_year", "transmission", "door_count", "seat_count", "fuel_type", "date_created", "date_last_seen", "price_eur"]
    convert => {
        "mileage" => "integer"
        "price_eur" => "float"
        "engine_power" => "integer"
        "door_power" => "integer"
        "seat_count" => "integer"
    }
}
...