184 похожих чатов

Кстати, по поводу логов. А реально как часто нужен полнотекстовый

поиск за большой промежуток времени? И насколько критично время выполнения такого запроса? Например, я ищу что-то в логах обычно в рамках одного дня, если не часа. Крайне редко поиск нужен за более длительный период. При этом поиск в пределах дня даже регуляркой будет скорее всего достаточно быстрым. За длительный период поиск, конечно, может быть значительно дольше, но при этом и время выполнения такого поиска, как правило вообще не критично. То есть логи нужны либо для отладки в заранее известном небольшом периоде, либо для расследования каких-то инцидентов за достаточно большой период. Но при расследовании время выполнения запроса может быть даже часами, так как анализ логов потом еще сопоставляется с данными в базе, например, плюс оценивается бизнес-логика и так далее. То есть сам поиск нужных участков лога при расследовании уже не занимает значительное время в рамках всего расследования.
Также зачастую логи так или иначе структурированы или формализованы. То есть нет какой-то острой необходимости использовать все средства полнотекстового поиска. На мой взгляд, конечно же.
Исходя из вышесказанного, а нужен ли эластик для хранения и поиска по логам? Ведь по сути кроме полнотекстового поиска он уступит тому же КХ по всем другим показателям. Если же нужна еще и аналитика, то КХ будет еще лучше.
Так какие есть аргументы за использование эластика при работе с логами?

9 ответов

23 просмотра

Возможно вам это поможет. Есть подход, когда вы часть лога, по которому хотите делать поиск разбиваете на слова и (или) дублируете запись лога на каждое слово, или же просто какие-то основные фразы выносите и по ним ищите. Дублирование не страшно, потому что удобные механизмы ротирования и хорошие кодеки сжатия одинаковых данных.

In-Fis Автор вопроса
who
Возможно вам это поможет. Есть подход, когда вы ча...

Да я же не спорю. Мне интересно узнать, почему эластик лучше для логов, чем КХ, например? Ведь полнотекстовый поиск по логам практически никогда не нужен. Или, все-таки, нужен?

похоже на холиварный вопрос - что лучше ) задачу хранения логов можно решить с любым из хранилищ - в клике мы не сможем гибко искать по текстам, зато получим милисекундную аналитику. А в эластике мы сможем отыскать текст по сложному запросу и получим за секунды аналитику. Все в итоге зависит от условий задачи - если хотят анализировать рейты логов и не особо всматриваться в сообщения, то клик. В более типовом варианте для поиска в текстах как раз понадобятся полнотекстовые возможности эластика, а аналитики можно подождать и несколько секунд. Главное не подгонять условия задачи под свои желания использовать ту или иную технологию. Обе технологии хороши, только применять их нужно по месту.

In-Fis Автор вопроса
Alexander Malyuzhenets
похоже на холиварный вопрос - что лучше ) задачу х...

Так я и пытаюсь понять, насколько нужен полнотекстовый поиск в логах. При "разборе полётов" я всегда в логах искал вполне понятную структуру или её часть. То есть именно полнотекстовый поиск мне никогда не был нужен. Эластик хорош для полнотекстового поиска по сайту, например. Это да. Но вот именно для логов? Если в логах информация больше напоминает главы из "Война и Мир", то тогда есть вопросы, почему логи выглядят так, а не в каком-то более формализованном виде? И, исходя из этого, я делаю вывод, что на самом деле возможностями эластика в виде полнотекстового поиска пользоваться в общем-то и не нужно. Но по ресурсам, я так думаю, эластик будет менее выгодным. Если же логи ещё и анализировать на предмет аномалий (атаки, сбои и так далее), то КХ с его аналитическими способностями будет ещё лучше. Или я себя накручиваю? :)

In Fis
Так я и пытаюсь понять, насколько нужен полнотекст...

за 10 лет программирования не помню случаев когда нужен был полнотекстовый поиск по логам, всегда grep’a хватало, like или regexp

In-Fis Автор вопроса
Konstantin Ilchenko
за 10 лет программирования не помню случаев когда ...

Вот-вот... А регулярки по небольшому срезу и в КХ отработают достаточно быстро.

In Fis
Так я и пытаюсь понять, насколько нужен полнотекст...

накрутки видимой нет, люди вполне успешно используют клик для логов: https://pixeljets.com/blog/clickhouse-vs-elasticsearch/ Возможно через какое-то время и правда клик займет нишу логохранилища. Минус в статье правильно подметили - нет пока хорошего визуального тула для поиска по логам в клике. Можно решить вопрос через графану, но команде поддержки лучше давать что-то более дружелюбное

Alexander Malyuzhenets
накрутки видимой нет, люди вполне успешно использу...

вот еще пример внедрения клика для логов в Uber: https://eng.uber.com/logging/ видимо становится трендом )

In-Fis Автор вопроса
Alexander Malyuzhenets
накрутки видимой нет, люди вполне успешно использу...

Спасибо за ссылки! Я понял, что думаю в правильном направлении :)

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта