반응형

logstash를 사용하다보면 pipeline을 여러개 실행해야 하는 경우가 있다.

logstash의 multi pipeline을 적용하면 각각의 파이프라인 마다 다른 동작을 적용할 수 있다.

예를들어 6000번 포트로는 input을 http요청으로 처리해서 output을 s3로 보내고, 6001번 포트로는 기존에 사용하던 elk stack을 사용한다거나 할 수 있다.

 

기존에 logstash는 multi pipeline을 지원하지 않고, 6.0 부터 지원하기 시작했다.

만약 본인의 logstash 버전이 6.0 이하라면 이 방법은 사용할 수 없다. logstash를 업그레이드 하거나 지우고 6.0 이상 버전으로 재설치 하자.

logstash를 설치하는 방법은 아래 글을 참고하자.

 

[Logstash] docker로 logstash 설치하기

docker로 logstash를 설치하는 방법에 대해 서술한다. 환경 ubuntu 18.04 docker 20.10.17 Docker로 logstash 설치 1. docker 이미지 Pull 맨 뒤의 8.2.2는 버전을 뜻한다. 다른 버전을 설치하고 싶으면 8.2.2 대..

systorage.tistory.com

 

환경

ubuntu 18.04

logstash 7.17.4

 

logstash에 multi pipeline 적용

아래 예시는 MacOS에서의 예시이다. 하지만 ubuntu나 다른 OS환경에서도 logstash의 설정은 동일하기 때문에 경로만 다르다.

예를들어 logstash를 그냥 설치했다면 기본 경로는 아래와 같다. logstash안에 있는 같은 파일명만 찾아서 수정해주면 된다.

# MacOS에서
/opt/homebrew/Cellar/logstash-full/(logstash의 버전)/libexec/config
# ubuntu에서
/usr/share/logstash/pipeline

 

1. conf파일 작성

  • 각각의 pipeline에 대해서 conf파일을 작성해준다.
  • 이 문서에서는 test.conf와 test2.conf를 작성한다.

test.conf

test.conf는 5001번 포트로 들어온 요청을 s3로 보내는 요청을 한다.

test.conf

test2.conf

test.conf는 5002번 포트로 들어온 요청을 s3로 보내는 요청을 한다.

test2.conf

2. pipeline 정의

pipelines.yml 파일을 아래와 같이 수정한다.

  • - 하나당 하나의 파이프라인을 가리키며 각각 설정을 다르게 할 수 있다.
  • pipeline.id는 파이프라인의 아이디를 가리킨다.
  • path.config는 해당 파이프라인이 사용할 .conf파일을 명시해줘야 한다.
  • 다른 추가 설정을 원한다면 각각의 파이프라인에 별도의 설정을 지정할 수 있다.
  • path.config에는 경로를 지정해줘야 한다.

pipelines.yml

3.logstash 재시작

 

logstash 재시작후 요청을 보내보면 제대로 동작하는것을 확인할 수 있다.

반응형
얼은펭귄