Logstash CSV не работает

Я пытаюсь прочитать данные CSV в logstash, но почему-то logstash не может разбивать строки, рассматривая их как csv

конфигурация logstash

input {
    file {
        path => [ "/root/logstash/temp.csv" ]
        start_position => "beginning"
    }
}
filter {
    csv {
        columns => ['A','B','C','D','E']
    }
}

output {
    stdout { }
}

Проверить CSV-файл

p,q,r,s,t

p,q,r,s,t

p,q,r,s,t

p,q,r,s,t

p,q,r,s,t

p,q,r,s,t

Вывод logstash

2014-04-23T13:26:53.415+0000 0.0.0.0 p,q,r,s,t

2014-04-23T13:26:53.416+0000 0.0.0.0 p,q,r,s,t

2014-04-23T13:26:53.416+0000 0.0.0.0 p,q,r,s,t

2014-04-23T13:26:53.417+0000 0.0.0.0 p,q,r,s,t

2014-04-23T13:26:53.417+0000 0.0.0.0 p,q,r,s,t

2014-04-23T13:26:53.418+0000 0.0.0.0 p,q,r,s,t

Может ли кто-нибудь помочь мне с этой проблемой?

1) Я попытался заменить одинарную кавычку двойными кавычками в столбцах.

2) пробовал с разными данными

Я ожидаю вывод столбцов, как указано в этой ссылке https://blog.trifork.com/2014/01/28/using-logstash-elasticsearch-and-kibana-to-monitor-your-video-card-a-tutorial/


person Rocky    schedule 23.04.2014    source источник
comment
См. это: stackoverflow.com /вопросы/31095020/   -  person Miguel Bessa    schedule 01.07.2015


Ответы (1)


В выводе нужно указать кодек.

Например, с вашей конфигурацией,

input {
   file {
       path => [ "/root/logstash/temp.csv" ]
       start_position => "beginning"
   }
}
filter {
    csv {
        columns => ['A','B','C','D','E']
    }
}

output {
    stdout { 
        codec => rubydebug
    }
}

Добавьте кодек, и тогда вы сможете получить то, что хотите.

{
   "message" => [
    [0] "p,q,r,s,t"
],
  "@version" => "1",
"@timestamp" => "2014-04-24T02:57:37.099Z",
         "A" => "p",
         "B" => "q",
         "C" => "r",
         "D" => "s",
         "E" => "t"
}
person Ben Lim    schedule 24.04.2014
comment
Это сработало. Согласно упомянутой ссылке, я ожидал, что у stdout также будет столбец o/p. Спасибо. - person Rocky; 24.04.2014
comment
@ Бен, я тоже только что открыл для себя logstash и следую тому же руководству. Я заметил, что logstash ничего не печатает на консоли, пока содержимое файла не изменится / не обновится. Так оно и должно работать или я что-то упускаю? - Нахожусь в logstash версии 1.4.2 - person codin; 21.08.2014
comment
По умолчанию фильтр файлов Logstash начнет синтаксический анализ с конца. Вы должны указать конкретные настройки. К вашему сведению stackoverflow.com/questions/19546900/ - person Ben Lim; 22.08.2014