Кафка для внутридневной визуализации, мониторинга и обработки команд - PullRequest
0 голосов
/ 02 июня 2018

У меня 20 или около того процессов, которые генерируют журналы (~ 500 МБ каждый) на своих соответствующих серверах, и до сих пор я реплицировал эти журналы на центральный сервер, записывал графические интерфейсы и отслеживал, напрямую ли эти реплицированные файлы журналов.

Я настроил Kafka и использовал fluent-bit для успешной репликации журналов в раздел для каждого из моих серверов, и это, кажется, работает очень хорошо.

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

Как правило, это хорошая практика, чтобы удалить все мои темы кафки в конце дня?Я понимаю, что в kafka встроено отслеживание смещения для каждого клиента, но я не хочу рисковать, и, кроме того, я не вижу особого смысла в начальной загрузке с самого начала.

Другим подходом может быть добавление даты к названию темы?Так что я бы по сути создавал 20 новых тем в день.Я думаю, что положительным моментом будет то, что мои данные будут предоставлены только за этот день.Также будут доступны данные предыдущих дней, и я могу просто удалить эти темы через неделю или месяц или около того.

Мои клиентские процессы включают в себя:

  1. Отображение данных из журналовв день;1 граф на серверный процесс (всего 20)
  2. Вставка определенных данных, извлеченных из журналов, в базу данных
  3. Мониторинг файлов журналов на наличие проблем (поиск строк и т. Д.) И оповещение пользователей с помощьюНастраиваемый графический интерфейс
  4. Запускать некоторую статистику / аналитику данных и создавать отчеты на конец дня
  5. Конфигурационный графический интерфейс, который будет отправлять изменения конфигурации через kafka процессам сервера.Серверные процессы отражают изменения обратно, поэтому пользователь получает подтверждение.Это будет работать по отдельной теме в журналах.Эта тема может быть разделена между процессами сервера, поскольку имя процесса добавляется в сообщение json (поэтому потребители знают, для него оно или нет).

Или, возможно, Кафка может быть не лучшим решением?

1 Ответ

0 голосов
/ 02 июня 2018

Почему бы не использовать Elasticsearch и Kibana?(Опционально Filebeat вместо Fluentd)

Kafka Connect создает дамп данных в режиме реального времени, вы отсекаете данные из Kibana для выполнения поиска по дням или как угодно.Создавайте панели управления Kibana, которые могут обновляться в режиме реального времени или несколько раз в день

Не удаляйте разделы Kafka, если вы не настраиваете динамическую маршрутизацию на основе времени в свободном бите.По умолчанию Kafka хранит недельные данные, но вы можете настроить свои темы так, чтобы они сохраняли данные за 24 часа

Однако Kafka здесь даже не требуется.Найдите «EFK stack», Elastic, Fluentd, Kibana, или, используя Beats, вы можете отменить необходимость в Fluentd

Plus, с недавним открытым выпуском Elastic XPack, вы можете устанавливать оповещения для поиска и делать аномалииобнаружение в ваших данных

...