나누고 싶은 개발 이야기

Data Engineer로서 기록하고 공유하고 싶은 기술들. 책과 함께 이야기합니다.

Big Data/Kafka

[Kafka] Burrow 인증 설정

devidea 2020. 10. 16. 13:45

이번글에서는 Burrow에 관한 글을 쓰고자 한다.

Burrow는 Kafka consumer group의 LAG을 모니터링 할 때, 가장 많이 사용하는 어플리케이션 중에 하나이다.

Burrow에 대한 설명과 간단한 사용법에 대한 내용은 다른 글들이 많이 존재해서 필자는 최근 인증과 관련된 설정 추가와 관련해서 추가 검토했던 사항 위주로 설명하고자 한다.

 

그렇다고 Burrow에 대한 설명을 제외하면 기술할 내용에 대한 이해가 떨어질 수 있어 간략한 설명은 한다.

 

1. Burrow란?

Burrow는 링크드인에서 처음 개발한 오픈소스이다. Github readme의 처음 제목을 보면 다음과 같다. Burrow - Kafka Consumer Lag Checking

Burrow의 사용 목적은 Consumer Lag을 확인해서 Kafka를 통해 데이터를 소비하는 어플리케이션을 모니터링하는데 있다.

 

그럼 Consumer LAG은 무엇일까?

Consumer LAG은 Kafka의 저장된 데이터 대비 Consumer가 소비한 데이터 차이를 나타내는 지연 메세지 갯수이다.

LAG이 계속 늘어난다는 건 Consumer가 원활히 데이터 처리를 하지 못한다는 판단의 근거가 된다.

 

아래 그림에서 Consumer A의 LAG은 12 - 9 = 3이다.

 

2. Burrow 설정

SASL을 위해서 추가로 설정한 내용을 살펴보기 전에 먼저 설정 전체를 살펴보자.

 

설정의 역할별로 나열하면 다음과 같다. 각 항목에 대한 자세한 설명은 Burrow wiki에 기술되어 있으니 참조하면 좋다.

  • general : pid
  • logging : 로깅 설정
  • zookeeper : burrow의 메타데이터 저장
  • client-profile : 클라이언트 설정
  • sasl : 인증 설정
  • cluster : 카프카 클러스터 설정
  • consumer : 컨슈머 설정
  • httpserver : burrow api port

필자가 해당 글을 쓴 이유는 wiki에 현황화가 되어 있지 않아서 구글링을 통해 확인한 내용(2가지)을 공유하기 위함이다.

 

SASL 설정을 위해서 주의깊게 봐야하는 곳은 client-profile, sasl, cluster이다.

cluster -> client-profile -> sasl 이런 순서로 각 설정을 참조해서 쓰고 있다.

 

공유하고자 하는 설정은 2가지이다.

  1. client-profile : Kafka 버전
  2. sasl : mechanism

먼저 Kafka 호환되는 버전부터 살펴보자. 현재 시점(2020-10-16)에 Burrow의 최신버전은 1.3.4이다.

그리고 Kafka의 최신버전은 2.6.0이다.

 

필자는 Kafka를 가장 최신 버전이 아닌 버그 패치된 안정화 버전의 사용을 선호한다. 그래서 2.5.1을 사용했다.

그런데 Burrow에서 설정가능한 Kafka 버전이 2.5.0까지만 가능했다.

그래서 Kafka 최신 버전을 대응하기위해 수정한 git log을 찾아봤다. 2.5.1은 2.5.0 대비 client code의 기능엔 큰 차이가 없을 듯 하여 코드에서 설정값을 추가하는 정도로 수정했다.

참고한 git log은 다음 url(Add support for Kafka 2.5.0 and Go 1.14)을 확인하면 된다.

 

두번째는 sasl mechanism 설정이다.

wiki 문서에는 mechanism 설정에 대한 내용이 없다. 코드를 살펴보니 mechanism이라는 키값을 사용하고 있었다.

그래서 필자가 사용했던 SCRAM-SHA-256을 해당 값으로 넣어줬다.

 

이번 글은 Burrow에 대한 전반적인 설명보다는 혹여 필자와 SASL 인증 적용을 검토하는 분들께 구글링 과정이 단축됐으면 하는 바람으로 작성했다.

 

참고 문서

 

반응형