예를 들어, 내 로그 라인에 [xxx]와 같이 표시되는 경우 xxx.log로 시작하는 이름의 파일에이 메시지를 넣어야합니다. 메시지가 변경되고 [xxy]로 나타나면 새 로그를 만들어야합니다 xxy.log라는 파일 syslog-ng 설정 파일에서 어떻게 할 수 있습니까?필터링 대상에 따라 동적 대상 파일 이름을 만들려면 어떻게해야합니까?
0
A
답변
0
mi 문제를 해결할 수있는 방법을 찾았습니다.
parser p_apache {
csv-parser(columns("MY.ALGO", "MY.MOSTRAR", "MY.OTRA")
delimiters("|")
);
};
destination d_file {
file("/var/log/syslog-ng/$YEAR-$MONTH/$DAY/messages-${MY.ALGO:-nouser}.log");
};
0
특정 메시지를 필터링하려면 syslog-ng의 필터 식을 사용할 수 있습니다. 필터에서 정규 표현식을 사용할 수도 있습니다. 은 파일 이름에 경기의 결과를 사용하려면 필터 식에 명명 된 패턴을 사용해보십시오 :
destination d_file {
file ("/var/log/${name}.log");
};
것은 나에게 보자
filter f_myfilter {message("(?<name>pattern)");};
는 그런 다음 대상 템플릿의 이름이 일치를 사용할 수 있습니다 그것이 작동하는지 알기 위해, 나는 그것을 시험 할 시간이 없었다.
이 줄 메시지 ("(? [* name *] pattern)"을 사용하여 내 previus 구성을 바꿉니다. 하지만 필터 표현을 파싱하는 중 오류가 발생합니다. – Rys
명명 된 패턴은 다시 쓰기 규칙에서만 지원 될 수 있습니다. 언젠가 이것을 확인하려고 노력할 것입니다. –