Логи в clickhouse

736 views
Skip to first unread message

Max Lapshin

unread,
Sep 11, 2018, 4:57:06 AM9/11/18
to RubyOnRails to russian
насколько я понимаю, связка ELK не особо нужна в свете того, что есть clickhouse.

Вопрос: а зачем вообще logstash, рельсовые плагины к нему, если можно просто лить логи в кликхаус?

Gmail

unread,
Sep 11, 2018, 9:14:40 AM9/11/18
to ror...@googlegroups.com
Связка elk нужна потому, что есть морда и много плагинов, которые уже готовы к интеграции. 

Logstash нужен потому, что клик не любит, когда в него стучатся очень часто. Любит, когда большими пакетами. logstash это обеспечивает через batch size. 

вт, 11 сент. 2018 г. в 11:57, Max Lapshin <max.l...@gmail.com>:
насколько я понимаю, связка ELK не особо нужна в свете того, что есть clickhouse.

Вопрос: а зачем вообще logstash, рельсовые плагины к нему, если можно просто лить логи в кликхаус?

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на https://groups.google.com/group/ror2ru
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
 
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror...@googlegroups.com
---
Вы получили это сообщение, поскольку подписаны на группу "RubyOnRails to russian".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес ror2ru+un...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/ror2ru/CAMxVRxAadVCAzXQhP8U5%3DG6HUDdzk8M2wFoz93qCWiP-DyK6sg%40mail.gmail.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
--
--
Сергей Удалов, +7 916 6272658

Max Lapshin

unread,
Sep 11, 2018, 4:59:34 PM9/11/18
to RubyOnRails to russian
т.е. не стоит придумывать свою структуру логов для хранения в кликхаусе?

Gmail

unread,
Sep 11, 2018, 11:57:33 PM9/11/18
to ror...@googlegroups.com
То есть? Таблицу тебе нужно будет самому создать и поля с нужными тебе типами и названиями. А потом в конфиге logstash указать, как твой json мапится на поля. 

И Kibana ты использовать не сможешь, так как это не ELK. 

Logstash является точкой сбора логов с разных мест. А дальше ты их можешь раскидывать куда хочешь. Часть в клик, часть в elastic или другой output. 

Ещё такой прикол, что ты можешь использовать и другие плагины для сбора логов в клик. 

Например, есть парсер логов Nginx для logstash, ты можешь мутировать этот поток в json и отправить в clickhouse. 

Можно смешивать разные потоки из разных источников. 

Но что тебе точно придётся сделать, если откажешься от logstash - написать приложение, которое будет разбивать поток логов на пачки и отправлять в клик, чтобы не по одному. 





вт, 11 сент. 2018 г. в 23:59, Max Lapshin <max.l...@gmail.com>:
т.е. не стоит придумывать свою структуру логов для хранения в кликхаусе?

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на https://groups.google.com/group/ror2ru
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
 
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror...@googlegroups.com
---
Вы получили это сообщение, поскольку подписаны на группу "RubyOnRails to russian".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес ror2ru+un...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/ror2ru/CAMxVRxDiPkoitS%3DHFjepPXqLha0EkYJNsLy921MZx%2BMtRxXVhg%40mail.gmail.com.

Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

Max Lapshin

unread,
Sep 12, 2018, 5:08:18 AM9/12/18
to RubyOnRails to russian
я пытаюсь понять: мне надо самому дизайнить структуру таблицы для логов, или есть какие-то устоявшиеся практики, которые ожидают системы визуализации?

Max Lapshin

unread,
Sep 12, 2018, 5:12:03 AM9/12/18
to RubyOnRails to russian
я хочу свести в едином месте все события, которые у нас происходят для целей мониторинга, capacity planning и для маркетинга/продаж

т.е. что бы у каждого запроса был его user_id, session_id,  request_id (сквозной через все системы),  тайминги, ещё набор атрибутов

Gmail

unread,
Sep 12, 2018, 5:28:21 AM9/12/18
to ror...@googlegroups.com
Я сталкивался только с ELK, а уж как визуализировать Clickhouse -- это нужно смотреть. Выбор разумный, раз хочешь совместить с аналитикой. Есть, конечно, вариант - дублировать логи силами logstash, как в ELK (просмотр логов), так и в cilckhouse (аналитика).

В ELK очень мало общепринятых полей, вроде dt/timestamp, message а дальше - уже все пишут, что хотят и выводят/сортируют.

Насколько я понимаю, ты не получишь визуализацию из коробки. Какая визуализация в ELK? Просто табличка с фильтром. Все, что кроме - нужно придумывать, вроде.

Отпишись, как примешь решение, интересно. 
--
Сергей Удалов, +7 916 6272658


ср, 12 сент. 2018 г. в 12:12, Max Lapshin <max.l...@gmail.com>:
я хочу свести в едином месте все события, которые у нас происходят для целей мониторинга, capacity planning и для маркетинга/продаж

т.е. что бы у каждого запроса был его user_id, session_id,  request_id (сквозной через все системы),  тайминги, ещё набор атрибутов

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на https://groups.google.com/group/ror2ru
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
 
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror...@googlegroups.com
---
Вы получили это сообщение, поскольку подписаны на группу "RubyOnRails to russian".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес ror2ru+un...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/ror2ru/CAMxVRxDLXZKdb%2BjtMh1RBX5nsEevmisz-0wqyXo01k%3DkeLqqvw%40mail.gmail.com.

Борис Пеньковский

unread,
Sep 13, 2018, 7:49:08 AM9/13/18
to RubyOnRails to russian
В кибане вагон графиков, гистограммы, тепловые карты и т.д. 
Снимок.JPG












среда, 12 сентября 2018 г., 12:28:21 UTC+3 пользователь Сергей Удалов написал:

Борис Пеньковский

unread,
Sep 13, 2018, 7:50:20 AM9/13/18
to RubyOnRails to russian
Дополню: https://www.elastic.co/guide/en/kibana/current/known-plugins.html

четверг, 13 сентября 2018 г., 14:49:08 UTC+3 пользователь Борис Пеньковский написал:

Anton Kosyakin

unread,
Sep 17, 2018, 6:18:20 AM9/17/18
to ror...@googlegroups.com
Сергей,
 
А почему клик не любит когда в него часто стучатся?
Я вот смотрю документацию, у них на такие случае даже промежуточный буфер есть: https://clickhouse.yandex/docs/en/operations/table_engines/buffer/
 
11.09.2018, 16:14, "Gmail" <udalov...@gmail.com>:
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/ror2ru/CAPE49U6N7NEP4oT0ft6qVvuZ2wYgnV6xx2qXuJT8yW1%2BOL6DgQ%40mail.gmail.com.

Gmail

unread,
Sep 17, 2018, 6:26:23 AM9/17/18
to ror...@googlegroups.com
Видимо, поэтому и есть такой инструмент, чтобы не стучаться в таблички напрямую так часто. 

Производительность при вставке данных
Данные рекомендуется вставлять пачками не менее 1000 строк или не более одного запроса в секунду. При вставке в таблицу типа MergeTree из tab-separated дампа, скорость вставки будет в районе 50-200 МБ/сек. Если вставляются строчки размером около 1 КБ, то скорость будет в районе 50 000 - 200 000 строчек в секунду. Если строчки маленькие - производительность в строчках в секунду будет выше (на данных БК - > 500 000 строк в секунду, на данных Graphite - > 1 000 000 строк в секунду). Для увеличения производительности, можно производить несколько запросов INSERT параллельно - при этом производительность растёт линейно.
 
https://clickhouse.yandex/docs/ru/introduction/performance/

--
Сергей Удалов, +7 916 6272658


пн, 17 сент. 2018 г. в 13:18, Anton Kosyakin <an...@tinuviel.ru>:
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/ror2ru/12398831537179495%40sas1-3713921c63b1.qloud-c.yandex.net.

Gmail

unread,
Sep 17, 2018, 6:29:05 AM9/17/18
to ror...@googlegroups.com
И вот по твоей ссылке:

 
Заметим, что даже для таблиц типа Buffer не имеет смысла вставлять данные по одной строке, так как таким образом будет достигнута скорость всего лишь в несколько тысяч строк в секунду, тогда как при вставке более крупными блоками, достижимо более миллиона строк в секунду (смотрите раздел "Производительность").

https://clickhouse.yandex/docs/en/operations/table_engines/buffer/
--
Сергей Удалов, +7 916 6272658


пн, 17 сент. 2018 г. в 13:25, Gmail <udalov...@gmail.com>:

Anton Kosyakin

unread,
Sep 17, 2018, 6:36:54 AM9/17/18
to ror...@googlegroups.com
Я понял, спасибо!
 
Понятия "медленно" в нашем проекте и у Яндекса - кардинально разные :)
 
17.09.2018, 13:29, "Gmail" <udalov...@gmail.com>:
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/ror2ru/CAPE49U4FmS4C3q%3DnrAqb2AR%2Bg95OFFqcdUW2vo31ZxP-k8F0wQ%40mail.gmail.com.
Reply all
Reply to author
Forward
0 new messages