rsyslog - 줄 내용별로 규칙 세트를 태그하고 적용하는 방법은 무엇입니까?

rsyslog - 줄 내용별로 규칙 세트를 태그하고 적용하는 방법은 무엇입니까?

로그 처리를 정리하고 표준화하고 fluentd와 ELK를 추가하고 있습니다. nginx가 자체 파일에 로깅하므로 이 부분은 잘 작동합니다.

input(type="imfile" tag="app.nginx" file="/var/log/nginx/access.log" ruleset="fluentd")

그러나 앱의 다른 구성 요소(예: Python 프로세스)는 접두사 /var/log/syslog가 붙은 로그 메시지를 사용하여 에 로깅합니다 [flask]. 가 /var/log/syslog포함된 메시지를 필터링 [flask]하고 태그를 지정 app.flask하고 규칙 세트를 적용하고 싶습니다 fluentd.

nginx와 같은 자체 파일에 로그하도록 각 서비스를 구성할 수 있지만 가능하면 systemd 구성을 변경하지 않고 싶습니다.

답변1

input결국 메시지를 특정 로그 파일로 리디렉션한 다음 이를 가리키는 항목을 추가하여 이 문제를 해결했습니다 .

if $rawmsg contains "[flask]" then /var/log/flask.log

input(type="imfile" tag="app.flask" file="/var/log/flask.log" ruleset="fluentd")

다른 파일로 리디렉션하지 않고 이 작업을 수행할 수 있는 방법이 있다면 여전히 알고 싶습니다.

관련 정보