Elasticsearch/Kibana: присоединение приложения

возможно ли с помощью Kibana (желательно, блестящая новая версия 4 beta) выполнить соединения на стороне приложения?

Я знаю, что ES/Kibana не построена для замены реляционных баз данных, и обычно лучше денормализовать мои данные. Однако в этом случае использования это не лучший подход, поскольку индексный размер взрывается и производительность снижается:

Я индексирую миллиарды документов, содержащих информацию о сеансе сетевых потоков следующим образом: source ip, исходный порт, IP-адрес назначения, порт назначения, отметка времени.

Теперь я также хочу собрать дополнительную информацию для каждого IP-адреса, например, геолокации, asn, reverse dns и т.д. Добавление этой информации в каждый документ сеанса делает всю базу данных неуправляемой: есть миллионы документов с одинаковыми IP-адресами и избыточность добавления такой же дополнительной информации ко всем этим документам приводит к массивному раздуванию и невосприимчивому опыту пользователей даже в кластере с сотнями гигабайт оперативной памяти.

Вместо этого я хотел бы создать отдельный индекс, содержащий только уникальные IP-адреса и метаданные, которые я собрал каждому из них.

Вопрос: Как я могу анализировать свои данные с помощью кибаны? Для каждого документа, возвращаемого запросом, kibana должна выполнить поиск в ip-index и "фактически обогатить" каждый IP-адрес этой информацией. Что-то вроде добавления виртуальных полей, чтобы структура выглядела так (на лету):

источник ip, исходный порт, исходная страна, источник asn, source fqdn

Я знаю, что это будет стоить нескольких запросов.

Ответ 1

Я не думаю, что есть такая вещь, но, может быть, вы могли бы поиграть с фильтрами:

  • Вы создаете приятные и простые визуализации данных, которые фильтруют различные типы и отображать только одну простую информацию.
  • Вы помещаете эти разные визуализации в панель инструментов, чтобы отображать все данные, связанные с типом объединения.
  • Вы используете фильтры в качестве ключа соединения и используете полную панель управления, состоящий из разных панелей, чтобы получить представление о конкретных ключах соединения (ips в вашем случае или сеансах).

Вам нужно создать 1 панель инструментов для каждого типа соединения, которое вы хотите сделать.

Обратите внимание, что вам нужно будет согласовать имена и отображения полей в разных документах!

Держите нас в курсе, что интересная проблема, я хотел бы сейчас, как это получается с таким количеством документов.