본문 바로가기

JAVA/kafka

카프카로 로그 수집

반응형

- 여러 로그의 결과를 모아서 BI도구나 대시보드에서 시각화하고 싶은경우

- 집약한 로그를 이용하여 머신러닝을 구현하고 싶을 경우

- 여러 서버의 로그 내용을 확인하는데 그때마다 각 서버에 들어가 확인하는 경우

 

애플리케이션이 늘어나면서 외부와의 연계가 증가하면 로그수집을 위한 노력도 증가한다.

 

로그 수집의 예)

 

여러 웹 서버군에서 로그를 받는다.

작은 로그를 로그 수집 기반 내에서 집약한다.

집약한 데이터를 Hadoop HDFS에 일정한 간격을 축적한다.

 

 

카프카로 로그 수집하기

- 다수의 연계 제품

카프카에는 Producer API가 있어 이를 이용하면 카프카와 접속하는 애플리케이션을 만들수 있다.

처음부터 애플리케이션을 작성하는것이 힘들다면 단순히 서버 로그만 집계하는 경우 Fluentd를 도입하여 Fluentd와 카프카 조합을 구성하는방법.

Kafka Connect를 사용하는 경우 컨플루언트 플랫폼이나 커뮤니티에서 제공하고 있는 여러 커넥터를 이용하여 카프카와 연계할수 있다.

 

- 영속화

카프카는 데이터를 디스크에 영속화한다.

메모리 공간보다 더 큰 데이터라면 이를 디스크에 보관해 메모리 안에서 손실되거나 제외되더라도 나중에 읽을수 있도록 되어 있다.

큰 용량의 버퍼로 이용할수 있다.

 

-송수신 보증

At Least Once(적어도 한번은 보내기) 수준의 송수신은 보증한다.

한편 약간의 손실을 허용하는경우 Ack를 반환하지 않음으로써 데이터 소스쪽의 처리를 줄여 성능향상을 우선할수도 있다. 필요에 따라 조정이 가능.

 

로그 수집을 실현한 제품으로 Scribe, Flume같은 제품도 있으며, 카프카도 이러한 제품을 의식하고 있다.

 

 

출처 - 실전 아파치 카프카

- 저자: 사사키도루, 이와사키 마사다케, 사루타 코스케, 쓰즈키 마사요시, 요시다 고요

역자 - 정인식

반응형

'JAVA > kafka' 카테고리의 다른 글

카프카 이벤트 소싱  (0) 2020.08.18
카프카 웹 활동 분석  (0) 2020.08.18
카프카로 데이터 허브  (0) 2020.08.18