
로그 처리를 정리하고 표준화하고 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")
다른 파일로 리디렉션하지 않고 이 작업을 수행할 수 있는 방법이 있다면 여전히 알고 싶습니다.