시스템 로그 (`journalctl`)가 너무 크고 느립니다


20

journalctl의해 공개 된대로 300MB가 넘는 로그를 유지하고 journalctl --disk-usage있습니다. 내가 실행할 때 모든 것이 순서대로 나타납니다 journalctl --verify.

$ journalctl --disk-usage
Archived and active journals take up 328.0M on disk.

$ journalctl --verify
PASS: /var/log/journal/d7b25a27fe064cadb75a2f2f6ca7764e/system.journal    
PASS: /var/log/journal/d7b25a27fe064cadb75a2f2f6ca7764e/user-65534.journal
PASS: /var/log/journal/d7b25a27fe064cadb75a2f2f6ca7764e/system@02f1aae76e32467390ab88ba03ae559e-0000000000000001-00056515dbdcd67e.journal
PASS: /var/log/journal/d7b25a27fe064cadb75a2f2f6ca7764e/user-1000.journal 
PASS: /var/log/journal/d7b25a27fe064cadb75a2f2f6ca7764e/user-65534@9838f64d6ee047bebec9d30d329064d4-00000000000005bb-00056515dbfe8d9d.journal

grep에서 파이프를 연결할 때 시스템 속도가 느려진 것을 알았습니다 journalctl.

내가 보관하고있는 물건의 크기를 어떻게 현명하게 줄일 수 journalctl있습니까?

원본 .GIF 이미지

답변:


29

systemd 멋진 진공 청소기와 함께 제공

로그 파일을 특정 크기로 제한하는 것은 로그 파일에서 오래된 정보를 "빨리 빼내는"기능을 systemd제공 vacuum합니다. 허용되는 매개 변수는 다음과 같습니다.

 --vacuum-size=BYTES   Reduce disk usage below specified size
 --vacuum-files=INT    Leave only the specified number of journal files
 --vacuum-time=TIME    Remove journal files older than specified time

예를 들어 312MB 소비를 200MB 이하로 줄이려면 다음을 사용하십시오.

$ journalctl --vacuum-size=200M
Deleted archived journal /var/log/journal/d7b25a27fe064cadb75a2f2f6ca7764e/system@00056515dbdd9a4e-a6fe2ec77e516045.journal~ (56.0M).
Deleted archived journal /var/log/journal/d7b25a27fe064cadb75a2f2f6ca7764e/user-65534@00056515dbfe731d-b7bab56cb4efcbf6.journal~ (8.0M).
Deleted archived journal /var/log/journal/d7b25a27fe064cadb75a2f2f6ca7764e/user-1000@1bbb77599cf14c65a18af51646751696-000000000000064f-00056444d58433e1.journal (112.0M).
Vacuuming done, freed 176.0M of archived journals on disk.

디스크 공간 절약

journalctl크기는 실질적으로 감소된다 :

$ journalctl --disk-usage
Archived and active journals take up 136.0M on disk.

크기가 312MB에서 136MB로 감소하여 예상보다 176MB 및 64MB가 절약되었습니다. 이것은 매우 큰 단일 로그 파일로 인해 일회성 예외 일 수 있습니다. 새로운 정보가 발생하면 한 달 후에이 답변을 수정하겠습니다.

부팅 로그 감소

journalctl부트 로그는 32 이었지만 지금은 26로 감소된다 :

$ journalctl --list-boots
-26 0f230cc546fd4aec8f5233e0074ab3e1 Tue 2018-02-13 03:57:20 MST—Wed 2018-02-14 
-25 c0d2c0141dd840cbab75d3c2254f8781 Wed 2018-02-14 22:59:13 MST—Sat 2018-02-17 
-24 aafb2573a6374e019a7165cb8eee74a0 Sun 2018-02-18 06:02:03 MST—Mon 2018-02-19 
-23 8462f1969c6f4d61973e7e245014b846 Mon 2018-02-19 04:16:53 MST—Sat 2018-02-24 
-22 7f71ac2fb9714c49aa05989b741655f2 Sat 2018-02-24 04:24:36 MST—Sat 2018-02-24 
-21 b12a48c363474e5fb39311a166a98d54 Sat 2018-02-24 04:28:09 MST—Sun 2018-02-25 
-20 fbef1e659de64a0cbdcb9994f5a39457 Sun 2018-02-25 17:48:20 MST—Mon 2018-02-26 
-19 3d9b4c10f98d4ef7aab1cb2baa9b74e1 Mon 2018-02-26 08:37:01 MST—Mon 2018-02-26 
-18 4412b117dcc648aa9eceabcd0f205207 Mon 2018-02-26 08:38:00 MST—Mon 2018-02-26 
-17 f6794cbb7fb24213a6f2c3e368f666a1 Mon 2018-02-26 08:39:12 MST—Mon 2018-02-26 
-16 472f968506ed446ab12cf7abc65fa81a Mon 2018-02-26 08:49:37 MST—Mon 2018-02-26 
-15 d575c609d82e4ecd8dcebb70d40160d7 Mon 2018-02-26 17:07:36 MST—Mon 2018-02-26 
-14 878cfd9239a84dae80c62e7413c72951 Mon 2018-02-26 17:24:54 MST—Mon 2018-02-26 
-13 7f9913c7dbff46ab9bbd7c2cbefc4d7d Mon 2018-02-26 17:35:19 MST—Mon 2018-02-26 
-12 bf90829ef13a4e9fa1794bf0a88f4033 Mon 2018-02-26 17:45:12 MST—Wed 2018-02-28 
-11 fb879a836c7c459ab27f6332bee6013b Wed 2018-02-28 03:56:29 MST—Wed 2018-02-28 
-10 b0fec230765046f5bf3d654db1dc13ee Wed 2018-02-28 20:03:15 MST—Thu 2018-03-01 
 -9 72a2d6789eab4396be16348d9ead0408 Thu 2018-03-01 03:58:25 MST—Fri 2018-03-02 
 -8 8bccdc9b16124d26af05c34c8a30a0f5 Fri 2018-03-02 16:54:36 MST—Sat 2018-03-03 
 -7 40c2875db30349f5a9b1dfc849a47c05 Sat 2018-03-03 10:03:48 MST—Sat 2018-03-03 
 -6 781c79d2ec7946afba0fa2300e8ebe56 Sat 2018-03-03 10:04:34 MST—Sat 2018-03-03 
 -5 bb66dc875e414021940b7233072516d2 Sat 2018-03-03 17:43:08 MST—Tue 2018-03-06 
 -4 ba3bcfdc71584757b8bef9df16e7b0f6 Tue 2018-03-06 16:56:36 MST—Tue 2018-03-06 
 -3 60faa0fda99a4ef4b14b73c412d69e50 Tue 2018-03-06 17:00:47 MST—Tue 2018-03-06 
 -2 9b317bb8403344ca84dd2f288bc90410 Tue 2018-03-06 17:02:15 MST—Tue 2018-03-06 
 -1 dcb126be665a4531aae4312af7e51a34 Tue 2018-03-06 17:09:00 MST—Tue 2018-03-06 
  0 6a105af650d5442a9b03004165e58adf Tue 2018-03-06 17:42:45 MST—Wed 2018-03-07 

성능 향상

journalctl무결성 을 확인하는 시간 이 훨씬 빠릅니다.

journalctl 확인 2.png

시간이 10 초에서 4 초로 줄었습니다.

출처에 대한 크레딧


장기 솔루션

cron한 달에 한 번 진공 청소기를 작동 시키는 작업을 만들었습니다 .

주석에 언급 된 다른 옵션은에서 설정하는 것 SystemMaxUse=50M입니다 /etc/systemd/journald.conf. 실제로 옵션을 설정할 수있는 장소는 네 가지가 있습니다.

/etc/systemd/journald.conf
/etc/systemd/journald.conf.d/*.conf
/run/systemd/journald.conf.d/*.conf
/usr/lib/systemd/journald.conf.d/*.conf

비슷한 목표에 실제로 사용할 수있는 옵션많이 있습니다 .

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

5
이것은 영구적 인 해결책이 아니라 임시 해결책입니다. /etc/systemd/journald.confSystemMaxUse=50M
phiresky

@phiresky 이것을 지적 해 주셔서 감사합니다. 답변을 업데이트했습니다.
WinEunuuchs2Unix

2

적은 양의 물건을 표시하도록 journalctl에 지시 할 수 있습니다. 이를 수행하는 다양한 방법이 있습니다.

  • -u [unit]또는 --unit=[unit]: 이것은 journalctl에게 시스템 단위의 로그 만 표시하도록 지시합니다. 예 journalctl -u NetworkManager.service를 들어을 입력 하면 NetworkManager에서 로그를 얻을 수 있습니다.
  • -s [time]또는 --since=[time]: 이것은 특정 시간 이전의 항목을 무시하도록 journalctl에 지시합니다 yyyy-mm-dd hh:mm:ss. 시간을 남기지 않으려면 journalctl에서 00:00:00을 사용합니다. 또한 날짜를 생략하면 journalctl이 현재 날짜를 사용합니다. 다음은 맨 페이지에서 가져온 예 journalctl -s 2012-10-30 18:17:16입니다..
  • -U [time]또는 --until=[time]: 지정된 시간 이후의 항목을 생략한다는 점을 제외하면 위와 매우 유사합니다 . 인수와 구문이 동일합니다.
  • -n [x]또는 --lines [x]: 출력 행 수를 제한합니다. 여기서 "x"는 정수입니다. 을 입력하면 가장 최근journalctl -n 12 의 12 개의 로그 만 표시됩니다.

보유한 데이터의 양도 줄일 수 있지만 WinEunuuchs2Unix는 이미 지적 했으므로 해당 정보를 반복하는 데 시간을 낭비하지 않습니다.


같은 외모는 journalctl다양한 옵션을 가지고 있으며, 사람이 쓰기해야 zenity또는 yadGUI와 프론트 엔드와 함께 필터 메뉴와 라디오 버튼 / 확인란을 드롭 다운. 나는 나 자신을 유혹합니다. 답변이 질문의 정신을 벗어난 경우에도 +1 :)
WinEunuuchs2Unix
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.