LINUX.ORG.RU

Поиск софтины для ручного анализа логов (греп с динамическими правилами)

 


2

1

В debug режиме приложение выдает очень много сообщений, которые мешают читать лог.

Поэтому я делаю как-то так:

grep -vE "some-message|other-message|third-message|..." | less

Для каждого добавления/удаления исключения из логов приходится выходить из less и редактировать паттерн.

Существует ли консольная программа, которая позволяет фильтровать строки (и отключать все/часть фильтров) с сохранением курсора на текущей строке?

Хочется:

  • возможность редактировать фильтр. И желательно не в виде regex с |. Либо curses-меню, либо псевдоокно: по строке на pattern
  • сохранять текущую отображаемую строку при изменении правил фильтрации
  • отображать номер строк в исходном файле
★★★★★

Последнее исправление: Tanger (всего исправлений: 1)

у самого less есть команда &.


&pattern
  Display  only lines which match the pattern; lines which do not match the pattern are not displayed.  If pattern is empty (if you type & immediately followed by ENTER), any
  filtering is turned off, and all lines are displayed.  While filtering is in effect, an ampersand is displayed at the beginning of the prompt, as a reminder that some lines
  in the file may be hidden.

  Certain characters are special as in the / command:

  ^N or !
		 Display only lines which do NOT match the pattern.

  ^R     Don't interpret regular expression metacharacters; that is, do a simple textual comparison.

Но не получается редактировать, а не переписывать фильтр. И после сброса фильтра фокус уплывает.

Идеально было бы что-то с ncurses-интерфейсом.

Tanger ★★★★★
() автор топика
Последнее исправление: Tanger (всего исправлений: 1)
Ответ на: комментарий от Jopich1

Clickhouse

Что-то я не понял как оно может мне помочь. Чем оно отличается от других СУБД? Предлагаешь импортировать лог в БД, затем делать select? По удобству это будет ещё хуже чем grep+less.

Tanger ★★★★★
() автор топика

Сначала создают проблему, не записывая структурированные логи, потом её героически решают…

anonymous
()
Ответ на: комментарий от EugeneS2

Он и в репозиториях и весьма хорош.

В репозиториях дебиана кстати сейчас версия 0.8.4. А меню для редактирования фильтров добавлили в 0.8.5. (а последняя сейчас 0.9)

У них есть готововые static-билды в пакетах http://lnav.org/downloads

Tanger ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Сначала создают проблему, не записывая структурированные логи, потом её героически решают…

С чего ты взял что логи неструктурированные?

Tanger ★★★★★
() автор топика
Ответ на: комментарий от Tanger

велосипед отменяется!

Эх, это завсегда скучно)

// спасибо что кастанул: мне ко двору решение

pihter ★★★★★
()

Фанбои раста ripgrep рекомендуют. Попробуй, вдруг торт.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

ну, строго говоря, обычные текстовые тоже в каком-то смысле структурированные

mumpster ★★★★★
()
Ответ на: комментарий от WitcherGeralt

Я к тому что почти у всех логов есть структура-LogFormat. А JSON сам по себе логи более структурированными не сделает. Только усложнит визуальное чтение.

Tanger ★★★★★
() автор топика
Ответ на: комментарий от Tanger

Все логи всё равно в ELK складывают, а локально при необходимости можно и попарсить строчно.

Структура лога может от типа сообщения зависеть. На моём предыдущем проекте был как минимум десяток типов сообщений, у каждого свой набор атрибутов (помимо общего).

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

Все логи всё равно в ELK складывают

Что-то я так и не понял чем так хорош ELK. Несколько лет назад пробовал поднять elastiflow для анализа netflow, но за пару дней ничего хорошего не получилось и в экосистему ELK не смог вникнуть. Остался на ntopng.

Tanger ★★★★★
() автор топика
Ответ на: комментарий от Tanger

elastiflow

ntopng

Никогда не слышал. Быстрый гуглёж привёл меня к выводу, что речь о сетевых мониторах.

Тут же параллельная проблема решается, — агрегация логов. Просто единое место, где их можно смотреть. Плюс фильтры, алерты и многое другое.

Но вообще, на основе Elasticsearch что только не делают. Я видел архитектуру, где в он был в качестве БД для рефералки у рекламной площадки, например.

WitcherGeralt ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.