LINUX.ORG.RU

The Journal: жизнь после syslog

 , ,


1

2

В своей новой статье Леннарт Поттеринг (Lennart Poettering), известный разработкой звукового сервера PulseAudio и системы загрузки systemd, объяснил, чем его не устраивает syslog, и предложил свою универсальную реализацию системного журнала в Linux.

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

Поскольку данная разработка Леннарта войдёт в Fedora 17 и далее, скорее всего, разойдётся по всем дистрибутивам, я взял на себя труд перевести и предложить вашему вниманию эту статью.

>>> Перевод статьи

★★★★★

Проверено: timur_dav ()
Последнее исправление: JB (всего исправлений: 2)

но вброс, надо сказать, получился годный. один день и 14 страниц.

не просто так 5 звезд у человека.

Rastafarra ★★★★
()

OpenSuse

В сраче где-то пробегало - анонимус говорил, что выпилил systemd, policykit, pulseaudio и т.п. вещи из сузи. Как? Я попытался через Yast, так он предложил полсистемы снести - т.к. всё прибито гвоздями к указанным т.н. «поделиям».

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

>>чем раньше, тем лучше. Желательно с ядром.

угу, а ещё лучше с биосом...

с другого компьютера, который взлетел.


а ничего, что последних логов там не будет?

EvgGad_303 ★★★★★
()

Раскажите кто-нибудь этому потцерингу про KISS. Зачем усложнять?

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

>Не пересоздание индекса, а добавление записи в индекс с последующей перебалансировкой по необходимости.

Да как не назови. Суть в том, что вместо одной сущности приходится оперировать двумя. Сомнительно, что это сильно упрощает задачу.

Стоимость заметно меньше чем O(N)

Ожидаемая O(logN). Наихудший случай - O(N), как ни крути.

Разве является чтение превалирующей операцией при работе системного журнала?

Чтение и в существующей модели отлично работает.

Ты не понял. Читается лог сильно реже, чем пишется, об этом сказано.

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

> по аналогии: кто мешает иметь 100500 файлов SQLite?

можно конечно, но так сделается ещё 1 шаг к тому, что лучше ничего не менять.

линк в студию

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

Спорно. С чего бы это вдруг? Индексы немного замедлят, но не критично. Это замедление - плата за удобство работы с готовым файлом. Кому это не нужно, могут тупо их отключить. А дальше всё сведётся к добавлению в блок в конце файла.

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

Если убирать индексацию, то зачем БД?

Поскольку логи нельзя формализовать, то в общем случае будет таблица {несколько атрибутов, поле данных} и поиск будет вестить по этому полю полным перебором.

В итоге становится не очень понятно, а нафига это всё, тем более в предложенном в статье виде.

qnikst ★★★★★
()

> Среди всего прочего, в этой реализации syslog нет поддержки протокола передачи syslog и вообще нет поддержки сети, зато вместо текстовых логов используются бинарные форматы данных, для доступа к которым предлагается отдельная разделяемая библиотека.

А в чём профит? Я понял, он хочет стать важной фигурой в RedHat, на котором завязана разработка Journal.

anonymous
()
Ответ на: OpenSuse от anarelian

Да-да! Анонимус реквестирует годных описаний, как же, наконец, избавить свою машину от прелестей типа:

  • avahi
  • policykit
  • pulseaudio
  • systemd
  • и т.п.

Реквестируются подробные описания, как это сделать надёжно и навсегда.

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

Использовать гибкий дистрибутив, где зависимости не скреплены сваркой.

fragment
()
Ответ на: OpenSuse от anarelian

По поводу systemd ничего не скажу - не знаю, а вот что до всего остального...

PA - можно снести к чертям: я сам сейчас пишу с ноута с сусей 11.4 без оного и жив-здоров, а вот policykit ты не сможешь так просто отправить в мусорку - на него и впрямь завязано пол-системы. Но сразу оговорюсь - пол- десктопной системы, поскольку он и нужен-то только на десктопе. Он отвечает за правильные ответы на вопросы типа «а может ли пользователь отмонтировать свою же любимую флешку». На него завязан и NetworkManager, кстати сказать.

И еще есть одна хня - трекинг сессий пользователей, - ConsoleKit. Ее тоже сносить ну никак не стоит))

Да, убрав PA не забудь так же закоментить и такие строчки в /etc/environment

#ALSA_CONFIG_PATH=/etc/alsa-pulse.conf

#SDL_AUDIODRIVER=pulse

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

home media desktop enterprise хомячки

> пытаешься троллить...
ты знал :)
бггг, iMHo хомячкам вообще всё равно что там, хоть plan9 лишь бы всё работало

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

> Бугага. Из твоих «реальных дел» известно только одно - выбор ника. По нему и судят.

Да ладно, он все верно про UNIX-way говорит.

liksys ★★★★
()
Ответ на: программы и версии библиотек от mumpster

> легко осуществимо, но руками.

Тут либо «руками», либо «легко». После работы руками мы получаем вместо системы свалку, в которой легко не делается уже ничего. А меня, естественно, интересует возможность _системными средствами_ поставить несколько разных библиотек, и назначить их разным приложениям.

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

>но вброс, надо сказать, получился годный. один день и 14 страниц.

«сама в шоке» (с)

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

> Да ладно, он все верно про UNIX-way говорит.

Да, но когда он говорит «либо вы судите меня по реальным делам, либо вы умственно отсталые», мы просто обязаны напомнить товарищу, что его «реальных дел» никто из нас не знает.

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

DROP INDEX

>когда база не успевала работать
ну да, каждый наверное сталкивался с необходимостью DORP INDEX/INSERT BULK DATA/CREATE INDEX
а для домашних пользователей двоичные логи - это вообще ХРЕНЬ!
им-то пофигу а спецу - разбираться с ними после внезапного выключения-включения на ходу и развалом FS. бггг

и поиск будет вестить по этому полю полным перебором

только ещё и с накладными БД (как по времени так и по размеру)
ЧИТД!

mumpster ★★★★★
()
Ответ на: LD_LIBRARY_PATH от mumpster

Ты тупо не поставишь разные версии пакетов из-за конфликта путей.

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

>У меня тоже самое с хриплым звуком. Причем абсолютно не ясно, что с этим делать.

Мне помогло в кедах сменить бэкэнд фонона с VLC на gstreamer и хрипы исчезли.

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

> возможность _системными средствами_ поставить несколько разных

библиотек

а зачем?8)
просто интересны причины?8-)
я знаю почему иногда приходится держать несколько пересекающихся библиотек с разными версиями одновременно и как это решается, но вот в штатном порядке, положительно, я заинтригован.8-[ ]

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

> Да, но когда он говорит «либо вы судите меня по реальным делам, либо вы умственно отсталые», мы просто обязаны напомнить товарищу, что его «реальных дел» никто из нас не знает.

Под делом, наверное, имелся в виду как раз пост про отстаивание UNIX-way.

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

> просто интересны причины?8-)

Я хочу разные версии приложений, и вот им могут понадобится разные версии библиотек. И если приложения еще можно компилировать в бинари вида firefox-67.8.9, то с библиотеками это либо не проходит, либо гораздо сложнее.

tailgunner ★★★★★
()
Ответ на: комментарий от no-dashi

> Давай я тебе предложу идею? _Передавать_ в каждом сообщении лога собственно сообщение и сигнатуру от «кодового слова». Кодовое слово для источника зашито в его конфиг. Кодовое слово источника знает сервер принимающий логи. И он сбрасывает или помечает как фейковые все сообщения, чья сигнатура не совпала с ожидаемой. Всё, задача решена.

Как оно не передается? Тогда уж надо делать ssl и ключи, и керберос для авторизации.

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

Это что же выходит, только PA и можно убрать? и то заметил - в 12.1 оно прибито к phonon, который так понимаю тоже удалять не стоит.

Кстати: суся с LXDE в VirtualBox тормозит, а Mint с ним же - летает. Но OBS - он как ЛОР. Попробуешь раз, и слезать уже не хочется, даже если каждый программист в Novell превратится в Поттеринга.

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

firefox-67.8.9

> вида firefox-67.8.9
а, так ты про desktop?
ну, с небольшим секасом можно решить. варианты есть. --root опять же.
и да, очень многие приложения можно очнеь просто обмануть ln -s :-)

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

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

Я говорил только о первом компоненте - «API для логов»

Все остальное, не просто не вытекает, а противоречит здравому смыслу и заявленым целям.

1) куча всевозможных бэкэндов

Заявлена цель - логгер не должен требовать обслуживания и настройки. Еще заявлено, что логгер должен работать с момент загрузки ядра до моента выключения, а это как означает мимнимум зависимостей и кода.

А цели написать кучу бэкэндов не звучало. Это точно.

2) + это всё независимо и в стиле unix"

не уверен, что правильно понимаю. Что входит в «это все» и какие аспекты стиля unix должны быть применены. Разве grep имеет АПИ или кучу бэкэндов?

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

Через разделяемую библиотеку, в которой сидит вызов syslog()

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

>тут уже 100500 раз заметили, что скорострельность логов при чтении никому никуда не вперлась

Да истина же! Но...

Совсем ведь недавно те же кукловоды добровольно-принудительно навязали systemd, сотворив для этого совершенно никчемную и избыточную сущность: а вот, де, скорость загрузки увеличится (никакого Гомера не хватит, чтобы воспроизвести это ХА-ХА). И чо? Да добрый кусок комуниты кинулся измерять эту самую скорость, сравнивать время загрузки различных дистров.

Идиотизм.

И уже за этими деревьями никакой лес не виден, никто и не споткнулся об этоп пень на ровном месте. Купились, как лохи.

По сути, активиста этого надо остановить, вразумить, руки связать, в конце концов. А в реальной жизни ничего такого, увы, не произойдет :-(

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

Даешь постгрю на каждый десктоп для логирования!!!!!!!!!!!!!111111111111111

Ротация логов работает по времени, а не по заполнению диска. Кроме того, ротация логов не будет работать совместно с postgresql.

- аутентификация

А это как? В смысле применительно к этому случаю?

Если ты открываешь порт 514/UDP, то _любой_ может в него насрать. Кроме того, запись пида процесса в сислог опциональна, и любой процесс может написать что он apache2[1234]

Для использования прав доступа придется руками править конфиги -я не видел создания файла журнала на каждое приложение изкоробки ни в одном дистре.

farafonoff ★★
()
Ответ на: комментарий от no-dashi

>Проблема надуманная, решается через sequence и keepalive.

совершенно не согласен. Проблема реальная. А проверка полноты логов вполне может понадобиться и потом, при аудите или, не дай бог, разборе полетов. Никакие keepalive тут не помогут.

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

Индекс не надо пересоздавать - добавление в индекс стоит O(logN). Запись в логи тратит только машинное время - его много. А когда тебе нужно разобраться с проблемой, то грепать по многогигабайтным логам - затраты человеческого времени.

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

>Для использования прав доступа придется руками править конфиги -я не видел создания файла журнала на каждое приложение изкоробки ни в одном дистре.

в журнале тоже не на каждое приложение лог. А на каждый аккаунт. То бишь у пользователя daemon или nobody логов будет больше всех.

А в rsyslog логи раскидываются по файлам очень просто. Это мне в нем очень нравится.

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

Сакральный смысл в расширяемости - винда не навязывает один протокол работы с принтером разработчикам. Вот будут потом 3д-принтеры, и придется весь cups переделывать, а в винде поставил один драйвер, и все хорошо.

farafonoff ★★
()
Ответ на: firefox-67.8.9 от mumpster

>> вида firefox-67.8.9

а, так ты про desktop?

Нет, я вообще.

ну, с небольшим секасом можно решить. варианты есть. --root опять же.

Что такое --root - relocatable package в RPM?

и да, очень многие приложения можно очнеь просто обмануть ln -s :-)

Итак, приложению foonterprize-1.2.3 нужна библиотека libbar 1.2, а в системе установленпа libbar 1.1, и общесистемное обновление до libbar 1.2 ломает кучу софта. Твои действия?

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

> Ротация логов работает по времени, а не по заполнению диска.

Вы неправильным софтом ротацию делаете.

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

size

> Ротация логов работает по времени, а не по заполнению диска
бггг. точно ламо конченое:
«/var/log/httpd/access.log» /var/log/httpd/error.log {
rotate 5
mail www@my.org
size 100k
^^^^^^^^^

я не видел создания файла журнала

мало видел просто.

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

Я тебя расстрою - копаться в 50ГБ логов в бинарном виде ничуть не легче и не быстрее, потому что дял «легче и быстрее» нужны очень хорошие алгоритмы и индексы. Чего у поттеринга (ага!) реализовано, естественно, не будет.

Напиши ему об этом. А то он так и релизнет эту поделку, а про баттхерд на лоре - не, не слышал %)

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

foonterprize

> relocatable packag
угу. ну там есть варианты на самом деле.

foonterprize-1.2.3 нужна библиотека libbar 1.2

зависит от.
если это наш собственный foonterprize-1.2.3 - может оказаться проще пересобрать, если стороннее - то сразу возникает вопрос - а кто это не читал compat. list и насколько он проф[не]пригоден? 8)
тем более что оно:
1) либо стоит на единственном либо на 2-3 серваках => легко можно и ручками
2) либо тиражируется как минимум десятками=>можно потратить время и разобраться как обойти проблему (в т.ч. обновление)
в общем случаи, не хочу разбираться со сферическими ынтерпрайзами, можно поконкретнее?

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

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

Ну я же не в сказке. Текущий сислог надежен просто потому, что не требует особой инициализации сети и соединения. Есть сеть - лови сообщения, нет сети - нет сообщений. Потом сеть поднялась - опять сообщения идут.

А если тунель упал, кто его будет поднимать?

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

А тут не надо будет на каждое приложение лог - в пределах одного аккаунта можно фильтровать приложения по индексу.

farafonoff ★★
()
Ответ на: size от mumpster

> size 100k

Еще crontab поправить надо. Чтоб почаще проверяло.

sergv
()
Ответ на: home media desktop enterprise хомячки от mumpster

судя по некоторым каментам я всё ещё сомневаюсь, но надеюсь на лучшее Ж)

только вот куда-то посливались эти клоуны (

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

> logrotate

Оно и есть.

«Вы не любите кошек? Просто Вы не умеете их готовить!»

sergv
()
Ответ на: size от mumpster

/var/log/apache2/*.log { weekly missingok rotate 52 compress delaycompress notifempty create 640 root adm sharedscripts postrotate if [ -f «`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`» ]; then /etc/init.d/apache2 reload > /dev/null fi endscript }

Логи свои апач пишет сам (почему интересно не через сислог?), и запись в logrotate.d выглядит так. Давайте напишем письмо в дебиан чтобы сделали как надо.

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

> Вот будут потом 3д-принтеры, и придется весь cups переделывать

Не придется, можно в купсовый протокол специнфу завернуть.

В винде - когда ты меняешь принтер, то тебе приходится по всей тысяче клиентов переставлять драйвер. Офигенно.

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