LINUX.ORG.RU

Привет, есть ли менеджеры логирования STDERR, что бы записывать в clickhouse итд ?

 


0

1

Собственно чего же я хочу, написал программу, которая выводит ошибки в stderr. Будут еще несколько программ, они тоже будут логировать в stderr. И сообщения в stderr выглядат примерно так.

[время][программ1][критический] не смог получить данные

[время][программ1][инфо] пользователь не найден

вот критический хочу записывать в базу данных, а инфо хочу записывать в другую базу данных.

Как это можно реализовать ?

написал программу, которая выводит ошибки в stderr

А кроме вывода ошибок она еще что-то делает? :)

Можете скармливать вывод примерно такому скрипту для awk

/\[критический\]/ { вставить в db }
/\[инфо\]/ { вставить в другую db }
Siborgium ★★★★ ()

Как это можно реализовать ?

Написать еще одну программу, которая будет читать stdin и делать это. Можно с tee, fifo и tail что-нибудь намутить. Еще tee может разделять поток как-то так:

cat file.txt | tee >(grep "критический" | ./send_to_db.sh) >(grep "info" > info.log) > all.log

crutch_master ★★★★★ ()

Неосиляторы readline подтянулись и любители бинарных логов, какая красота.

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

И сам пользовательский интерфейс Метрики очень гибок и работает быстро. При первом знакомстве с этой БД впечатление: «Ну, наконец-то! Сделано «для людей»! Начиная от процесса установки и заканчивая отправкой запросов».

Примерно так у меня на работе хипстеры аргументировали ELK для сбора логов, хотя те же правила logstash были раза в два шире аналогичного скрипта на awk, а запрос в ES для подчищения логов, которые хипстеры не удосужились сделать самостоятельно (и положили поддержку всего этого гуано на меня) был гораздо шире аналогичной строчки на шелле, подчищающей старые файлы. Разумеется, никто из хипстеров за собой подтирать не умел.

anonymous ()

Через logstash можно. Через альтернативы тоже скорее всего можно, но я их не тыкал.

theNamelessOne ★★★★★ ()

У ClickHouse поддерживается много разных форматов для INSERT INTO, например TabSeparated.

https://clickhouse.tech/docs/ru/interfaces/formats/

Можно заворачивать логи в | curl 'http://localhost:8123/?query=INSERT%20INTO%20t%20FORMAT%20TabSeparated' --data-binary @-

kmeaw ★★★ ()

Киттенхаус в вк вроде для этого и написали, смотрел гитхаб? И даже если там вот такого с разными базами нет, то это можно сделать через одну null таблицу, в которую будут писаться все сообщения с указанием поля severity, а потом над этой таблицей сделать два матвью в разных базах с фильтрацией по этому полю

cobold ★★★★ ()
Последнее исправление: cobold (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.