저널링으로 단위 별 로그 스토리지 정책을 구성하는 방법은 무엇입니까?


14

드물지만 중요한 정보를 기록하는 하나의 특정 서비스가 있습니다. 몇 달 전에 설정했으며 오늘 journalctl -n 50 --unit=my-service은 항목이 없음을 찾기 위해 실행했습니다 .

나는 대부분의 부대에서이 행동에 완벽하게 만족합니다. 즉시 (또는 며칠 전까지) 일어난 일이 필요하며 몇 개월 전의 기록은 신경 쓰지 않습니다.

그러나 journald하나의 특정 장치 레코드에 대해 독립적 인 저장 및 보존 정책을 갖도록 지시 할 수있는 방법이 있습니까? 크기에 관계없이 5 년 동안 특정 로그를 유지하고 싶습니다. 다른 유닛의 로그는 이것에 영향을받지 않아야하며 기존 동작을 유지해야합니다.

나는 이해를 잃어 버렸고 journald.conf(5)단위 당 구성이 가능할 때마다 파악할 수 없습니다. 그렇다면-간단한 구체적인 예제를 고맙게 생각합니다-어떤 파일을 편집 / 만들어야하고 무엇을 써야합니까? 또는 확실하지 않다는 것을 확실히 알고 있다면 좋은 답변이 될 것입니다.

참고 : 나의 특별한 경우는 아치 리눅스 호스트와 관련이 있지만, 이것이 중요하지 않다고 생각합니다.


이 기능을 저널에 추가하는 것에 대한 문제 에이 링크를 추가하기 위해 위의 답변에 대해서는 언급 할 수 없으므로 여기에 또 다른 대답이 있습니다 : github.com/systemd/systemd/issues/4751
swoop81

답변:


7

내가 일하는 것은 운이 좋지 않은 것 같습니다. 독립적 인 "장기 저장"저널을 생성하는 방법 (현재 사용자마다 다른 저널이 존재하는 것처럼)을 생성하지 않는 한, 그것이 실행 가능하고 제정신 접근법인지 확실하지 않습니다. syslogd (및 logrotate)를 설정하는 것이 더 쉬울 것 같습니다.

이 기능 Lennart가 확인한 2014 년 후반 에는 없었습니다 .

그리고 아직 여기에없는 것 같습니다. 최소한 "journald : 회전 / 진공시 우선 순위 및 서비스 별 유지 시간 허용"행 이 여전히 TODO 파일에 있습니다 (2016-07-11의 개정 링크).


3
이것은 매우 큰 디자인 결함으로 보입니다. 특히 유지를 줄이거 나 최소한의 로그 단위를 유지하려는 경우 로그를 막습니다.
오리온

1
이 질문에 걸림돌이되는 사람이라면, TODO에서 참조 된 줄은 여전히이 주석 (26.03.18)에 있습니다 : github.com/systemd/systemd/blob/…
timss

1
그것에 대한 견인력을 얻으려고 프로젝트 -github.com/systemd/systemd/issues/9519 의 문제로 제기했습니다 .
slm

1

로그 파일을 생성하는 것은 매우 간단합니다. 기본적으로 저널링에 대한 모든 로깅은 syslog로 이동하며이 기본값이 있어야합니다. rsyslog.conf는 syslog에 전달 된 항목이 처리되는 방식을 제어합니다. 또한 SyslogFacility기본값 daemon은 모든 서비스의 로그 항목이 일반적으로의 daemon.log파일에있게 /var/log됩니다.

서비스 파일에서 [service] 섹션에 추가하십시오.

SyslogFacility=local2

(숫자는 0과 7 사이 일 수 있음) https://www.freedesktop.org/software/systemd/man/systemd.exec.html

local2가 특정 파일 (첫 번째 줄)에 기록되고 이상적 local2.none으로 표시된대로 추가하여 syslog에 기록되지 않도록 /etc/rsyslog.conf (기존 줄 찾기)를 수정하십시오 ( 이미 저널에 있음).

local2.*                        /var/log/your-service-name.log
*.*;auth,authpriv.none,local2.none          -/var/log/syslog

[편집] 당신은 또한 모든 캐치를 수정해야합니다

*.=info;*.=notice;*.=warn;\
        auth,authpriv.none;\
        cron,daemon.none;\
        mail,news.none,local2.none      -/var/log/messages

물론 실제 보존은 logrotate에 의해 수행되어야합니다.

HTH

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.