Возможно ли сделать систему логирования из ClickHouse, Logstash и Grafana?
Всем привет!
Необходимо сделать систему логирования ИТ ландшафта, которая построена полностью на локальной инфраструктуре. Т.е. имеются железные сервера, виртуальные машинны, Kubernetes и т.д.
Популярные решения по логированию такие как ELK, Graylog с выходом практически каждой новой версии урезают бесплатный функционал.
Есть ли те кто строил решения по логированию на базе ClickHouse?
Спасибо за быстрый ответ!
Подскажите, вы сталкивались на практике с подобным стеком?
И интересно, как организовать UI в Grafana, есть ли какие то готовые решения что бы не пилить с нуля "интерфейс".
Хочу напомнить что такие системы как ClickHouse ориентированы не на одиночные события
а на стриминг. Тоесть вы должны не просто логгировать а желательно просто потоком лить
много событий. Батч-режим вставки в кликхаус - это и есть ее оптимальный режим.
Вставка по 1 строке например раз в несколько секунд с фиксацией - будет не благоприятным
режимом работы для кликхауса. И наверное с плохим КПД. Подумайте о том что может
стоит все таки писать логи классическим способом и по истечении времени например
сбрасывать пачку к аналитические хранилища.
В терминологии Bigdata это кажется называется коннектор.
Вот ищи коннектор ClickHouse для твоего языка или системы.
По поводу пачки - это архитектурный вопрос. Я советую его не игнорировать а просто спросить себя
- если резко приложение - то будут ли в логах ClickHouse самые последние записи.
Вставка по 1 строке например раз в несколько секунд с фиксацией - будет не благоприятным режимом работы для кликхауса
А что неблагоприятного? Какая разница что это 1 строка?
Или имеется ввиду, что "несколько секунд" это мало? - совсем не обязательно, в зависимости от типа движка и сегментации, наличия обновлений/удалений вполне может хватать и "несколько секунд".
mayton2019, так речь про то, что не получится напрямую записывать каждую строчку в Клик, как только она появилась? Ну если "раз в несколько секунд", то можно и напрямую, но вообще это не проблема, можно писать опосредовано, хоть через файлы, хоть через очереди.
mayton2019, да, для логирования событий приложения несколько непривычное решение. Но если писать в файл, а затем из него кидать в Клик, то чем это будет отличаться от решения на основе Elastic. Вопрос только насколько резвым будет полнотекстовой поиск.
Но для логгирования событий ПРИЛОЖЕНИЯ типа нужно их писать не очень часто но с гарантией что sync на диск сработал.
Ну это если речь про пользовательское приложение в виде бинарника на компе. А раз речь идет про Logstash и Grafana подразумевается скорее логирование работы сетевого сервиса, где писать может оказаться надо часто и много.
И, нисколько не агитирую за Клик для этого. Но, чисто теоретически.
"Где гарантия что последние актуальные записи в логе попали в ClickHouse?"
Там же где она при любой записи в СУБД. Какая разница в какую СУБД будет писать парсер файлов логов? Все будет зависеть от того, как он проверяет.