У меня 20 или около того процессов, которые генерируют журналы (~ 500 МБ каждый) на своих соответствующих серверах, и до сих пор я реплицировал эти журналы на центральный сервер, записывал графические интерфейсы и отслеживал, напрямую ли эти реплицированные файлы журналов.
Я настроил Kafka и использовал fluent-bit для успешной репликации журналов в раздел для каждого из моих серверов, и это, кажется, работает очень хорошо.
Я немного запутался на стороне клиента, так какЯ забочусь о данных на ежедневной основе (у каждого из моих исходных файлов журнала есть дата в имени файла).
Как правило, это хорошая практика, чтобы удалить все мои темы кафки в конце дня?Я понимаю, что в kafka встроено отслеживание смещения для каждого клиента, но я не хочу рисковать, и, кроме того, я не вижу особого смысла в начальной загрузке с самого начала.
Другим подходом может быть добавление даты к названию темы?Так что я бы по сути создавал 20 новых тем в день.Я думаю, что положительным моментом будет то, что мои данные будут предоставлены только за этот день.Также будут доступны данные предыдущих дней, и я могу просто удалить эти темы через неделю или месяц или около того.
Мои клиентские процессы включают в себя:
- Отображение данных из журналовв день;1 граф на серверный процесс (всего 20)
- Вставка определенных данных, извлеченных из журналов, в базу данных
- Мониторинг файлов журналов на наличие проблем (поиск строк и т. Д.) И оповещение пользователей с помощьюНастраиваемый графический интерфейс
- Запускать некоторую статистику / аналитику данных и создавать отчеты на конец дня
- Конфигурационный графический интерфейс, который будет отправлять изменения конфигурации через kafka процессам сервера.Серверные процессы отражают изменения обратно, поэтому пользователь получает подтверждение.Это будет работать по отдельной теме в журналах.Эта тема может быть разделена между процессами сервера, поскольку имя процесса добавляется в сообщение json (поэтому потребители знают, для него оно или нет).
Или, возможно, Кафка может быть не лучшим решением?