LINUX.ORG.RU

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

 , ,


1

2

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

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

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

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

★★★★★

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

>Если библиотека и утилиты работы с журналом собираются без linux-only-зависимостей на различных системах, то может это и подойдёт, если гарантируется обратная совместимость с «устаревающими» форматами.

вроде как именно это и обещается.

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

Пример - вывод последних записей из лога при вызове команды systemctl статус. Охренеть, как мне это надо вместо одной большой надписи - РАБОТАЕТ или НЕ РАБОТАЕТ и вменяемого кода возврата для скриптов.

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

Сейчас в сислоге - никак. В модели поттеринга это сделать тривиально - хостнейм и пид он может получать сам, заодно и название программы.

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

>но зачем? чем не нравится решение cat | gzip ?

много процессора, много времени.

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

>я повторюсь: туннель. простое решение, которое решит еще с десяток проблем просто потому что он есть.

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

То есть, тунель как решение - да. Только он должен инициироваться и обслуживаться самим сервисом логгера. То есть, интегрирован в службу, а не навешан сверху.

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

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

Логгер ведет сиквенсы для каждого источника, приложение стреляет keepalive с некоторым интервалом. Нет keepalive в течение минуты - приложение не работает, или проблема сети, или успешная атака - в любом случае начинается разбор полетов и вмешивается обслуживающий перонал. Зачем городить огород с хэшем предыдущей записи,

no-dashi ★★★★★
()

<fat>Надо будет подсказать ему, что свалка разноформатных файлов в /etc это несовременно, в XXI веке нужна база данных! И вообще, пора ему свой дистрибутив сделать PTU/Lindows</fat>

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

> тунель нефигово падает.

нашлась проблема в сети, время зажигать!

он должен инициироваться и обслуживаться самим сервисом логгера

почему?

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

> 255 параметров — максимум

Твоя БД не поддерживает хранение массивов произвольного размера в ячейке таблицы? :trollface:

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

Долго искал syslog-сервер, позволяющий надёжно перенаправить вывод в процесс, после чего выяснилось, что проще и надёжнее всего получать сообщения по UNIX-socket, или по UDP, как это делает сам syslog. Перенаправлять логи умели все реализации syslog, которые я тогда просмотрел.

В итоге custom-syslogd был создан ЗА ОДНИ СУТКИ!!! Одним человеком, не программистом, а простым сисадмином.

Грусть. Пичаль. Я зделал свою службу системного журнала. А поттеринг ещё только собирается.

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

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

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

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

> В модели поттеринга это сделать тривиально - хостнейм и пид он может получать сам, заодно и название программы.

но как?

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

> Коротко:

- индексы

направляем нужную нам инфу (например логи доступа) в с PostgreSQL и расслабляемся

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

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

защита от переполнения диска (не еженощный гзип)

А ротация логов не судьба?)))

разделение доступа к журналам

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

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

> Грепать по логу стоит O(n), создавать запросы к базе, в которой все уже отсортировано по строчкам и колонкам - гораздо дешевле

Заранее приношу извинения интеллектуальным илитариям, что вмешиваюсь в их высокоученую дискуссию со своими никчемными, дикими вопросами. Итак:

1. Разве не O(N) стоит создать индекс, который в дальнейшем нащи доблестные небыдло-илитарии будут обходить за O(logN)?

2. Разве не требуется пересоздавать индекс (по цене O(N), к стати) каждые раз, как в лог добавляется новая запись?

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

Может я, в силу своей неилитарности, дикости чего-то не понимаю, но, что именно оптимизируется? Где, говоря языком дикарей, ПРОФИТ?

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

> вендоподходы помогают захватить десктопный рынок, а юниксподходы - серверный

Нет. Проблема десктопного линукса в отсутствии игр и инертности хомячков. Им глубоко наплевать на то, как пишутся в системе логи или работет загрузка. Да и не поймут они этого.

Красть умные идеи не стыдно.

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

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

> статья большая

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

taker
()

Уберите этого упорка уже наконец.

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

firefox

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

mumpster ★★★★★
()

> Если вам нужны еще резоны, читайте разделы выше.
Мне одному не нравится эта фраза?

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

У меня когнитивный диссонанс от сочетания вашего ника и поста. Так и должно быть?)))

умные люди судят человека по реальным делам, отсталые - по нику и прочим поверхностным признакам, все верно ;)

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от anonymous

Разве не требуется пересоздавать индекс (по цене O(N), к стати) каждые раз, как в лог добавляется новая запись?

Нет. Не пересоздание индекса, а добавление записи в индекс с последующей перебалансировкой по необходимости. Стоимость заметно меньше чем O(N)... При условии размещения индекса в памяти. Если не умещаются - приходит жжжжжж...

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

Чтение и в существующей модели отлично работает. Просто поттерингу захотелось показать 10 последних записей из syslog. Другие причины надуманы.

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

egrep

> определенного типа - наступает звиздец
о, а вот и вендотролли пожаловали!
не осилил документацию?;)

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

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

Угу. А типа grep (ну как еще содержимое фильтровать?) по бинарным будет меньше?

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

А архиватор (возьмем, например, сжатие типа LZ77) - это и есть замена слов и фраз на ссылку из уже встреченного.

РЕЗЮМЕ: Не нужно. Неубедительно. Закопать.

sergv
()
Ответ на: комментарий от I-Love-Microsoft

> умные люди судят человека по реальным делам, отсталые - по нику

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

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

апач

> 9:01 «пользователь хакер вошел» — потеряно
с чего бы оно потеряно было?

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

Ждём бинарный реестр и гуёвый regedit.

ЩАС! Для начала пингвизятники должны помучаться, адаптируя свои перделки под десяток разных дистров с разными конфигами, а затем уже путь переизобретают венду.

При всей убогости винды, в ней собрано много хороших идей (пусть и с поганой реализацией). Даже если тебя выворачивает при слове Микрософт, надо иметь МОЗГ, чтобы понимать, что это бессмысленное зубоскрежетание не приносит ничего хорошего Линуксу. Пусть реестр, пусть венда, но если архитектурно он лучше, он обязан быть в системе. Пингвоадмины слишком затюканы обилием информации, которую надо знать, чтобы более-менее ворочать серверами - именно поэтому они так дорожат своими примитивными знаниями, хотя при подходе Apple вся эта возня легко конвертируется в три клика по ГУЯм. В любом случае, надо понимать - принципы 70-ых - это сорокалетней давности плесень, которую только сейчас пытаются очистить и сделать что-то современное. Не мешайте новаторам, а лучше помогайте исправлять то, что сейчас вам кажется ошибочным. Я даже верю, что лет через 5-10 Линукс вернётся к идеям Gobo-linux! Но чтобы это понять, красноглазикам понадобится не один кактус...

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

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

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

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

Мумба, мучаешься здесь только ты.

Я даже верю, что лет через 5-10 Линукс вернётся к идеям Gobo-linux!

Неплохо бы тебе погулять эти 10 лет где-нибудь в другом месте.

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

неужели, на лоре звезды теперь отрицательно характеризуют пользователя?

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

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

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

По поводу «нет» уже нашел коммент ниже. Действительно, они (интересно, кто еще?) не хотят чтобы можно было легко модифицировать лог без использования библиотеки. Только это всё бред, не выйдет ничего из этого. Формат всё равно любители раскопают.

«Не совсем бинарник» - ну я имел в виду, что по большей части в этом файле должен был присутствовать текст, в котором изредка попадаются вставки данных в двоичном кодее, но уже понял, что ошибся. Думаю, что такое «совсем бинарник» отсюда должно быть понятно. Строгого определения я давать не собирался )

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

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

ч.т.д., делай выводы :) ЗЫ я Linux продвигаю где могу и как могу, вот мое реальное дело в рамках тематики сайта ;)

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от matumba

на счет Gobo-linux (а так же современный дистр с подобной реализацией Moon OS) ты прав, надо что-то менять, программы и версии библиотек должны иметь возможность ставиться в разных версиях и различных сочетаниях

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

>Не пересоздание индекса, а добавление записи в индекс с последующей перебалансировкой по необходимости. Стоимость заметно меньше чем O(N)...

Стоимость добавления одной записи в B*-дерево O(long N). Стоимость добавления одной записи в конец плоского файла - O(1). Поэтому индексы в БД рулят когда больше селектов чем инсертов. Очевидно что в журналах имеет место обратная ситуация - в них пишут обильно, а читают редко.

Absurd ★★★
()
Ответ на: комментарий от I-Love-Microsoft

Linux продвигаю где могу и как могу

И куда можешь, то есть к краю пропасти?

P.S.: нееет, «простые пользователи» - они не хомячки. Они ЛЕММИНГИ. Они набегают толпами и сталкивают впередистоящих в воду...

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

Только вот никто об этом не знает.

это не важно - знает кто-то или нет, лично мне по барабану, главное что я трачу силы и время чтобы это было так, там где «лицензируем windows embedded compact» - я «нет, Linux, поддержка на мне»

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от Absurd

Ну в целом да, с учетом соотношения чтения/записи, при типичном профиле использования логов (просмотр security регулярно и всего остального по мере надобности) индексация неоправдана, особенно при большом объеме логов.

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

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

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

> на счет Gobo-linux (а так же современный дистр с подобной реализацией Moon OS) ты прав, надо что-то менять, программы и версии библиотек должны иметь возможность ставиться в разных версиях и различных сочетаниях

Открой для себя ZeroInstall.

geekless ★★
()
Ответ на: комментарий от I-Love-Microsoft

> это не важно - знает кто-то или нет, лично мне по барабану

Если бы тебе было по барабану, ты бы не произносил таких фраз:

I-Love-Microsoft> умные люди судят человека по реальным делам, отсталые - по нику

tailgunner ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

LD_LIBRARY_PATH

> программы и версии библиотек...в разных версиях и различных сочетания
а сеййчас кто мешает ? 8)

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

Удалять PA же. Хриплый звук пропадает сразу.

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

>> программы и версии библиотек...в разных версиях и различных сочетания

а сеййчас кто мешает ? 8)

Принятая система именования *.so. Я тупо не могу поставить в систему lifbfoo 1.2.3 и libfoo 1.2.4

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

а сеййчас кто мешает ? 8)

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

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от plm

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

Человек, закончивший советскую школу вообще без троек (plm, тройки - позор!), желает поцерингу сдохнуть. Но, в силу привитого в Cоветском Cоюзе противоестественного гуманизма, желает ему смерти быстрой, безболезненной и как можно быстрее, или пусть его Майкрософт на работу возьмет, и он им там Виндоуз «улучшает», забыв о Линуксе навсегда.

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

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

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

>>при чем тут вообще enterprise? Я говорю о home media desktop.

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

я говорю с позиции практики использования анализа строго структурированной базы в условиях жесткого прессинга со стороны обстоятельств.


какой анализ, структурирование и жесткий прессинг??? home media desktop - ты сам это написал.

зы я всё-же искренне надеюсь, что ты пытаешься троллить...

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

Сислог позволяет иметь 1005000 разных файлов, каждый со своими правами.

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

Бенчмарки extN vs SQLite уже забыл

линк в студию

При этом при росте размеров базы скорость записи в неё будет успешно падать.

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

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