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)

Внедрить ядро в systemd

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

Авось Поттеринг вернет нормальный unix-way в линукс.

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

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

Что из этого не «дополнительные программы»?

Это исторически стандартные средства unix-систем. Они настолько врослись в unix-системы, что фактически стали их частью. А стали они их частью из-за их универсальности: ими хоть что делай: хоть логи парси, хоть тексты редактируй, хоть содержимое директорий или файлов просматривай. А костыли systemd, они только для systemd. Велосипед ради велосипеда.

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

ими хоть что делай: хоть логи парси, хоть тексты редактируй, хоть содержимое директорий или файлов просматривай

wat

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

Дану. :) Такой выхлоп или cat делает или more/less/grep/cp или настройка в syslog. Но вовсе не магия.

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

А от отвалятся они у вас - что делать будете? ;-)

Если у вас в системе такие базовые вещи не работают, куда вы с этим собрались лезть и что делать?

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

Бинарные логи могут быть зашифрованы

openssl

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

grep

легко отформатированы (выделение цветом, разный формат даты/времени и т.п.)

sed


nuff said.

val-amart ★★★★★
()

Шикарно же, винда так точно еще не умеет

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

Ну например? grep универсально грепает CR/LF потоки.. А что у нас еще универсальное то? (%

wc? head? tail? cut? tr? Мало? Продолжать перечистять /usr/bin ?

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

Раньше для чтения логов с лайв флешки нужен был драйвер ФС. Теперь нужен еще и journalctl

эт печально все-таки

xroff
()
Ответ на: комментарий от val-amart

Ну расскажи, куда мне нажимать, что бы отфильтровать высеры mpop проверяющего почту текущего пользователя раз в 10 минут?

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

Какой дистрибутив исповедует идею «у нас никогда не будет поделок поттеринга»? Слаку и дебиан не предлагать.

FreeBSD

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

Я не совсем понимаю истоки их универсальности. С таким же успехом можно утверждать, что если у нас весь обмен будет в бинарном формате journald, journalctl станет универсальной утилитой ))

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

Может и так, но для десктопа это вполне себе ок. Собственно целевая группа journald это 90%, которым наплевать на то, как у них хранятся логи. Лишь бы можно было понять что произошло

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

Ну расскажи, куда мне нажимать, что бы отфильтровать высеры mpop проверяющего почту текущего пользователя раз в 10 минут?

диктую по буквам:

m

a

n



g

r

e

p

val-amart ★★★★★
()
Ответ на: комментарий от Vudod

Ни GRUB2, ни HAL, ни даже PulseAudio не были такими упоротыми поделиями

Поразительно, как это вам удалось всю извращенческую гадость последних лет собрать в одном предложении. И все это - порождение конкретно Red Hat? ОМГ!

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

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

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

куда мне нажимать, что бы отфильтровать высеры mpop

Куда мне кликнуть в systemd, чтобы отфильтровать все IP, запросившие /w00tw00t.*, представившись «ZmEu»?

baka-kun ★★★★★
()
Ответ на: комментарий от val-amart

Ну у меня такой поинт был.

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

Достаточно просто понять, что единого рецепта взять и посмотреть логи сейчас просто нет

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

Но с другой стороны зачем эти весьма Ынтерпрайзные системы, когда есть например sqlite

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

В теории можно настроить backend в rsyslog, чтобы он писал не в текстовые файлы, а в sqlite, но на практике мне такое ни разу не попадалось.

anonymous
()

Пристрелите этого клоуна.

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

Ну расскажи, куда мне нажимать, что бы отфильтровать высеры mpop проверяющего почту текущего пользователя раз в 10 минут?

Есть много способов. Обычный юзер сделал бы что-то вроде

cat твойлог | grep -v mpop
Продвинутый скриптоюзер сделал бы что-то вроде
cat твойлог | awk 'substr($5,1,5)!="mpopd["'

А опытный сисадмин настроил бы в /etc/rsyslog.conf лог mpop в отдельный файл, а в /etc/logrotate.d сделал бы ротейт для этого файла, чтобы хранить только последние пару дней.

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

А теперь расскажи, куда надо нажать, чтобы сделать то же самое в journald? ;)

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

найти сервис который стартует mpop

Он (mpop) обычно сам срет в syslog с facility mail. Автоматически. То есть надо грепать логи почтовой подсистемы. Если ты не знаешь, как и куда она у тебя их ведет, то ты не админ, а буратин. А при желании можно написать в syslog.conf, или что его заменяет, аналог

!mpop
*.* /var/log/mpop.log

а уж потом это грепать

А в случае systemd у тебя записи mpop как в логи попадут? Волшебно-магически?

baka-kun ★★★★★
()
Ответ на: комментарий от alex_custov

планируется ли добавление видео плеера? Ведь во время загрузки можно просматривать рекламу?

Вы вот всё шутите, а ведь выводить псевдографику в консоли он уже умеет...

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

Собственно целевая группа journald это 90%, которым наплевать на то, как у них хранятся логи.

Судя по всему, радуется обсуждаемым явлениям именно эта группа.

dm1024 ★★★
()
Ответ на: комментарий от baka-kun

Пока что никто из отдающих /w00tw00t.* не использует какой либо стандартный способ ведения логов. Так что - пичалька :D

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

journalctl _PID=$(lsof -Fp -i TCP:80 -sTCP:LISTEN | tr -d p  ) | your-fav-perl-combo

Но, как бы так сказать, не тот юзкейс

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

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

Или просто пользователь убун^Wфедоры.

А в случае systemd у тебя записи mpop как в логи попадут? Волшебно-магически?

Типа того. Т.к. единообразный способ загребания логов от всех процессов запущенных systemd.

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

Что в этих ваших линаксах дают, то и кушаю. Наверное тоже поцтеринг виноват

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

journalctl _COMM=mpop

Нет, я про нормальное решение. Чтобы логи mpop-а шли в отдельный файл, т.е. не выводились в основных логах, не парсились logwatch-ем и т.д. И чтобы от них хранились только последние три дня.

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

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

никто из отдающих /w00tw00t.* не использует какой либо стандартный способ ведения логов.

Пофигу. Положим, апач научился срать в systemd. Или просят у libmicrohttpd из состава systemd. Кстати, а мы увидем это у него в логах? Что он пишет-то?

journalctl _PID=$(lsof -Fp -i TCP:80 -sTCP:LISTEN | tr -d p ) | your-fav-perl-combo

Чем это лучше банального cat http-access.log | grep … | cut … ? Первый же реальный пример, и systemd хуже уже существующего механизма.

baka-kun ★★★★★
()

Сделали геморрой, а теперь его решают. И http тут, и не http.

У меня на старой машинке (Athlon 3200+ 2 GB RAM), которую я использую исключительно как средства для раздачи торрентов, хранения видео и просмотра фильмов не в HD (ака сериалы) стоит fedora и ubuntu.

Fedora умудряется даже виснуть. Ubuntu - нет. Работает как часы. И, что интересно, даже при использовании Unity работает быстрее.

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

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

А что мне нужно набрать в греп для этого? и да, не /bla/w00t.. , ни /ZmEu, представившись /w00t

Чтение man re_format с выражением — $100 за параграф. Это так сложно — прогрепать строки вида

IP - - [datetime] "GET /w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.1" 404 239 "-" "ZmEu"
?

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