저는 raspberrypi 머신에서 yocto 기반 시스템과 함께 systemd를 사용하고 있습니다. 최근에 메시지를 rsyslog.socket으로 리디렉션하는 데 문제가 있어서 rsyslog
완전히 제거하기 로 결정했습니다 journald
.
이 작업을 수행한 후 로그 파일 크기가 이전에 생각했던 것보다 훨씬 크다는 것을 알았습니다.
root@rpiDev: ~ $ journalctl -o cat > /tmp/journals-cat.txt
root@rpiDev: ~ $ journalctl -o export > /tmp/journals-exp.txt
root@rpiDev: ~ $ journalctl -o verbose > /tmp/journals-verb.txt
root@rpiDev: ~ $ journalctl -a -m > /tmp/journals.txt ### This is what I need!
root@rpiDev: ~ $ journalctl -a -m -o verbose > /tmp/journals-everything.txt
root@rpiDev: ~ $ du -sh /tmp/journals* /var/log/journal/ ; journalctl --disk-usage
468.0K /tmp/journals-cat.txt
15.7M /tmp/journals-everything.txt
4.7M /tmp/journals-exp.txt
4.9M /tmp/journals-verb.txt
2.3M /tmp/journals.txt
41.0M /var/log/journal/
Archived and active journals take up 12.5M on disk.
크기를 비교해 보면, 저널이 생성한 바이너리는 merge() 저널보다 훨씬 큰 것으로 보입니다 -m
.
나에게 정말 필요한 것은 그 안에 들어 있는 것입니다 /tmp/journals.txt
.
질문:
로그가 바이너리에 저장하는 콘텐츠의 양을 런타임에 내가 알 수 있는 수준으로 줄이는 것이 가능합니까 journalctl -a -m
?
즉, 나에게 중요하지 않은 모든 정보의 저장을 비활성화하고 Journald를 syslog처럼 사용할 수 있습니까?
로그의 영구 저장을 비활성화하고 이를 syslog로 전달하면 문제가 해결될 수 있지만 rsyslog를 다시 가져오지 않고도 가능할까요?
편집하다:
일부 사용자가 언급한 매개변수는 여기서는 도움이 되지 않았습니다.
- 저장된 파일의 최대 크기만 사용
SystemMaxUse=
하고RuntimeMaxUse=
설정하십시오. 동일한 양의 원치 않는 정보를 포함하는 더 작은 파일을 가질 수 있으므로 실제 로그는 훨씬 더 적습니다. MaxLevel...=
로그에 저장되는 최대 로그 수준을 설정하는 데 사용됩니다 . 여기서도 그건 나에게 필요한 것이 아니다.
편집 2:
내 솔루션:
나는 syslog(내가 사용하는)에 로그를 저장하기로 결정했습니다 rsyslog
. 내 Journald.conf에서 및를
설정 Storage=volatile
하고 사용하여 저널드의 디스크 사용량을 제한했습니다. 또한 이를 활성화하여 이제 이전 syslog 솔루션이 제대로 작동하고 런타임 로그도 볼 수 있습니다.SystemMaxUse=64M
RuntimeMaxUse=64M
ForwardToSyslog=yes
답변1
/etc/systemd/journald.conf
로그가 메모리와 디스크에서 사용할 수 있는 공간을 지정하려면 편집하세요 .
man journald.conf
포함된 설정에 대한 자세한 설명을 참조하세요 .