LINUX.ORG.RU

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

 , ,


1

2

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

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

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

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

★★★★★

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

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

Как это ничто не мешает? Попробуй поставить в OpenSuSE KDE4 не притянув pulseaudio (в том числе libpulseaudio). В Gentoo пока (подчёркиваю слово «пока») это можно, но похоже это не надолго. Вон в OpenSuSE 12.1 мануал по удалению pulseaudio: http://en.opensuse.org/SDB:Pulseaudio . Что там видно? Для удаления снесите несколько пакетов, а несколько других трогать нельзя (libpulse-mainloop-glib0 и libpulse0), надо вручную, в обход пакетного менеджера удалить (или перенести) все файлы /usr/lib{,32,64}/*pulse*. А ещё и убедиться в цельности конфига $HOME/.pulse, иначе в гноме звука не будет даже без пульсы... Офигенный мануал. Повторять при каждом обновлении libpulse-mainloop-glib0 и libpulse0. А уж systemd выкорчевать вообще нельзя, но пока что оставлена возможность использовать надёжный sysvinit. Но это не надолго.

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

Чтобы иметь структурированный лог.

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

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

> Предчувствую резкий рост популярности слаки. Тут нет avahi, pulseaudio, systemd и mono.

использую дебиан — терпеть приходится только libavahi

кстати, в этот черный список еще необходимо занести hal — он тоже у меня не установлен

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

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

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

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

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

От блин. Прочитал как «пересобрать». Извиняюсь.
Вообще именно из-за pulseaudio я давно покинул дистрибутивы.

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

Принятая в FOSS практика писать логи «кто во что горазд». Если они будут в бинарном виде, то и писать их придётся в строгом формате

Святая простота.

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

> Линус тоже хочет закопать линукс. пичаль.

Еретик, игра слов основана лишь на пропуске GNU/ и акцентировании на второй части, которая в данном случае вовсе не месту: не в ядре же логгер держать.

anonymous
()
Ответ на: Внимание! Всем, всем, всем! от anonymous

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

Thero ★★★★★
()

Все эти инновации в базовой системе линукса (pulseaudio, systemd, изменение системы каталогов, бинарные логи и создание стандартного API для их чтения и др.) сводятся к унификации системы и уменьшению числа её возможных вариаций. Со временем все линуксы станут одинаковы, поэтому количество дистрибутивов будет стремиться к 1.

И это не есть какая-то ошибка, а вполне осознанная политика новой опенсорцной корпорации добра под именем RedHat. Вот почему все инновации Леннарта немедленно попадают в апстрим и расходятся по дистрибутивам.

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

зачем проделывать работу которую уже сделали другие? тешить чсв?

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

>А уж systemd выкорчевать вообще нельзя, но пока что оставлена возможность использовать надёжный sysvinit. Но это не надолго.

Да, анон, линукс за какие-то 2-3 года совсем скатился. Вот как сейчас помню, 2007-2008 был очень даже торт. Я честно, даже верил в вендокапец. Но сейчас это ужас какой-то. Ощущение такое, что тащат в него все самые неудачные идеи из венды.

Вот недавно смотрел рассылку Qt5. Вместо QSettings туда запиливают нечто, использующее dconf.Иными словами, в kde5 будет бинарный реестр, как сейчас в 3-м гноме.

Конечно, можно написать свой бэкенд, сделать свой дистрибутив. Но такой подход был бы оправдан, если бы добавлял новые возможности. Но тратить человеко-часы лишь на написание функционала, который выкинули в угоду какому-то умнику как-то не эффективно что-ли. Да и Поттеринг тоже не спит, поэтому придётся тратить всё больше и больше усилий чтобы вернуть всё как было.

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

>И это не есть какая-то ошибка, а вполне осознанная политика новой опенсорцной корпорации добра под именем RedHat.

Только вот зачем нам ещё одна венда?

anonymous
()

ЩТО? Если это пихнут в федорку, я лучше поставлю старую добрую Windows 98, и буду писать дрова для моего нетбука в Windows 98, чем буду юзать это. ВРОТМНЕНОГИ! НО ЗАЧЕМ? вМСФШ! дБ РПЫЕМ ПО ОБИ@К!

nexfwall ★★★★
()

Хорошего человека Леннартом Поттерингом не назовут

сабж

Quasar ★★★★★
()

Дорогой Оракл, ты уже спас однажды яву, теперь купи ред-хат и спаси линукс от Поттеринга, на тебя одна надежда.

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

> зато уже давно есть jack-audio.

И вместо того чтобы обеспечить его более полную поддержку, изобрели велосипед под названием PA и начали пихать во все дыры.

http://linuxsound.ru/articles.php?article_id=4

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

Ну толсто же. Бинарные логи от этого тупорылого чмошника (Поттеринг который) - вполне себе необычайно вредная вещь.

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

>RedHat OS, не оно?

Не думаю, что всё это туда в обозримом будущем попадёт.

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

Только вот зачем нам ещё одна венда?

Норма прибыли RedHat'а будет выше, чем сейчас.

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

Объясните мне кто-нибудь пожалуйста, куда катится линукс? Я когда его начал использовать, не думал что он сразу начнет скатываться в какое-то говно.
А хер его знает, может они в скором хотят выпилить /dev(А зачем он должен быть виден пользователю? Пользователю оно не надо), proc(Сделаем системные вызовы! Пользователю - не нужно) и sys(А это уж точно). А потом все скатить в окончательный ШINDOWS №2?

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

> окажется гвоздями прибит к линуксу, для редхата это хорошо

Возможно, они оракела боятся, тогда не столько «прибит к линуксу», сколько «на гвоздь впереди, чем unbreakable».

А для тех, кого к линуксу прибили - уже не очень.

Будет как теплый ламповый UNIX...

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

> Вот недавно смотрел рассылку Qt5. Вместо QSettings туда запиливают нечто, использующее dconf.

Что-то мне это напомнило. ах-да http://open-life.org/blog/1880.html

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

> При условии размещения индекса в памяти.

... и тут происходит внезапное выключение питания и теряется весь индекс

поэтому БД обычно часто-часто сбрасывают страницы индекса на диск, а поскольку добавление меняет произвольные страницы индекса, на диск постепенно сбрасывается весь файл, а не дописывается что-то в конец — т.е. большой трафик и перемещение головок на произвольные (а не соседние) позиции

вообще довольно известная вещь — индексы лучше строить не в процессе добавления единичных записей, а сразу по всему датасету

если я отстал от жизни, и в современных БД эта проблема решена, просьба поправить

впрочем, отсюда уже видны сложности реализации «индексации на лету»

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

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

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

Для кого-то и слово - дело, можно вспомнить... ну хотя бы Геббельса.

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

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

После чего в системе появятся два логгера, ибо этот сын собаки отцепить логгер от systemd категорически откажется.

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

> Стоимость добавления одной записи в B*-дерево O(long N). Стоимость добавления одной записи в конец плоского файла - O(1).

ммм... по-моему не совсем так

можно юзать Б-дерево, и там так сказать ln N = 3

проблема слегка в другом

для записи 40 сообщений из 100 символов в конец файла тебе достаточно 1 записи на диск в 4096 байт

для записи 40 модификаций индекса, пусть даже они затрагивают всего 40 страниц, тебе придется записать все эти 40 страниц на диск

опять же, если я отстал от жизни — пусть меня поправят

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

>вы говорите, что все деревья - одной породы,

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

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

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

если я отстал от жизни, и в современных БД эта проблема решена

Да, решена. Зовется транзакционность :-) Причем обеспечивается она на уровне блоков, как правило, а не записей. Могу рассказать как это сделано, но это долго.

впрочем, отсюда уже видны сложности реализации «индексации на лету»

Именно. И поттеринг этого не потянет, как и все «увлеченные его идеями». Причем даже все вместе взятые.

no-dashi ★★★★★
()
Ответ на: foonterprize от mumpster

> 2) либо тиражируется как минимум десятками=>можно потратить время и разобраться как обойти проблему (в т.ч. обновление)

Нелься просто положить рядом библиотеки, наклепать враппер с экспортом LD_PRELOAD, да создать пакет, устанавливающий окостыленный сабж в тот же /opt?

anonymous
()

Неужели и среди ЛОР-овцев есть единомышленники этого придурка поттеринга? Я думал тока тупые дегенерировашие америкосы на наго повелись, а тут еще остались нормальные люди :) Блин, куда катится мир! :)

alukin
()

Штампы времени в сновном не содержат информации о часовом поясе, тем не менее в некоторых новых спецификациях определена их поддержка

AVL2, исправь опечатку в переводе,.

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

ЗЫ: интересно, а переводчик статьи может наиболее «яркие» комменты отсюда перевести и ознакомить дорогого нашего Ленарта? О так сказать, благодарной публики! :)

alukin
()

потер - это тот самый мудак, который взял вполне неплохую идею и реализовал ее в виде убогой пульсы, весь смысл существования которой сводится к тому чтоб ее удалять для починки звука? да пусть он горит в аду!

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

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

Всё не так просто. Сейчас программы шлют текстовые логи в адрес службы syslogd, а когда появится journal программы пропатчат и они (наверняка) будут слать сообщения через dbus в адрес journal сразу в заданном формате. Дороги назад, скорее всего, не будет, либо будет, но на очень короткое время и то откатом на предыдущую версию или наложением патчей на все срущие в логи программы.

Главным лейтмотивом перехода на бинарный формат является невозможность подделки логов задним числом и невозможность подмены источника записи в логе. Источник с достаточной надёжностью можно контролировать через dbus и systemd, поэтому, скорее всего, при логировании протокол syslog заменят на dbus. Но на первых порах, пока идёт переход и большинство программ используют syslog, саму службу syslogd подменят под тем же именем на другую, которая будет конвертировать сообщения из формата syslog в новый формат и отсылать по dbus в journal.

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

>Я посмотрю, как ты будешь читать бинарный лог сдохшей системы без чудо-библиотечки поттера.

Он не будет читать бинарный лог сдохшей системы - сдохшие системы не нужны. Вывод: логи тоже не нужны.

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

>при логировании протокол syslog заменят на dbus

Ну это очевидно. Поттеринг любит завязывать системные сервисы на dbus.

anonymous
()

нет поддержки сети

бинарные форматы данных

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

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

> unit'ы с ним писать легче, чем init-скрипты - why not?

Лучше бы спецификации для инициализации разработали. Сделали бы «reference implementation» на каком-нибудь guile, потом хоть на баше (наверняка стало бы проще, тот же surfraw: вроде баш, но расширять несложно), хоть на С.

Просто с systemd перейти куда-нибудь будет сложнее, чем с инит-скриптов.

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

а еще и патчи - возьмет и не возьмет. и это тоже опенсурц вам

myhand
()

Зачем менять то что и так отлично справляется со своими обязанностями?

Да и...

бинарные форматы данных, для доступа к которым предлагается отдельная разделяемая библиотека.


Похоже на ненужный велосипед.

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

RTFM

> Вот забыла программа написать свой пид - как его узнать?

Она не может забыть - она его не передаёт (openlog, [v]syslog, closelog). Если рассматривать передачу по сети, то тут каждый админ ССЗБ.

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

>> unit'ы с ним писать легче, чем init-скрипты - why not?

Лучше бы спецификации для инициализации разработали. Сделали бы «reference implementation»

Судя по дискуссии в Debian, так может получится. Reference implementation будет systemd.

tailgunner ★★★★★
()

по-моему, все уже достаточно высказались про провальные перспективы нового поделия поттеринга, может уже поговорим о той части его идей, которая может быть полезна?

1. начнем с UUID — сама по себе идея неплоха, но содержит подводный камень — именно, попытка использовать UUID приложения А приложением В, считающим себя совместимым с А

положим, формат выхлопа А по этому UUID чуток поменяется, а скриптописатель, уверенный что «UUID точно-точно идентифицирует тип записи», и имеющий перед глазами выхлоп В, который не поменялся, не будет вставлять в парсер должной проверки на выхлоп, и может распарсить ошибочно

поэтому UUID-ы должны быть уникальны, а тот, кто повторно использовал чужой UUID, должен получать втык

но при этом, с другой стороны, должны поддерживаться отношения «почти одно и то же» именно для случаев, когда В собирается поддерживать семантку сообщения об ошибке А, и для этого надо завести второй идентификатор, то ли второй UUID, то ли com.my-domain.my-subdomain

... и все становится как-то сложно

2. проблема несовершенства формата лога должна решатся именно выработкой текстового формата (могу рассказать про мой вариант почти-строчного формата)

3. проблема удаления части сообщений решабельна для текстового формата (добавить хэш)

4. проблема валидности лог-файла на другом хосте решается добавлением в начало лога записей о контексте, например имени хоста, как записи о фейковой особой службе

хотя это не такая уж фейковая служба, так же смена имени хоста по идее должна отражаться с логе; точно так же должна отражаться в логе смена контекста (т.е. всего, что человек считает константой)

5. ключевые слова добавлябельны в текстовом формате

и т.д.

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

> Вот недавно смотрел рассылку Qt5. Вместо QSettings туда запиливают нечто, использующее dconf.Иными словами, в kde5 будет бинарный реестр, как сейчас в 3-м гноме.

сомневаюсь, кде декларировало движение в противоположную сторону — к модульности

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

> Но это - не тот случай. Здесь как раз, необходимо разрабатывать фундаментальную спецификацию, и потратить на ее разработку на несколько порядков больше времени, чем на ее реализацию. А «формат у нас нестабильный, вот вам библиотечка, мы вам разрешаем читать исходники» - это даже не разговор. Это M$ так может разговаривать, а не член сообщества.

полностью согласен, и предлагаю поговорить как раз о такой спецификации

впрочем, юзеров федореного горя не жалко — они ссзб

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