systemd-journald 시스템 로그는 스토리지=영구에도 불구하고 부팅 전반에 걸쳐 지속되지 않습니다.

systemd-journald 시스템 로그는 스토리지=영구에도 불구하고 부팅 전반에 걸쳐 지속되지 않습니다.

최근에 systemd가 이전 부팅의 로그를 보존하지 않는 문제가 발생했습니다. 여기와 다른 곳에서 여러 답변을 확인했지만 해결책을 찾지 못했습니다.

문제는 사용자 로그는 부팅 시 지속되지만 시스템 로그는 유지되지 않는다는 것입니다.

/etc/systemd/journald.conf

[Journal]
Storage=persistent
SystemMaxUse=500M
SystemMaxFiles=5

journalctl -b -1

[root@2ba2de9e /var/log/journal] # journalctl --system -b -1
Data from the specified boot (-1) is not available: No such boot ID in journal

나는 라즈베리 파이에서 Archlinux arm을 사용하고 있습니다.

버전4.14.24-1-ARCH systemd 237.64-1 systemd-sysvcompat 237.64-1

왜 이런 일이 발생하는지 아는 사람이 있나요? 내 데스크톱 컴퓨터에서는 문제 없이 작동하나요?

답변1

디스크 공간이 부족하기 때문에 저널이 이전 로그를 제거하는 것이 가능합니다. (부팅 후 얼마나 오랫동안 작동하지 않는지 언급하지 않았 -b -1으므로 당시 현재 부팅에서 로그가 많이 있는지는 알 수 없습니다.)

구성했지만 SystemMaxUse=500M여유 디스크 공간이 너무 많지 않으면 저널이 500MB 미만을 사용하기로 결정할 수도 있습니다. 또한 SystemKeepFree=...기본적으로 파일 시스템 크기의 15%(또는 4GB, 더 작은 크기)로 설정되는 설정 도 있으며 , Journald는 허용하는 공간보다 더 강력하게 해당 제한을 적용합니다. 파티션이 빡빡 하다면 /var/log/journal그게 문제의 일부일 수도 있습니다.

다음과 같은 일부 명령을 사용하여 저널이 사용하는 공간의 양을 확인할 수 있습니다.

$ journalctl --disk-usage

그리고 다음을 통해 저널드가 알고 있는 부츠 수(및 시간과 ID)도 확인할 수 있습니다.

$ journalctl --list-boots

이는 문제를 해결하는 데 도움이 될 수도 있습니다...

이게 도움이 되길 바란다!

답변2

내 배포판에는 이 파일이 포함되어 있습니다. /etc/systemd/journald.conf.d/volatile-storage.conf 다음 줄이 있었습니다.

Storage=volatile

휘발성 부분을 지속적으로 변경해야 합니다. 그렇지 않으면 변경 사항이 /etc/systemd/journal.conf무시됩니다.

답변3

연장 기간거울대답 Storage=volatile하고 Storage=auto작동하려면 /var/log/journal디렉터리가 존재해야 하며 일부 배포판에서는 기본적으로 이 위치를 제공하지 않습니다.

journald따라서 메모리에 있는 모든 것을 플러시하도록 만들고 지시해야 합니다 .

sudo mkdir /var/log/journal     ## Enable persistent logging
sudo journalctl --flush

관련 정보