LINUX.ORG.RU

Systemd 194, теперь с HTTP-сервером и генератором QR-кодов

 


3

3

Выход очередной версии init-демона systemd продолжает радовать пользователей новыми встроенными функциями.

В частности:

  • опция HandleSleepKey в logind.conf была разбита на HandleSuspendKey и HandleHibernateKey, старая опция более не доступна;
  • почти полностью удалена утилита multi-seat-x, минимальная обертка оставлена до тех пор, пока DM не начнут поддерживать новую логику перечисления графических устройств Xorg;
  • nspawn теперь создает символическую ссылку /etc/localtime в окружении контейнера;
  • исправлено поведение при отсутствии /etc/vconsole.conf, теперь в этом случае не будет загружаться никакой шрифт;
  • journald теперь пишет в лог максимальный размер, который файлы журнала могут занимать на диске;
  • опция параметра journalctl -n теперь необязательна и по умолчанию равна 10;
  • journalctl -f теперь реагирует на изменение размеров терминала и разбивает строки соответственно;
  • новая опция --cursor в journalctl позволяет выводить записи начиная с определенного места журнала;
  • добавлена поддержка journalctl для bash-completion.

Но две функции привлекли особое внимание. Их заметили пользователи федоры, которые при обновлении обнаружили, что systemd теперь зависит от libmicrohttpd и qrencode. Это стало причиной активно продолжающегося обсуждения в рассылке.

Оказалось, что обе функции связаны с journald — собственной заменой syslog-демона, как известно, входящей в состав systemd. Среди прочего, он отличается тем, что ведет логи в бинарном виде вместо текстового.

Зависимость от qrencode объясняется реализацией функции Forward Secure Sealing, journalctl из состава systemd использует qrencode для вывода QR-кодов в текстовой консоли.

А поскольку логи хранятся бинарно, для работы с ними нужны дополнительные программы. Зависимость от libmicrohttpd вызвана тем, что в состав systemd теперь входит встроенный http-сервер journald-gateway, умеющий отдавать логи в текстовом и json-формате. Его основное предназначение автор видит в синхронизации журнала по сети.

Так выглядит http-сервер journald-gateway в действии

>>> Леннарт про FSS и QR-код

anonymous

Проверено: JB ()
Последнее исправление: Silent (всего исправлений: 3)
Ответ на: комментарий от user_id_68054

Ну я-то текстовые прочитаю, а вот ты бинарные — нет.

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

Например, в такой, когда кроме старинного ливцд ничего нет, система грохнулась, интернет отключили за неуплату, а починить нужно сейчас.

Скопируешь логи на дискеты и отнесешь на машину, где есть systemd. Если не влезет на дискету, придется несколько раз бегать.

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

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

> Does systemd journal populate /var/log/messages ?

No. It doesnt.

Согласен. Хотя там вроде есть тул для экспорта в текстовый формат, ну и кто мешает добавить такой экспортёр, чтобы писал для староверов параллельно в текст?

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

SystemD — НЕ реализовывает функциональность http-сервера — САМ.

Вопрос времени.

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

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

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

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

Ждём systemdos.

ды толку от него? ведь нужно будет ещё и уговорить администратора сервера, чтобы он включил эту http-функцию в systemd. :)

...ну да — зависимость есть.. ну и что? кому от этого плохо? Gentoo-пользователям придётся больше нагревать воздуха в комнате?

я надеюсь — никто же здесь на LOR в чатике — не решил (наивно) что http-порт открыт будет поумалчанию? :-)

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

Как раз наоборот, вместо комбинированния минималистичных и простых утилит, он создает комбайн, который делает кучу всего лишнего (помимо основного функционала).

/me ждет сообщений о тоннах уязвимостей (абсолютно серьезно!)

X-Pilot ★★★★★
()

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

aptyp ★★★★
()

Если бы не бинарные логи...

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

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

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

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

ЛОЛШТО?! «игнорируя файловую систему»?!?!?! :-D

user_id_68054 ★★★★★
()

Так выглядит http-сервер journald-gateway в действии

Читать логи в браузере. Кое-кто знает толк в извращениях.

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

fopen+printf

Это тоже дополнительная программа.

А как ты будешь читать бинарный лог например из javascript

Что-нибудь вроде libjournald.

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

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

user_id_68054> ЛОЛШТО?! «игнорируя файловую систему»?!?!?! :-D

вы уж извените (читатели ЛОР), но я настолько воодушевился этой фразой (читать лог «игнорируя файловую систему») — что приведу и свой пример тогда тоже:

предположим меня во время круиза поймали морские пираты, взяли в плен, и требуют от меня лог от сервера. и говорят что если я не предоставлю им лог в бинарном формате (для проверки валидности), то они отрежут мне я^Wпальцы...

ну и как мне в этом случае помогут текстовые логи? ммм? :) :)

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

Проблема в том что ради системД придется придумывать еще велосипедов, которые будут работать с его логами и больше ни где нахрен не нужны.а cat|less|tail и прочие утилиты просто могут тебе показать сислоговские записи, хотя писались скорее всего не для этого. Таким образом Поцтеринг просто пишет свою новую ось. Пусть пишет, неприятно что он пихает это под соусом старого доброго линукса, и еще имеются идиоты, ему поддакивающие.

RedHat RIP

chenger ★★
()

Я не очень в курсе, как там устроен этот systemd, но вот такая мысль возникла: если эти http и qr-code модули встроены в один большой systemd, то это фигово, но если они сделаны в виде отдельных необязательных модулей, которые даже идут в отдельных пакетах, то и хрен с ними.

GblGbl ★★★★★
()

Зависимость от qrencode объясняется реализацией функции Forward Secure Sealing

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

A-234 ★★★★★
()
Ответ на: комментарий от unsigned

Смысл в том, что для текстовых файлов - тысячи прог. А вот тут одна единственная.

anonymous
()

Кому-то это может быть все и нужно, но явно не всем. Думаю пора делать для Systemd версии Enterprise и HomeEdition.

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

ЛОЛТО. Логи обычно не от хорошей жизни читают. В том числе с битых дисков. И не только логи.

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

....то причина поломки системы — в том что — У ВАС ИСПОРТИЛИСЬ ДИСКИ!

кэп помог мне разобраться в этой «не лёгкой» ситуации :-)

user_id_68054 ★★★★★
()

FSS is based on «Forward Secure Pseudo Random Generators» by Bertram Poettering at the Royal Holloway/University of London, who is a cryptography postdoc and researches these kind of things. (He also happens to be my brother...) A paper about FSPRG will be published shortly.

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

По факту - это все отдельные дополнительные программы. Их наличие не обязательно как для sysvinit, так и для systemd.

Ты наверное самый умный, да? Накася, почитай-ка описание стандарта http://pubs.opengroup.org/onlinepubs/9699919799/

и ткни там ссылочку «Utilites», если сильно удивишься, то извиняй

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

Кому-то это может быть все и нужно, но явно не всем. Думаю пора делать для Systemd версии Enterprise и HomeEdition.

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

..ну и кстате, да, я был бы наверно не против если бы была бы отдельная версия ядра — для домашнего ПК.

хотя и такой вариант (какой есть сейчас) — меня тоже устраивает. так как если я что-то не использую — то вобщем-то оно мне и не мешает (в отключённом-то виде)

ну подумаешь что места немножко больше занимает на HDD, но оперативной-то памяти сёравно не занимает больше чем надо (отключённые модули не засоряют ОЗУ)

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

Это тоже дополнительная программа.

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

Tark ★★
()

Зависимость от libmicrohttpd вызвана тем, что в состав systemd теперь входит встроенный http-сервер journald-gateway, умеющий отдавать логи в текстовом и json-формате

только мне кажется, что это безумие ?
Это что, конкурс шаловливые ручки, и всё, что можно пихается в этот безумный сервер ?

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

Jetty> journalviewer никогда не будет частью базовой системы, он как был частью системд, так ею и останется.

ха! тыг systemd и есть базовая сать ОС..

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

Пример искусственный: раз смог поставить линукс с системд - ничего не мешает и ливцд обновить.

Если ты локалхостшколоте, то да. А есть идёт речь об обслуживании парка различных серверов?

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

Моя убунтушная рожа смотрит на тебя с непониманием...
Даже моя жена смотрит в свой визи и тебя совсем не понимает...

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

не. системд фор виндовс не существует

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

cat|less|tail и прочие утилиты просто могут тебе показать сислоговские записи

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

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

Похоже, именно этого мр. Поттер-инг и добивается! Может он засланный казачек от Мелкософта?

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

Но текстового редактора в ней не будет

(defun ed (prompt)
  (while t
    (read-from-minibuffer prompt)
    (princ "?\n")))

Пожалуйста! Держите реализацию ed на елиспе!

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

не могу найти, если чесно...

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

user_id_68054 ★★★★★
()

Не, сама идея ничего так. Но блин, _жесткая_ зависимость на http-сервер - это перебор

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

Кэп конечно помог, только вот восстанавливать картину происшествия и вытягивать данные всё равно приходится.

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

он как был частью системд, так ею и останется.

... а системд вполне может войти в базовую систему. И, видимо, сделает это.

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

А для бинарного лога нужна будет библиотека текущей версии, под текущую платформу и архитектуру.

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

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

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

как раз по сложному признаку через «удобное и быстрое решение» обычно никак. Если впихнуть в это решение все возможности тех же cat, less и tail, которые можно использовать при чтении лога - то получится emacs

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

Ну и вот. Чтобы лог просто посмотреть, человеку нужно будет интенсивно гуглить. А библиотеки для конкретного языка искать вообще мрак. Я бы понимал, если бы они JSON или BSON хотя-бы использовали, так ведь нет, видимо на чужом велосипеде седло не по размеру.

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