Что использовать для агрегации журналов и запросов в реальном времени? - PullRequest
5 голосов
/ 17 апреля 2011


Я ищу инструмент / базу данных / решение, которое может помочь мне в агрегировании журналов в реальном времени и может запрашивать их также в режиме реального времени.
Основным требованием является способность доставлять результаты как можно скорее.имея в виду, что может быть много событий для запроса (возможно, миллиарды), но в журналах будет много «столбцов», и каждый запрос будет устанавливать некоторые условия для этих столбцов, поэтому конечным результатом будет своего рода агрегация или толькобудет возвращено небольшое подмножество строк.

Прямо сейчас я смотрел на HDFS + HBase, который кажется хорошим решением.Есть ли альтернативы?Вы можете что-нибудь порекомендовать?

Ответы [ 5 ]

3 голосов
/ 16 мая 2011

Вы можете проверить Flume: https://github.com/cloudera/flume/wiki.

2 голосов
/ 22 августа 2015

Несмотря на свой старый вопрос, я выкладываю ответ с техническими стеками, которые доступны сейчас ...

  1. Загрузка данных: потоковая передача Apache Flume или Spark или Spring XD или Kafka

  2. Хранение и обработка данных: HBASE (необработанные данные в промежуточной таблице и агрегированные данные в конечных таблицах на основе требований, основанных на диапазонах поиска, могут проектировать ключи строк) + SparkonHbase

  3. Поиск в реальном времени: база данных с индексами solr

  4. Отчетность (необязательно): tableu или Банан (с открытым исходным кодом)

  5. В целом: Лямбда-архитектура

2 голосов
/ 26 июня 2011

Если вы попытаетесь проанализировать / собрать журналы в режиме реального времени и что-то с этим сделать, тогда я рекомендую следующее:

# tail --follow=name --retry /var/log/logfile.log | sendxmpp -i -u username -p password -j somejabberserver.com sendloglineto@somejabberserver.com

При этом каждая строка в журнале отправляется в виде сообщения XMPP пользователю jabber sendloglineto@somejabberserver.com. Этот пользователь jabber будет подключен через клиент / программное обеспечение, написанное вами (я предпочитаю perl и Net :: Jabber). Вы можете запрограммировать клиента на то, что вы хотите, чтобы он делал с каждым сообщением XMPP (например, хранить в базе данных). Если вы храните его в CouchDB, вы можете использовать _changes API для отслеживания обновлений конкретной базы данных, обслуживаемой CouchDB.

2 голосов
/ 17 апреля 2011

Вы можете взглянуть на Каламарис . В коммерческом мире есть Splunk .

0 голосов
/ 19 ноября 2013

Попробуйте Apache Kafka. Это должно быть полезно для вашего случая

...