LINUX.ORG.RU
ФорумAdmin

Не те записи из журнала journald

 


0

2

Когда я даю команду «journalctl -b --no-pager» должны же выводиться все записи из журнала начиная с последней загрузки потому что "-b", но у меня почему-то выводятся и записи двухмесячной давности, хотя с тех пор сервер перезагружался более десятка раз. Как это исправить?

★★★★★

А journald не «улучшен» какими-нибудь дистрибутивными патчами, чтобы читать логи из rsyslog того же?

У меня работает правильно в Debian 10 (пересылка в syslog отключена, хранение на диске включено) и в Ubuntu 18.04 (тут пересылка включена).

anonymous
()

А journalctl --list-boots что говорит?

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

Отвечу обоим. Да, дефолтный journald.conf для CentOS 7. Вернее это cloud-версия CentOS 7, потому что vds.
«journalctl --list-boots» выдаёт:

 0 60738b1bf06947f9ab07d8038e99ab4c Вт 2019-01-08 02:05:10 MSK—Ср 2019-01-16 19:08:05 MSK
А строк должно было выдаваться несколько ведь?

syslog тут упомянали. journald это ведь полноценная замена syslog? То есть, если какая-то программа должна что-то писать в syslog, но в journalctl эти записи не видны, то смотреть нужно не в journald, а в настройках этой программы?

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

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

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

Я тут нашёл настройку Storage в journald.conf, поменял её с auto на persistent, но ничего не поменялось. Может дело в том, что операционная система работает в контейнере OpenVZ?

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

Может дело в том, что операционная система работает в контейнере OpenVZ?

Чем чёрт не шутит, может и оно...

mandala ★★★★★
()

Точно двухмесячной? Меня вечно сбивает с толку (и люто бесит) первая строчка «Logs begin at S, end at Y», где S и Y по факту никак не зависят от фильтра и означают начало/конец всего журнала. На самом деле дальше записи идут с последней загрузки. Ещё однажды долго тупил, что восстановление из hibernate - это продолжение старой загрузки.

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

Ну чуть менее 2-х месяцев, даже менее одного, но это не столь важно, главное что эта VDS создавалась не вчера и не позавчера, и, сейчас, когда я с ней активно копаюсь, каждый день перезагружается по 1-2 раза.

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

Может дело в том, что операционная система работает в контейнере OpenVZ?

Чем чёрт не шутит, может и оно...

Опытным путём выяснилось, что это действительно так, для CentOS, работающей в контейнере OpenVZ будет только один журнал - «0», а вот если запустить в KVM, или не в виртуалке, а на реальном железе, то «0» и "-1".
Собственно возник вопрос, а как можно тогда принудительно создать журнал "-1" и сбросить в него старые записи?

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

Импорт на лог-сервер journald или в альтернативную лог-систему. И это не даст лог -1, но вообще сохранит логи.

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

Проблема в том, что сустемд писался уже без оглядки на openvz. Тут свои контейнеры и удобный импорт логов из них на уровне journald — проблемы типа нет, просто не используйте то, что мы не поддерживаем ).

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

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

У ТС хост не под его контролем, у него journald, автономно работающий внутри контейнера, работает неправильно.

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

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

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

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

mandala ★★★★★
()
Последнее исправление: mandala (всего исправлений: 1)
Ответ на: комментарий от mandala

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

У него не эфемерный контейнер, алё. Там целая система в контейнере.

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

Что такое «нативный контейнер»?

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

О, intelfx сам себя призвал.

Короче, я понял, что кажется заблуждался, файлы журналов, которые в /var/log/journal - это одно, а загрузки, которые «0» и "-1" - это совсем другое. Самих файлов журналов у меня несколько, они вроде вполне себе ротируются.
К хост-машине у меня на самом деле доступа нет, мало того, на хост-машине, по некоторым данным CentOS 6 без поддержки systemd.
Так я могу всё-таки как-нибудь просматривать логи, чтобы в них не попадало дерьмо 2-месячной давности, при этом эти старые записи не удаляя физически?

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

О, intelfx сам себя призвал.

Я подписан только на тег systemd. Этот тред я случайно увидел в трекере.

файлы журналов, которые в /var/log/journal - это одно, а загрузки, которые «0» и «-1» - это совсем другое

Да, это так.

К хост-машине у меня на самом деле доступа нет

Я в курсе.

Так я могу всё-таки как-нибудь просматривать логи, чтобы в них не попадало дерьмо 2-месячной давности, при этом эти старые записи не удаляя физически?

systemd определяет факт перезагрузки по смене т. н. boot id, который псевдослучайно генерируется ядром:

cat /proc/sys/kernel/random/boot_id

(https://unix.stackexchange.com/questions/283689/how-to-get-the-current-boot-id-in-journald)

Я бы сказал, что тебе нужно менять хостера. Ищи такого, который выделит тебе честную KVM-виртуалку, а не OpenVZ-контейнер.

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