2015-07-13 2 views
2

Я импортировал веб-журналы в Elasticsearch через Logstash. Это успешно завершено.Kibana: Как визуализировать на основе двух полей

У меня есть поле в файле журнала (clientip), которое всегда заполнено, и другое поле, которое иногда заполняется (trueclientip). Я хочу агрегировать на основе объединения двух; например если trueclientip не пуст, тогда используйте, чтобы в противном случае использовать clientip.

Как это сделать с помощью визуализации в Кибане? Нужно ли создавать сценарий или есть другой подход?

Спасибо.

+0

Если эти поля являются числами, это может сработать, в противном случае это не так. Причиной может быть использование сценариев, которые допускают только числовые поля. –

+0

@andreistefan - это IP-адреса, поэтому они являются строками. например 127.0.0.1 – baynezy

+0

Это не строки ;-). IP-адреса хранятся как числа внутри. –

ответ

0

Определите поле сценария, которое должно иметь эту формулу: doc['trueclientip'].value ? doc['trueclientip'].value : doc['clientip'].value и использовать его в своих агрегатах.

Но есть недостаток в этой функциональности с текстовыми полями и тип ip: кажется, что вы вернетесь из сценария - это само число (это логично, потому что сценарии в Kibana 4 используют только выражения Lucene как язык), а не строковое представление. Внутренние IP-адреса являются фактически long номерами в Lucene.

Например, 127.0.0.1 представлено внутренне как 2130706433. И это то, что вы увидите в Visualize.

Не идеален, действительно, и было бы неплохо иметь более продвинутый язык сценариев в сценариях, но github issue already exists.

Смежные вопросы