
syslog(Raspbian rsyslog swVersion="8.1901.0")에서,
/var/log/syslog
특정 문자열이 포함된 시스템 메시지를 (기본값) 및 사용자 정의 별도 로그 파일(예: )과 일치/필터링하려고 합니다 /var/log/nut.log
.
다음 필터 라인을 배치하여 이를 달성할 수 있었습니다 /etc/rsyslog.conf
.
# NUT logging: Include USB msgs since montoring UPS via only USB
:msg,contains,"USB" /var/log/nut.log
& stop
:msg,contains,"nut-" /var/log/nut.log
& stop
& stop
일치가 이루어지면 필터를 중지하는 데 필요합니다 . 나는 이것을 전용 파일에 저장하는 것이 선호되는 방법이라고 생각합니다. 즉:/etc/rsyslog.d/0-nut.conf
그런데 그렇게 하면 필터가 에 대한 로깅을 중지하고 ... /var/log/syslog
에만 로깅합니다 /var/log/nut.log
.
이를 수행하는 다른 방법이 있습니까?
고마워!
답변1
의 $IncludeConfig
or include()
지시문은 rsyslog.conf
에 메시지를 쓰는 규칙을 포함하여 대부분의 표준 규칙 앞에 나타납니다 /var/log/syslog
. 이 파일의 다른 규칙 뒤에 규칙을 추가하면 너트 메시지 syslog
도 일치되어 에 기록되기 전에 이미 기록되었을 것입니다 nut.log
.
대신 규칙을 별도의 파일에 넣으면 메시지가 에 기록되고 nut.log
는 stop
이후 규칙을 건너뜁니다. 대답은 사용하지 않는 것입니다 stop
.
메시지에 "USB"와 "nut-"이 모두 포함되어 에 두 번 기록되는 것이 문제인 경우에는 nut.log
보다 정교한 구문을 사용해야 합니다.
레거시 구문은 다음으로 대체되었습니다.라이너스크립트옛날에. 이는 다음과 같은 필터를 작성할 수 있음을 의미합니다.
if ($msg contains "USB" or $msg contains "nut-") then {
action(type="omfile" file="/var/log/nut.log")
}
이로 인해 메시지의 추가 처리를 방해할 필요는 없습니다.