LINUX.ORG.RU

Релиз systemd v38 c поддержкой Journal, замены системе syslog

 , , ,


0

2

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

Сообщается, что работа над Journal уже близка к завершению, остаётся нереализованными лишь несколько значительных функций и недостаточно проработана документация. Наиболее заметно наличие Journal при выполнении для сервисов команды 'systemctl status', которая теперь выдаёт в том числе и последние сообщения лога для указанного сервиса. Для совместимости с классическим syslog в systemd интегрирована специальная прослойка, которая использует сокет /run/systemd/journal/syslog для приема сообщений, включая перенаправление сообщений из /dev/log.

Данные сохраняются в /var/log/journal, если такая директория создана, в противном случае лог сохраняется в /run/log/journal. Для просмотра журнала следует использовать утилиту systemd-journalctl, которая по умолчанию генерирует вывод, полностью аналогичный формату /var/log/messages. Используя опции "-o verbose", "-o short-monotonic" или "-o json" можно менять детализацию и формат вывода. Для эмуляции поведения «tail -f» предусмотрена опция "-f".

>>> Подробности

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

Я с интересом слежу, на какой демон положит глаз Поттеринг в следующий раз. pppd? dhcpcd? httpd? xdm? Интрига затягивается!

ntpd - чтоб враг время не поменял.

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

pppd?

Если поттеринг захочет его переписать - я его с радостью поддержу, ибо текущая реализация говно.

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

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

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

pppd так и просится в ядро. Скорости нынче слишком высокие для юзерспейса.

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

Не знаю, как в текущей реализации, но в первом анонсе вроде как обещали в одном процессе. Хотя в исходниках я вроде видел раздельный main() для journald. Мне лень ставить эту кучку отбросов, чтобы проверить.

Я просмотрел исходники, судя по всему - отдельный процесс. Используется cgroups и какая-то инфа от systemd. Пока непонятно, что мешает подделать PID

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

PID разве не ядром выставляется на коннекте через unix socket?

syslog() вроде бы полностью в юзерленде, PID приходит как часть данных из /dev/log. У меня сейчас нет желания лезть в glibc чтоб проверить

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

Тебе даже для того чтобы прочитать /var/log/messages на всех OS надо ставить дополнительный софт. Попробуй, например, открыть его в венде изкоробочным notepad, а я посмеюсь.

Смейся, из коробки WordPad

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

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

на на несколько ГБ из коробки есть cmd type и more

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

Что же ты-то мимо не прошёл? Я-то как раз этими «поделками» толковых людей пользуюсь. И пульс у меня прекрасно работает, и с помощью сыстемдэ я уже 16 месяцев гружусь успешно. И каталог в варе ручками мне не впадло будет сделать если что.
Так что иди-ка лучше мимо ты.

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

И пульс у меня прекрасно работает

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

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

Василий, зачем ты косишь под собаку Павлова? Глянь хотя бы дальше второго сообщения в цепочке.

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

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

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

syslog() вроде бы полностью в юзерленде, PID приходит как часть данных из /dev/log

С учетом того, что /dev/log это сокет, даже текущая реализация syslog с легкостью может определить реальны PID/UID отправившего сообщение.

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

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

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

С учетом того, что /dev/log это сокет, даже текущая реализация syslog с легкостью может определить реальны PID/UID отправившего сообщение.

Да, тогда непонятно, что имел в виду Поттеринг

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

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

Если в этой системе можно будет сделать индексацию по произвольному столбцу то это будет нереально крутое упрощение жизни многим разработчикам.

Так как сейчас все пишут свою систему логов, в основном используя для этого БД.

У бинарного формата основной минус - невозможность редактирования руками. Но вот зачем кому-то понадобится рдактировать логи руками? зачем их вообще редактировать?

Судя по тому что планируется индексация то параметры поиска надо будет задавать самой утилите journalctl или как там ее.

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

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

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

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

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

Может достаточно ^.*syslog*$ в песочницу поселить, плагин к BD и файлы журналов на шифрованую ФС?

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

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

У бинарного формата основной минус - невозможность редактирования руками.

А просмотреть less'ом, грепнуть grep'ом, обработать awk можно влегкую?

100500 раз тут уже писали, бинарный лог нужен не многим. Кому надо, может готовые текстовые логи запихать в базу, либо Поттеринг мог написать добавки к rsyslog или syslog-ng (и те и другие согласятся с радостью). Но чувак сделал свою, несовместимую с другими реализацию, которая решает его задачи и серьезно усложняет решение задач других пользователей syslog (которые сейчас решаются легко стандартными утилитами).

Была бы его реализация совместима с существующими - этот тред закончился бы на 10-ти комментариях.

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

Собрал v38

qlist systemd | grep var
/usr/lib/systemd/system/var-run.mount
/usr/lib/systemd/system/local-fs.target.wants/var-run.mount

Сейчас посмотрю на логи в tmpfs.

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

Ну смотри.

1. Мы знаем, что индексировать по доступным при использовании syslog() полям — никакая не проблема.

2. Мы знаем, что rsyslog может довольно умно анализировать поступающие данные.

3. Мы знаем что rsyslog умеет писать в БД.

Отлично.

Осталось сделать следующий шаг. Сказать: а давайте придумаем новое API, чтобы можно было сразу готовые записи, пригодные для помощения в базу, кидать логгеру, а не просто тесктовую строку. И следом сказать: и давайте этот API реализуем как фичу rsyslog, раз уж он уже так многое умеет, и пусть он этим полезным делом занимается.

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

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

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

Можешь не распыляться, его там нет.

Судя по тому что планируется индексация

Её тоже нет.

Итого, сейчас - стираем первые 512 байт лога и готово, лог становится нечитаемым.

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

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

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

Убунта одобрит systemd осенью, а журнал следующей осенью. Ну или сдвиг еще + полгода, но неизбежно, имхо.

А свой Upstart они просто выкинут чтоли?

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

Посмотрел. Логирует. В логе каша из строк и палок.
Я не гордый, сделал каталог
drwxr-xr-x 3 root root 4096 Янв 13 22:03 /var/log/journal
Передёрнул. Что получается. Логируется уже в /var/log/journal, но /run/log/journal всё-равно рудимент после загрузки валяется
-rw-r----- 1 root root 647168 Янв 13 18:10 0940ae33b4e5d3a7315ede0600000014/system.journal
Зачем?

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

Капитан, не узнаю Вас в гриме.
Зачем этот рудимент нужен после нормальной штатной загрузке при логировании в /var/log?

imul ★★★★★
()

Всё-таки, где можно открыть подписку на сбор средств для убийства Леннарта Поттеринга (Lennart Poettering)?

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

А чем хуже mybinarycat | grep|less хватит ерунду болтать

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

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

Должно быть слово «передёрнуть» было единственное понятное?

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

Да, вызов syslogbin() хотя бы в формате аргументов аля popt, с автоматической дубликацией сообщений по определенным правилам в /dev/log и /dev/binlog ну и, чтобы syslog() тоже дублировал свои сообщения, был бы очень неплохим вариантом. Ну а у Поттеринга, как всегда через жопу и не с того конца начато, запиливать не нужный бинарный формат лога при отсутствии соответствующего системного вызова и хотя бы общих соглашений о его формате, несколько по дилетантски.

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

Я неправильно выразился, надо читать как: при отсутствии стандартного вызова в libc

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

только пусть это сделает кто угодно другой.

да вроде как сделали уже. Для роутеров есть ядерный модуль, но с усеченой функциональностью.

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

Передёрнул. Что получается. Логируется уже в /var/log/journal, но /run/log/journal всё-равно рудимент после загрузки валяется

-rw-r----- 1 root root 647168 Янв 13 18:10 0940ae33b4e5d3a7315ede0600000014/system.journal Зачем?

Одна из задач журнала - логировать события с самого начала, в идеале, с момента запуска компа. В /run/log/journal лежит все, что накопилось до момента появления в системе /var/log/journal

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

Я с интересом слежу, на какой демон положит глаз Поттеринг
в следующий раз. pppd? dhcpcd? httpd? xdm?

sshd

Да. Он сделает sshd доступным только для коннектов из локалки... а для первой версии с локалхоста. Интернет добавит позднее. Встроит в systemd, естественно.

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

- Старый sshd это устаревшая технология и нужен только старперам1111

- Sshd ненужен, мы все сидим с десктопа в кдеешечке^W^W^W^W ой! - мы этого не говорили - юзаем ip kvm и вебадминки111

- ip kvm есть везде1111

- А у кого нет тот нищеброд и не энтерпрайз111

- Точно, либо ты сидишь за десктопом под вендой^W^W(ой!) либо у тебя энтерпрайз деплой, где вебадминка и ip kvm!!!

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

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