시스템 로그를 1년 동안 보관하는 방법은 무엇입니까?

시스템 로그를 1년 동안 보관하는 방법은 무엇입니까?

기본적으로 내 시스템의 최대 크기는 약 500MB이며, 여기에는 약 1개월 분량의 로그가 포함됩니다.

System Journal (/var/log/journal/dd35c7606a5645c5acc9908470c45159) is 483.2M, max 491.5M, 8.2M free.

491.5M 한도가 어떻게 결정되는지 모르겠습니다. 다음 설정을 변경하고 시스템을 다시 시작했습니다.

└──> grep SystemMaxUse /etc/systemd/journald.conf
SystemMaxUse=25G

이제 최대 로그 크기는 1.0G입니다. 왜 25G가 아닌가?

System Journal (/var/log/journal/dd35c7606a5645c5acc9908470c45159) is 568.6M, max 1.0G, 455.3M free.

내 디스크에 여유 공간이 충분합니다(94%).

└──> df -h /var/log/journal
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       885G   50G  791G   6% /var

최대 로그 크기를 더 늘리려면 어떻게 해야 합니까?

가능하다면 기본 제한인 1개월을 유지하되, 오래된 로그 파일을 삭제하지 않고 필요할 때 쿼리할 수 있는 곳에 보관하고 싶습니다.

고쳐 쓰다: 명확히 하자면, 이제 내 로그 파일은 500MB 제한 이후 삭제되며 제한을 25G로 늘리고 싶습니다. 설정 후에도 SystemMaxUse=25G한도는 1GB 이상으로 늘어나지 않습니다.

답변1

systemd-journald 옵션에 대한 전체 문서는 다음 위치에 있습니다.무료 데스크탑 네트워크

이 경우 찾고 있는 옵션은 SystemMaxUse, SystemKeepFree, SystemMaxFileSize 및 SystemMaxFiles입니다. 영구 로그의 총 한도인 SystemMaxUse를 설정했습니다.부츠 전체에 회전 포함. 문제는 가동 시간이 너무 높고 단일 저널의 한도를 초과한다는 것입니다. 따라서 매우 큰 개별 로그를 허용하려면 SystemMaxFileSize를 25GB로 설정해야 합니다.

또한 SystemMaxFiles를 1000과 같은 더 큰 값으로 설정해야 하루에 거의 3번 재설정할 수 있고 할당된 공간이 부족하지 않는 한 연도의 첫 번째 날에는 로그를 삭제하지 않을 수 있습니다.

또한 위에서 설명한 대로 365일 보존을 얻으려면 MaxRetentionSec를 31536000으로 설정해야 합니다.

기본적으로 로그를 보존하려면 로그 보존 조건이 모두 함께 이루어져야 적용 가능하며 적용 가능한 규칙을 설정해야 합니다. 따라서 이 답변도 불완전할 수 있습니다.

답변2

파일에는 정확히 필요한 옵션이 있습니다 journald.conf.

매뉴얼 페이지에서[1]:

MaxFileSec=

    The maximum time to store entries in a single
    journal file before rotating to the next one.
    [...]
    This setting takes time values which may be
    suffixed with the units "year", [...]

[1] https://www.freedesktop.org/software/systemd/man/journald.conf.html#MaxFileSec=

답변3

사용 사례에 따라 매일(예: 매일) 정기적으로 실행되는 cronjob을 설정합니다.

$ journalctl --vacuum-time=1y

참고자료:

답변4

491.5M 한도가 어떻게 결정되는지 모르겠습니다. 다음 설정을 변경하고 시스템을 다시 시작했습니다.

그리고:

기본적으로 내 시스템의 최대 크기는 약 500MB이며, 여기에는 약 1개월 분량의 로그가 포함됩니다.

그리고:

이제 최대 로그 크기는 1.0G입니다.왜 25G가 아닌가?

또한 다음 질문에 대답하십시오.

Reint van Schuven2015-11-05 20:42:54 CET

문제 설명: 루트 파티션의 디스크 공간에 대한 경고를 받았습니다. 그 이유는 /var/log/journal에 기가바이트의 로그가 포함되어 있기 때문입니다.
/etc/systemd/journald.conf의 모든 옵션은 주석 처리되어 저널ctl이 특정 최대 크기를 유지하지 않습니다. 로그가 루트 파티션을 채우지 않도록 이에 대해 더 똑똑해져야 합니다.

그리고:

데이비드 왈저2015-11-06 15:18:21 CET

나는 systemd가 파티션에 있는 디스크 공간의 특정 비율만 사용하도록 허용한다고 생각합니다. 정말 무한하다면 문제가 생길 것입니다.

그리고:

콜린 거스리2015-11-09 10:44:45 CET

따라서 이 문제를 더 자세히 조사하려면 귀하의 시스템에 대한 정보가 필요합니다. 파티션 크기, 여유 공간 등은 얼마입니까? /var/log/journal에 있는 파일 및 폴더 목록(전체 경로, 날짜 및 크기 포함)도 유용합니다. "journalctl --disk-usage"(루트로)의 출력과 "journalctl -b MESSAGE_ID=ec387f577b844b8fa948f33cad9a75e6"(또한 루트로)의 출력도 있습니다.

원천:

https://bugs.mageia.org/show_bug.

또한 대답하십시오:

최대 로그 크기를 더 늘리려면 어떻게 해야 합니까?

영구 저장소를 사용하는 시스템 로깅

RHEL7에서 지속성을 위해 systemd 로그 구성

RHEL7에서 지속성을 위한 systemd 저널링 구성 기본적으로 저널링은 로그 파일을 디스크에 저장하지 않고 메모리 또는 /run/log/journal 디렉터리에만 저장합니다. 이는 최근 로그 기록(로그 사용)에는 충분하지만 다른 syslog 솔루션 없이 로그만 사용하기로 결정한 경우 장기 로그 보존에는 충분하지 않습니다.

소스 3:

https://www.linvirtshell.com

또는

저널 크기 관리

기본적으로 systemd-journald오래된 로그 레코드나 로그 파일은 특정 양의 여유 디스크 공간을 보존하기 위해 삭제됩니다. Systemd를 사용한 Linux 로깅 섹션에서는 구성 매개변수를 사용하여 오래된 로그 데이터 삭제 임계값을 제어하는 ​​방법을 설명했습니다. 또한 journalctl이를 사용하여 크기를 관리 할 수도 있습니다 journal. 이에 대해서는 이 섹션에서 자세히 설명하겠습니다.

로그가 현재 차지하는 디스크 공간을 확인하려면 –disk-usage 매개변수를 사용하십시오.

$ journalctl --disk-usage

버전에 따라 journalctl출력은 다음과 유사할 수 있습니다.

보관 로그와 활동 로그는 디스크에서 96.0M 공간을 차지합니다.

또는:

로그는 디스크에서 248.0M을 차지합니다.

systemd또한 다음 구성 매개변수를 미세 조정하여 로그가 차지하는 디스크 공간을 관리할 수도 있습니다.

COMPRESS
SYSTEMKEEPFREE
RUNTIMEKEEPFREE
SYSTEMMAXFILESIZE
RUNTIMEMAXFILESIZE
MAXRETENTIONSEC
MAXFILESEC

원천:

https://www.loggly

관련 정보