LINUX.ORG.RU

Отделить процесс логгера от процесса приложения

 , ,


0

1

Видел всякие системы сбора логов через сеть, оно понятно, там сервер логов и приложение физически разнесены. А кто нить видел примеры логирования например через юниксовый сокет?

Приложение пихает туда данные, а логгер, если жив вынимает их. Какие подводные камни? Может кто то использовал такое на практике?

★★★★★

Ответ на: комментарий от onhydro

на вопрос как

Есть анекдот про мышей и сову.

зачем

Ну мало ли, через сеть ведь логируют. Вот например приложение пишет логи, если начнет подтормаживать запись в файл, мало ли почему, то будет расти очередь на запись и отъедать память у основного процесса и если памяти не хватит шлёпнется всё целиком.

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

да, единственный нормальный логгер остался (не понимаю, почему все говорят говно, после syslog-ng очень даже ничего - никогда не подводит и проблемы какие-то мифические)

anonymous
()

Какие подводные камни?

Нужно следить не сдох ли компонент. А по поводу тормозов логгера и OOM - проще ограничить размер очереди

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

Это не подводные, это уж очевидно. Я имел в виду, что способ вопреки ожиданиям наоборот окажется более тормозным и т.п.

ya-betmen ★★★★★
() автор топика

А кто нить видел примеры логирования например через юниксовый сокет?

systemd-journal так работает (/run/systemd/journal/socket).

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

Опошлили хорошую идею бинарным логом.

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

Тогда единственное неочевидное здесь - преимущества перед встроенным(относительно master-процесса) логгером и перед «настоящей» распределённой системой логгирования(которая на локалхосте тоже работать может, наверное даже не сильно медленнее unix сокетов). Чрезчур специализированное решение сомнительной нужности, так сказать

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

А вот это кстати вопрос, у меня просто подозрение, что если через петлю гонять данные, то оно будет аффектить внешние подключения. А так можно к сокету присосать перекачивалку в сеть вместо записи в файл.

ya-betmen ★★★★★
() автор топика
Последнее исправление: ya-betmen (всего исправлений: 2)

/dev/log у тебя в системе и openlog()/syslog()/closelog().

В dovecot процесс log.

anonymous
()

А кто нить видел примеры логирования например через юниксовый сокет?

Приложение пихает туда данные, а логгер, если жив вынимает их. Какие подводные камни? Может кто то использовал такое на практике?

Видел. Лог сервер на том же хосте, что и клиенты, но в остальном преимущества потоковых сокетов. Подводный камень такой же, как и с обычной сетью - надо буферизовать логи на клиенте, если сервер доступен позже, чем клиент начинает свою деятельность.

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

На вопрос как - ты ответил. Теперь ответь на вопрос на^Wзачем.

На вскидку две причины:
1) Самые разные нарушения в работе приложения не распространятся на логер.
2) Логер может работать под другим пользователем и пользователь под которым приложение работает доступа к логам иметь небудет.

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