로그 및 로깅 시스템/ELK

로그스태시가 레디스 정보를 읽는 방식

mayleaf 2020. 3. 3. 21:51

안녕하세요 메이리프입니다.

 

오늘은 로그스태쉬가 레디스에서 정보를 어떻게 읽는지 적은 글을 씁니다.

본문

로그스태시는 입력 플러그인을 통해서 특정한 소스의 정보를 읽습니다.

마찬가지로 레디스의 정보를 읽을 때에는 레디스 입력 플러그인을 사용합니다.

 

지원하는 데이터 타입은 list,channel, channel-pattern 이렇게 세 가지를 지원하며,

list의 경우 BLPOP, channel의 경우 subscribe, channel-pattern의 경우 psubscribe 를 통해서

정보를 읽어옵니다.

 

BLPOP은 blocking list pop의 약자로, 해당 키에 대해서 빈 값이면 레디스에서 커넥션을 막고, 값이 있을 때에만 값을 POP하여 넘겨줍니다.(POP이후에는 당연히 값이 지워집니다)

 

channel과 channel-pattern의 경우 해당 키값을 subscribe 하고 있기 때문에 메세지가 입력될때마다 수신합니다.

 

정리

list는 BLPOP을 사용, 해당 키에서 값이 있을때 데이터를 읽습니다.

channel은 subscribe을 사용하여, 해당 키에 값이 입력될때마다 수신합니다.

 

글을 쓰게 된 이유

 

궁금증의 시작

???: "레디스에 로그를 저장한다음에 로그스태쉬를 통해서 레디스의 정보를 읽어 엘라스틱서치에 저장한다고

하셨는데 그러면 레디스의 정보를 어떻게 로그스태쉬에 입력하나요? 레디스에 그런 기능이 있나요?"

 

질문을 받았을때 제대로 답변하지 못하고, 레디스의 정보를 엘라스틱서치에 넣는 방법을 설명해서

지금 다시 질문에 대한 답변을 정리를 하고 잊지 않으려고 글로 정리했습니다.