2016-02-10 4 views
0

У меня есть файл CSV, и я хочу импортировать его в свой Elastic Search.Ошибка импорта CSV-файла с помощью Logstash

Я нахожусь в Windows 10, и у меня также есть Kibana, чтобы просматривать данные после импорта. Я использую Logstash, чтобы попытаться сделать этот импорт.

Все мои услуги (Kibana, ES и Logstash) работают на моем локальном хосте.

Я попытался с следующий Logstash конфигурационный файл (мой файл CSV в правильном пути):

input { 
    file { 
    path => ["E:\Programmes\Logstash\logstash-2.2.0\data\*.csv"] 
    start_position => "beginning" 
    } 
} 

filter { 
    csv { 
    columns => ["billing_entity","invoice","company","username","reference","line_number","recipient_number","zone","network","date","time","country","duration","cost","currency","call_origin","billing_type"] 
    separator => ";" 
    } 

    #grok { 
    # match => { "call" => "%{WORD:billing_entity} %{WORD:invoice} %{WORD:company} %{WORD:username} %{WORD:reference} %{NUMBER:line_number} %{NUMBER:recipient_number} %{WORD:zone} %{WORD:network} %{DATE:date} %{TIME:time} %{WORD:country} %{WORD:duration} %{NUMBER:cost} %{WORD:currency} %{WORD:call_origin} %{WORD:billing_type}" } 
    #} 
} 

output { 
    elasticsearch { 
    action => "index" 
    index => "call_samples" 
    #index => "call-%{+YYYY.MM.dd}" 
    hosts => "localhost" 
    workers => 1 
    } 
} 

Как вы можете видеть, что я пытался использовать «CSV» или 'Grok 'фильтр.

Затем я запустил в расширенном режиме logstash с этим файлом конфигурации:

logstash.bat -f ..\conf\logstash.conf -v > logfile.txt 

EDIT: после каждой попытки, я удалить сгенерированные sincedb файлы для моделирования изменений. Но в любом случае я заметил, что они пустые

Но в журналах я ничего не вижу соответствующее:

сообщения => «Используя шаблон отображения из» сообщения => «Попытка установить шаблон» сообщение =>» New Elasticsearch output " message =>" Регистрация ввода файла " message =>" Нет sincedb_path set, генерация o .... message => "Использование шаблона сопоставления из ... message =>" Попытка установить шаблон " сообщение => «Новый выход для эмалирования» message => «Пусковой трубопровод» message => «Pipeline start»

Совсем как мой файл игнорируется .... Я также пробовал несколько индексов и т. Д., Он никогда не будет импортировать данные.

Чтобы проверить, имеются ли данные, я делаю запрос на localhost: 9200 или я просматриваю панель поиска Kibana «Имя индекса или шаблон» с индексом «call_samples».

Может ли кто-нибудь помочь мне в этом, пожалуйста? Я застрял в этой точке ... Спасибо

EDIT 2: Ok Я тупой на этом, я просто хотел, чтобы перенаправить потоки журналов в файл, когда я запускал logstash:

logstash.bat -f ..\conf\logstash.conf -v > logfile.txt 

Но это был, вероятно, разрыв входного файла от импорта. Так что я просто удалил часть, где я перенаправлять на файл:

logstash.bat -f ..\conf\logstash.conf -v 

Теперь мой индекс создан правильно, но никакие данные не импортируются ...

+0

Если вы запустите это несколько раз, logstash запомнил ранее пробег и не видит ничего нового процесса. Вам нужно будет найти файл реестра (.sincedb *) и отредактировать/удалить его. –

+0

@Alain Collins oh yeah Я забыл сказать, что я регулярно удаляю файлы sincedb, созданные в моем каталоге контекста пользователя (C: \ Users \ myusername), поэтому я думаю, что он видит изменения:/Или, может быть, они хранятся и в другом месте? – Alex

ответ

0

Это была проблема кодирования, и даже в многословным режим, он никогда не говорил мне, что это терпит неудачу или что-то в этом роде ... даже немного подсказки.

Так я тестировал с новой тест-файл в кодировке UTF-8, и он работал хорошо ...