Рубрики
syslog \ rsyslog \ zabbix

systemd-journald / сохранение логов на диск

Ссылки:

Journald. Шпаргалка по работе с journalctl.
https://habr.com/ru/companies/ruvds/articles/533918/ https://wiki.archlinux.org/title/Systemd/Journal https://wiki.archlinux.org/title/Systemd_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)/Journal_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)

Самый простой и стандартный случай случай

0. Редактируем конфиг:
vim /etc/systemd/journald.conf
------------------------------
Storage=persistent
SystemMaxUse=1G   # Настройте размер, сколько примерно хотите использовать
------------------------------

1. Перезапускаем демон
systemctl restart systemd-journald

Как может быть на устройстве загрузившегося с сд карты

0. Первым делом проверяем катало /var/log и файл /etc/fstab
Проверяем и заодно сколько места 
df -h /var/log
--------------
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           1.9G  1.3M  1.9G   1% /var/volatile   
--------------

Проверяем  нет ли у нас монтирования в "/var/volatile" (собственно мы это уже увидели в команде df)
cat  /etc/fstab
--------------
# stock fstab - you probably want to override this with a machine specific one

/dev/root            /                    auto       defaults              1  1
proc                 /proc                proc       defaults              0  0
devpts               /dev/pts             devpts     mode=0620,ptmxmode=0666,gid=5      0  0
tmpfs                /run                 tmpfs      mode=0755,nodev,nosuid,strictatime 0  0
#tmpfs                /var/volatile        tmpfs      defaults              0  0                   < ------------ вот эту строку комментируем так как это и есть наша проблема

# uncomment this if your device has a SD/MMC/Transflash slot
#/dev/mmcblk0p1       /media/card          auto       defaults,sync,noauto  0  0

--------------

1.Редактируем файл если ошибка при выполнении команды "systemd-tmpfiles --create --prefix /var/log/journal"
Пример ошибки
systemd-tmpfiles --create --prefix /var/log/journal
---------------------------------------------------
/usr/lib/tmpfiles.d/dbus.conf:13: Line references path below legacy directory /var/run/, updating /var/run/dbus/containers → /run/dbus/containers; please update the tmpfiles.d/ drop-in file accordingly.
---------------------------------------------------

vim /usr/lib/tmpfiles.d/dbus.conf
Найдите строку, которая содержит путь /var/run/dbus/containers, и замените её на новый путь /run/dbus/containers.
---------------------------------
# Fields: type; path; mode; uid; gid; age; argument (symlink target)

# Make ${localstatedir}/lib/dbus (required for systemd < 237)
# Adjust mode and ownership if it already exists.
d /var/lib/dbus 0755 - - -

# Make ${localstatedir}/lib/dbus/machine-id a symlink to /etc/machine-id
# if it does not already exist
L /var/lib/dbus/machine-id - - - - /etc/machine-id

# Create ${runstatedir}/dbus/containers owned by the system bus user.
# org.freedesktop.DBus.Containers1 uses this to create sockets.
#d /var/run/dbus/containers 0755 messagebus - - -                                <------------- Вот эта строка мы ее закомментируем (поставили в начале "#")
d /run/dbus/containers 0755 root root -                                           <------------- Вот эту добавим 
----------------------------------


2. Выполняем перезагрузку устройства 
reboot

3. Проверяем что наши правки fstab сработали
df -h /var/log
--------------
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        29G   26G  1.8G  94% /                     <---------------- Вот видим что каталог /var/log точка его монтирования корень диска


4. Приступаем к настройки systemd-journald
mkdir -p /var/log/journal
systemd-tmpfiles --create --prefix /var/log/journal
chown root:systemd-journal /var/log/journal
systemctl restart systemd-journald

5. Перезагружаем устройство несколько раз и убеждаемся что логи теперь сохраняются
ls -l /var/log/journal
journalctl -b 0
journalctl -b 1
journalctl -b 2
journalctl --list-boot
--------------




хз может пригодится

systemctl disable nexuscli.service
systemctl disable node-backend.service
systemctl disable node-frontend.service
systemctl stop nexuscli.service
systemctl stop node-backend.service
systemctl stop node-frontend.service



journalctl --vacuum-size=1000M
journalctl --vacuum-time=2weeks




Вариант загружать конфиг systemd-journald из другого файла
systemctl show systemd-journald.service -p FragmentPath -p DropInPaths
mkdir -p /etc/systemd/system/systemd-journald.service.d
vim /etc/systemd/system/systemd-journald.service.d/override.conf
----------------------------------------------------------------
[Service]
Environment=SYSTEMD_JOURNALD_STORAGE=persistent
----------------------------------------------------------------
systemctl daemon-reload
systemctl restart systemd-journald