После завершения этого раздела вы сможете настроить системный журнал, чтобы записи событий сохранялись после перезагрузки сервера.
По умолчанию системные журналы хранятся в каталоге /run/log/journal, а это означает, что они очищаются при перезагрузке системы. Вы можете изменить конфигурацию службы systemd-journald в файле /etc/systemd/journald.conf, чтобы журналы сохранялись при перезагрузке.
/run/log/journal
systemd-journald
/etc/systemd/journald.conf
Параметр Storage в файле /etc/systemd/journald.conf определяет, нужно ли сохранять системные журналы при перезагрузке системы. Задайте для этого параметра значение persistent, volatile, auto или none, как указано ниже.
Storage
persistent
volatile
auto
none
persistent: журналы сохраняются в каталоге /var/log/journal, который сохраняется при перезагрузке.
/var/log/journal
Если каталог /var/log/journal не существует, служба systemd-journald создает его.
volatile: журналы хранятся во временном каталоге /run/log/journal.
Поскольку файловая система /run является временной и существует только в памяти среды выполнения, хранящиеся в ней данные, включая системные журналы, не сохраняются при перезагрузке.
/run
auto: если каталог /var/log/journal существует, служба systemd-journald использует постоянное хранилище, а если не существует, то временное.
Это действие по умолчанию, если не задан параметр Storage.
none: хранилище не используется. Все log-файлы отбрасываются, но переадресация log-файлов по-прежнему работает.
Преимущество постоянных системных журналов заключается в том, что данные журнала доступны сразу же после начальной загрузки системы. Однако даже с постоянным журналом не все данные хранятся бессрочно. Журнал использует встроенный механизм ротации, который запускается каждый месяц. Кроме того, по умолчанию журнал не может занимать больше 10 % размера файловой системы, в которой он находится, или оставлять свободной меньше 15 % файловой системы. Эти значения можно настроить в файле /etc/systemd/journald.conf как для временных, так и для постоянных журналов. Текущие ограничения размера журнала регистрируются при запуске процесса systemd-journald. Следующий вывод команды показывает записи журнала, которые отражают текущие ограничения размера.
[user@host ~]$ journalctl | grep -E 'Runtime|System journal' Feb 25 13:01:46 localhost systemd-journald[147]: Runtime journal (/run/log/journal/ae06db7da89142138408d77efea9229c) is 8.0M, max 91.4M, 83.4M free. Feb 25 13:01:48 remotehost.lab.example.com systemd-journald[548]: Runtime journal (/run/log/journal/73ab164e278e48be9bf80e80714a8cd5) is 8.0M, max 91.4M, 83.4M free. Feb 25 13:01:48 remotehost.lab.example.com systemd-journald[548]: System journal (/var/log/journal/73ab164e278e48be9bf80e80714a8cd5) is 8.0M, max 3.7G, 3.7G free. Feb 25 13:01:48 remotehost.lab.example.com systemd[1]: Starting Tell Plymouth To Write Out Runtime Data... Feb 25 13:01:48 remotehost.lab.example.com systemd[1]: Started Tell Plymouth To Write Out Runtime Data.
[user@host ~]$
journalctl | grep -E 'Runtime|System journal'
Feb 25 13:01:46 localhost systemd-journald[147]: Runtime journal (/run/log/journal/ae06db7da89142138408d77efea9229c) is 8.0M, max 91.4M, 83.4M free.
Feb 25 13:01:48 remotehost.lab.example.com systemd-journald[548]: Runtime journal (/run/log/journal/73ab164e278e48be9bf80e80714a8cd5) is 8.0M, max 91.4M, 83.4M free.
Feb 25 13:01:48 remotehost.lab.example.com systemd-journald[548]: System journal (/var/log/journal/73ab164e278e48be9bf80e80714a8cd5) is 8.0M, max 3.7G, 3.7G free.
В команде grep выше символ вертикальной черты (|) действует как оператор or. То есть grep находит любую строку, содержащую Runtime или System journal, в выводе journalctl. В результате отображаются текущие ограничения размера и для временного хранилища журналов (Runtime), и для постоянного (System).
|
Runtime
System journal
System
Настройка постоянных системных журналов
Чтобы настроить службу systemd-journald на сохранение системных журналов при перезагрузке, установите для переменной Storage значение persistent в файле /etc/systemd/journald.conf. Отредактируйте файл /etc/systemd/journald.conf в любом удобном текстовом редакторе.
[Journal] Storage=persistent ...output omitted...
Отредактировав файл конфигурации, перезапустите службу systemd-journald, чтобы изменения вступили в силу.
[root@host ~]# systemctl restart systemd-journald
[root@host ~]#
systemctl restart systemd-journald
Если служба systemd-journald успешно перезапустится, вы увидите, что был создан каталог /var/log/journal с одним или несколькими подкаталогами. Эти подкаталоги имеют длинные имена из шестнадцатеричных символов, и в них содержатся файлы *.journal. Файлы *.journal ― это двоичные файлы, в которых хранятся структурированные и проиндексированные записи журнала.
*.journal
[root@host ~]# ls /var/log/journal 73ab164e278e48be9bf80e80714a8cd5 [root@host ~]# ls /var/log/journal/73ab164e278e48be9bf80e80714a8cd5 system.journal user-1000.journal
ls /var/log/journal
ls /var/log/journal/73ab164e278e48be9bf80e80714a8cd5
73ab164e278e48be9bf80e80714a8cd5
Если системные журналы сохраняются при перезагрузке, вы получите очень большое количество записей в выводе команды journalctl, поскольку отображаются не только записи из текущего сеанса, но и из предыдущих сеансов системы. Чтобы ограничить вывод данными конкретного сеанса системы, используйте опцию -b с командой journalctl. Следующая команда journalctl возвращает записи первой загрузки системы:
-b
[root@host ~]# journalctl -b 1 ...output omitted...
journalctl -b 1
1
Следующая команда journalctl возвращает записи второй загрузки системы: Следующий аргумент имеет смысл только в том случае, если система была перезагружена не менее двух раз:
[root@host ~]# journalctl -b 2
journalctl -b 2
Следующая команда journalctl возвращает записи текущей загрузки системы:
[root@host ~]# journalctl -b
journalctl -b
При отладке системного сбоя с помощью постоянного журнала обычно требуется ограничить запрос журнала перезагрузкой перед сбоем. Опция -b может быть задана с отрицательным числом, которое указывает, сколько загрузок системы следует включить в вывод. Например, journalctl -b -1 ограничивает вывод предыдущей загрузкой.
Man-страницы systemd-journald.conf(5), systemd-journald(8)
systemd-journald.conf
Дополнительные сведения см. в разделе Troubleshooting problems using log files руководства Red Hat Enterprise Linux 8 Configuring basic system settings: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_basic_system_settings/index#troubleshooting-problems-using-log-files_getting-started-with-system-administration