티스토리 뷰
안정적인 운영을 위한 주키퍼와 카프카 구성
주키퍼 구성
최근에는 주키퍼의 의존성을 제거하려 하는 움직임
- 주키퍼는 파티션과 브로커의 메타데이터를 저장, 컨트롤러 서버를 선출하는 동작 수행
주키퍼 서버 수량
- 쿼럼(과반수) 구성 기반 동작임으로 반드시 홀수
- 과반수를 충족할 수 있는 수까지만 장애 허용 (3대면 1대만 장애 허용)
- 일반적 3, 핵심 중앙 데이터 파이프라인이면 5
하드웨어
- 메모리 4~8GB, 디스크는 240/480G SSD
- 과도한 물리 메모리는 낭비
- 트랜잭션이나 스냅샷 로그는 로컬 디스크에 저장함으로 Write 성능 좋은 SSD 추천
- 네트워크 1G 이더넷
배치
- 각기 다른 랙에 분산 배치, 전원 / 스위치 이중화
카프카 구성
서버 수량
- 최소 3개의 브로커
- 손쉬운 서버 확장 가능함으로 필요한 만큼만
하드웨어
- 프로듀서나 컨슈머의 처리량을 높이기 위해 배치 / 압축 기능을 많이 적용하게 됨으로 CPU 사용량이 높은 편
- 코어수 많은 CPU
- 카프카에서 요구하는 JVM 힙 크기는 6GB 정도임으로 이보다 큰 물리 메모리
- 힙 크기를 제외한 물리 메모리는 모두 페이지 캐시로 사용해 빠른 처리 도움
- 32~256GB
- 로그 마지막에 순차적으로 씀으로 어느 디스크나 가능
- 병렬 처리를 위해 10개 정도, 토픽 보관 주기를 충분하게 설정하려면 4TB 이상
- 이더넷 카드 10G, 네트워크 사용량 비율이 50%가 넘지 않도록 토픽을 분산해 운영
- 디스크 장애 복구 / 신규 브로커 추가로 인해 카프카 클러스터내 대량 데이터 이동 발생
배치
- 여러 랙에 분산해 카프카 서버 배치, 전원 / 스위치 이중화
모니터링 시스템 구성
애플리케이션으로서 카프카의 로그 관리와 분석
카프카 애플리케이션 로그
- 자바 기반 log4j, 레벨별 로깅
- default : INFO
- 브로커에서 직접 로그 레벨 변경 가능
- 실습 : 223p
- 레벨 낮출 수록 많은 로그가 기록됨으로 브로커의 디스크 여유 공간 확인 필요
- 브로커 설정 및 정보, 컨트롤러 / 클라이언트 요청, 로그 컴팩션, 인증 등 정보 기록
JMX를 이용한 카프카 메트릭 모니터링
JMX
- 자바로 만든 애플리케이션의 모니터링을 위한 도구를 제공하는 자바 API
- 상태나 이상 유무를 빠르게 확인 , MBean 이라는 객체로 표현
JMX를 이용해 카프카의 주요 메트릭들을 그래프와 같은 형태로 확인
- 확인 방법
- JMX 포트 요청 → 메트릭 정보를 관리자가 GUI 형태로 볼 수 있게 구성
- 프로메테우스 + 익스포터 많이 사용
- 역할
- 프로메테우스
- 주기적으로 대상서버의 메트릭값을 가져와 자신의 DB에 저장
- http 클라이언트 요청에 응답하는 형태로 로컬 JVM의 메트릭을 보여주기 위해 독립적인 HTTP 서버로 설정 / 자바 에이전트로 설정 중 선택
- 그라파나
- 대시보드 형태로 보여줌
- 누군가 이미 만들어둔 메트릭 대시보드를 upload json file을 함으로써 import 가능
- 익스포터
- 프로메테우스의 모니터링 방식은 푸시가 아닌 풀임으로 모니터링 하는 대상 서버에 자신의 메트릭 정보를 보여줄 수 있는 익스포터 설치 필요
- 다양한 애플리케이션에서 수집되는 메트릭을 프로메테우스가 인식할 수 있는 형태로 나타내는 에이전트
- 예제에서는 JMX 익스포터 프로세스의 관리를 용이하게 하기 위해서 systemd를 이용해 실행
- 상태 확인 명령어(sudo systemctl status jmx-exporter > Active) / curl 명령어로 확인
- 카프카 클러스터 내 모든 브로커에 설치 + 프로메테우스 환경 설정 파일에 수집 대상 서버 명시 ⇒ 프로메테우스에 메트릭이 수집, 저장
- 노드 익스포터
- 서버에서 제공하는 CPU, 디스크, 네트워크 등의 리소스 사용량을 수집
- 프로메테우스
- JMX 모니터링 지표
카프카 익스포터
- 카프카 모니터링시 컨슈머의 LAG(Producer가 넣은 메세지의 Offset과 Consumer가 가져간 메세지의 Offset간의 차이) 모니터링이 가장 중요
출저 : 고승범 저, 실전 카프카 개발부터 운영까지, 책만, 7장 카프카 운영과 모니터링
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 처리율 제한 알고리즘
- 알고리즘
- 누출 버킷 알고리즘
- 카카오프로젝트100
- 회고
- 개발자
- 처리율제한
- 이동 윈도우 카운터 알고리즘
- 이동 윈도우 로깅 알고리즘
- 글또
- 고정 윈도우 카운터 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함