Агрегирование списка путей журнала http в kibana

У меня есть стек nginx-> fluentd-> elasticsearch-> kibana. Пытаюсь понять, могу ли я сделать что-то вроде панели «терминов», но с компонентом строки пути из журналов. Использование панели терминов непосредственно на этом приводит к наиболее часто используемым словам из путей, например. для drupal он показывает «узел» как самый популярный, что совершенно бесполезно без фактического идентификатора узла.

Это то, что можно сделать с помощью elasticsearch?

Обновление: вот пример моих журналов:

"path": "/node/123"
"path": "/node/456"
"path": "/user/create"

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


person Farcaller    schedule 19.06.2014    source источник


Ответы (1)


Вам необходимо настроить сопоставление Elasticsearch для установки поля «путь» как «не проанализированного». Параметр по умолчанию «анализируется», и по умолчанию ES анализирует строковые поля и, когда это возможно, разделяет их на несколько токенов, что, вероятно, и произошло в вашем случае. См. этот связанный вопрос.

Что касается того, как настроить сопоставление Elasticsearch, я также все еще копаю, поскольку у меня есть аналогичная проблема со строками с несколькими токенами, которые я хочу иметь возможность сортировать. Похоже, что будет добавлен API сопоставления или возможность использования файлов конфигурации, см. здесь.

person Aldian    schedule 20.06.2014
comment
Обновил мой вопрос с подробностями. - person Farcaller; 21.06.2014