저널링을 통해 로그 저장 용량을 늘리는 방법은 무엇입니까?

저널링을 통해 로그 저장 용량을 늘리는 방법은 무엇입니까?

로깅을 통해 영구 로그를 기록하고 싶습니다. /var/log/journal서비스를 만들고 다시 로드했습니다. 이제 로그가 디스크에 저장되었습니다. 그러나 로그 크기 제한은 더 낮습니다.

나는 추가했다 /etc/systemd/journald.conf. ( Storage=persistent/auto상관없습니다. 저는 모두 시도해 보았습니다.)

[Journal]
Storage=persistent
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitInterval=30s
#RateLimitBurst=1000
#SystemMaxUse=
SystemKeepFree=10G
SystemMaxFileSize=1G
#SystemMaxFiles=100
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
#RuntimeMaxFiles=100
#MaxRetentionSec=
#MaxFileSec=1month
#ForwardToSyslog=yes
#ForwardToKMsg=no
#ForwardToConsole=no
#ForwardToWall=yes
#TTYPath=/dev/console
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info
#MaxLevelWall=emerg

보시다시피 방금 각 로그 파일 크기를 1Gb로 변경하고 디스크에 10Gb의 여유 공간을 원한다고 말했습니다.

그런데 journald로그 저장 용량이 4GB밖에 안 된다고 하더군요.

$ sudo systemctl status systemd-journald
...
jan 20 15:44:26 host systemd-journald[1218]: System journal (/var/log/journal/) is 4.5G, max 4.0G, 0B free.
jan 20 15:44:26 host systemd-journald[1218]: Journal started

내가 놓친 게 무엇입니까?

$ systemctl --version
systemd 229
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN

답변1

SystemMaxUse=100G예를 들어 다음과 같이 설정해야 합니다 .

답변2

~에서남성페이지:

SystemMaxUse=、SystemKeepFree=、SystemMaxFileSize=、SystemMaxFiles=、RuntimeMaxUse=、RuntimeKeepFree=、RuntimeMaxFileSize=、RuntimeMaxFiles=

[...]

첫 번째 쌍의 기본값은 해당 파일 시스템 크기의 10%이고 두 번째 쌍의 기본값은 15%이지만 각 값은 4G로 제한됩니다. 파일 시스템이 거의 꽉 찼고 systemd-journald를 시작할 때 SystemKeepFree= 또는 RuntimeKeepFree=를 위반하면 제한이 실제 사용 가능 비율로 늘어납니다. 즉, 로그 파일이 생성되기 전에 여유 공간이 충분하고 다른 이유로 파일 시스템이 가득 차면 로그는 더 이상 공간 사용을 중지하지만 공간을 다시 줄이기 위해 기존 파일을 삭제하지도 않습니다.

그렇습니다. 최대값은 입니다 4G.하지만, 귀하의 경우 다음이 흥미롭습니다.

Journalctl 및 systemd-journald는 이름이 ".journal" 또는 ".journal~"로 끝나지 않는 모든 파일을 무시하므로 현재 디스크 사용량을 계산할 때 해당 디렉터리에 있는 파일만 고려됩니다.

따라서 로그 파일을 정기적으로 이동하면 제한 사항을 피할 수 있습니다. 알아채다그런 다음 로그가 파일 시스템을 가득 채우지 않도록 해야 합니다. 이전 로그 파일을 삭제하세요! 최대 크기가 1G인 파일이 1개 있다고 가정한 다음 주기적으로 파일을 확인하고 ${filename}.n위치 1-9로 이동할 n수 있습니다. 따라서 1G파일이 가장 오래된 크기에 도달하면 파일을 이동하는 한 최대 10G가 됩니다 ${filename}.n. 로그를 읽으려면 이름을 무시하고 가장 오래된 것부터 가장 어린 것까지만 고려하면 됩니다...

답변3

로그 파일 수가 소진되어 제한에 도달하기 전에 systemd가 SystemMaxFiles폴더에서 로그 파일을 삭제하기 시작 하므로 이 값을 늘려야 할 수도 있습니다./var/log/journal/*/System{MaxUse/KeepFree}

/var/log/journal/*/systemd@*.journal파일당 100 개로 제한되는 내 시스템에서는 129Mb기본 제한이 100개에 불과하며, 100으로 설정되었음에도 불구하고 SystemMaxFiles저장되는 로그의 양은 실제로 최대 13GB로 제한됩니다.SystemMaxUse50G

관련 정보