2015-03-02 3 views
0

Мне нужно индексировать числовые данные в моей базе данных ElasticSearch, и я использую фильтр grok для анализа строки журнала (это целые числа, разделенные запятыми).Целочисленный фильтр фильтра статистических данных Logstash grok

пытаясь использовать этот формат %{NUMBER:userID_2:int} не работал и данные не были проиндексированы и никаких исключений не было.

Когда я изменил тип на «float» -i.e. %{NUMBER:userID_2:float} он работал отлично.

Любая идея, почему я не могу индексировать целые числа?

(Использование эластичного 1.4.4 и 1.4.1) logstash

Спасибо!

+0

Просьба представить пример журнала и убедиться, что все журналы в целочисленном формате. –

+0

Строка журнала: 20630,198595,214285,451,7907,206502,214285,3691,46011,112769,156888,184225,19708,26873,77739,35843,40659,263309,95184,105544,90,81,85, 87,85,87,86,87,87,86,81, "2008-06-26 10:00:00" –

+0

Строка журнала: 20630,198595,214285,451,7907,206502,214285,3691,46011, 112769,156888,184225,19708,26873,77739,35843,40659,263309,95184,105544,90,81,85,87,85,87,86,87,87,86,81, "2008-06-26 10:00:00 " –

ответ

0

В разделе «фильтр» вы устанавливаете выражение соответствия:

match => "%{NUMBER:user_id}" 

а затем преобразовать его:

mutate { 
    convert => { 
    "user_id" => "integer" 
    .... 
    } 
} 
Смежные вопросы