LINUX.ORG.RU

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

 , ,


1

2

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

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

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

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

★★★★★

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

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

> высирать
никогда не видел last message repeated NNN times ?

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

Chrome

> ситуация с Chrome и libevent.
ну надо же! а то не знал про этот Ынтерпрайз!:)
когда хром в Ынтерпрайз записали?8)

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

Это не отменяет того факта что диск не резиновый и его надо экономить.

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

>А вот ты и попал. Хэш предшественника несуществует, поскольку некто перехватил линию связи. Или просто врезался в линию, и пропускает через себя весь поток логов, пересчитывая хэш. Так что без некоторого секретного ключа эта схема также обходится на раз плюнуть

секрретный ключ или электронная подпись, это одно, а хеш - другое.

Нужны оба поля. Хотя в принципе, при наличии подписи всего пакета сообщения, хеш можно заменить генератором последовательности.

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

>Если я взломал сервис, который работает под nobody и пишет логи через syslog, НИЧЕГО Я НЕ СМОГУ ПОЧИСТИТЬ. Потому как общение между syslog и приложением идет через сокет. Или через pipe.

многие программы пишут свои логи. апач, фтп ит.д.

и пишут они их в основном потому, что сислог для них слишком прост.

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

Ну, развели панику, как будто вас кто-то заставляет пользоваться этим поделием. Поставьте минимальную систему и настройте её по вкусу, будьте мужиками, ! Хуже виндузятников стали, всё им готовое подавай, ЗверьДиВиДи блин, дальше кед системы не видели. Линукс переставляют чаще чем 95-ую винду. Плеер не тот? Реинсталл! Кеды старые? Реинсталл! Панелька сбилась? Реинсталл! Скажешь, что в Линуксе что-то глючит или работает не так как хочется и все как один отвечают - напиши сам. Он написал сам?! Вот урод! Давайте убьём его!!!

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

>В винде каждый драйвер может задействовать поддерживаемые фичи принтера - двухсторонняя печать, оптимизация графики, брошюрирование. У cups поддержка таких фич несколько рудиментарная.

Не так. в винде все делается родным драйвером принтера, который знает, что там за фичи в его принтере.

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

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

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

>>А вот ты и попал. Хэш предшественника несуществует, поскольку некто перехватил линию связи. Или просто врезался в линию, и пропускает через себя весь поток логов, пересчитывая хэш. Так что без некоторого секретного ключа эта схема также обходится на раз плюнуть

секрретный ключ или электронная подпись, это одно, а хеш - другое.

Нужны оба поля. Хотя в принципе, при наличии подписи всего пакета сообщения, хеш можно заменить генератором последовательности.

Ребята, а вы читали как взламывается WPA по алгоритму японцев? В нём тоже каждый IV'шник уникален и не может быть уже существующим. Тем не менее, всё это обходится при желании.

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

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

это то, что O(logN) что ли? Ну да, это я и имел в виду под «немного замедлят, но не критично».

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

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

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

как и в случае с текстовым файлом, верно?

тем более в предложенном в статье виде.

Ну, я скорее одобряю идею, чем реализацию.

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

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

первая же программа риалтайм-мониторинга логов перевернет эту ситуацию в точности до наоборот

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

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

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

Скажите, зачем программе риалтайм-мониторинга логов читать логи?

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

>Запускать logrotate каждую минуту - самоубийство.

это еще почему? Если его не просить специально, он ничего ресурсоемкого не делает. Это ж не реиндексация базы :)

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

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

В генте есть какая-то хрень под названием slot - может, она спасает (если твои «старые либы» - это либы с тем же soname, что и новые). Но это подходит только для опенсорсных приложений.

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

>> ситуация с Chrome и libevent.

ну надо же! а то не знал про этот Ынтерпрайз!:)

Не паясничай. То, что случилось с Хромом, может случиться и с ынтерпрайзом. Или уэе случалось, но просто об этом мало кто знает.

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

> это то, что O(logN) что ли? Ну да, это я и имел в виду под «немного замедлят, но не критично».

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

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

а сейчас он чем плохо?

как и в случае с текстовым файлом, верно?

да! и зачем городить огород, если будет тот же эффект?

Ну, я скорее одобряю идею, чем реализацию.

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

Статистика по логам решается rsyslog, или самописным скриптом, который будет нужные данные класть в нужное место в нужном формате.

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

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

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

> вообще имхо странно, что это не решается раздачей прав в фс.

При желании можно попробовать.

chattr +i

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

Слот это примерно как в бебиане libglib-1 libglib-100500. А то что спасет - это фича портажа, о которой я написал. С неопенсорсными приложениями рулят бутылки и LD_LIBRARY_PATH

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

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

Если ты не можешь структурировать строку простого текста, то как ты собрался структурировать кортеж?

*Обрати внимание на слово «простого», простой текст называется так не просто так.

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

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

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

>это то, что O(logN) что ли? Ну да, это я и имел в виду под «немного замедлят, но не критично».

Сегодня что, какой-то праздник, по поводу которого все неадекваты ЛОРа решили отметится itt?

Откуда ты взял, что «не критично»? Как ты выбирал критерии оптимизации? С чего ты вообще решил, что нужна оптимизация?

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

> Портаж при апдейте не грохает либы, которые кому-нибудь могут быть нужны

Ы. Итак, у нас есть libbar версии 1.2.3 с soname == libbar.so.1; приобновлении до libbar версии 1.2.4 что происходит? Моя версия: libbar.so.1.2.3 остается лежать в ФС, но симлинк libbar.so.1 теперь указывает на libbar.so.1.2.4. Так или нет?

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

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

поддержка сети будет только в RHEL :-)

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

>Кто-нибудь его остановит? Он калечит linux.

я так понимаю, что это не он калечит

руководство RH взяло курс на построение дистра, существенно отличающегося от остальных, а леннарт-у дали роль получать шишки за те случаи, когда он будет отличаться в худшую сторону

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

Если существует хотя-бы один установленный поцкет, который жаждет (ld.so будет искать, в смысле) libbar.so.1.2.3, то libbar.so.1.2.3 останется лежать как лежал. Если нет, то его снесет при инсталле. Примерно так

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

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

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

> libbar.so.1.2.3 останется лежать как лежал

Блин. Доступ к либе идет через симлинк libbar.so.1 (или в генте не так?). Куда он будет указывать после апдейта?

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

На стороне какого клиента? O_O Впрочем, не важно. Кто ключ будет грузить журналу? Сам возьмет чтоль?)

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

Сложный сервер инициализации это фейл, конечно. Но всяко лучше того маразма, что находится у suse и тп.

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

и пишут они их в основном потому, что сислог для них слишком прост.

Или потому, что его нет. Вообще. Apache-Win32 например.

no-dashi ★★★★★
()

Да, хочу поблагодарить тех читателей ЛОРа, кто прислал мне исправления и варианты перевода.

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

Спасибо.

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

многие программы пишут свои логи. апач, фтп ит.д.

Теперь предложи их авторам задействовать поделие леннарта с его БИНАРНЫМИ логами. Куда тебя пошлют, туда нормальные люди не ходят

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

>Массовое помутнение что-ли к 12му году?

ну предсказывали же гибель человечества в 2012 году. Только вот никто не догадался, что пророком апокалипсиса будет Поттеринг

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

>относится

бывает. исправил.

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

>Теперь предложи их авторам задействовать поделие леннарта с его БИНАРНЫМИ логами. Куда тебя пошлют, туда нормальные люди не ходят

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

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

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

Подобная фича есть в Astra Linux. Своя реализация аудита вместо syslog, журналы в бинарном виде и отдельная библиотека работы с файлами журналов. Так что, здесь Расея чуточку впереди вроде как. Только что сбора аудита по сети не видал. Допилят скорее всего, таккак в спецсистемах весьма нужный функционал.

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

> libbar.so.1 будет указывать на libbar.so.1.2.4

То есть все программы, слинкованные с libbar.so.1, будут использовать libbar версии 1.2.4; и в чем пойнт оставления libbar.so.1.2.3?

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