일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CVAT
- EC2
- java
- Vision
- Spring
- AWS
- CSV
- kubectl
- Operating System
- OS
- JavaScript
- zookeeper
- ip
- docker
- Kafka
- airflow
- MAC address
- Trino
- Packet
- Network
- tcp
- grafana
- Python
- jvm
- PostgreSQL
- kubeadm
- kubernetes
- aws s3
- log
- helm
- Today
- Total
목록Kafka (14)
JUST WRITE
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c8x4w7/btskTIEJ5nr/BKYQ1ehHbzCWHf8RBP4KEk/img.png)
Kafka야?!! 데이터 잘 처리하고 있니?! 실시간 데이터 처리를 위해 Kafka를 운영하고 있습니다. Kafka 모니터링을 위해 주로 Prometheus, Grafana를 통해서 합니다. Kafka Exporter로 Metric을 수집, Prometheus로 보내고 Grafana에서 Dashboard를 구성해서 모니터링합니다. 보통 Topic별로 들어오는 데이터의 Bytes양, Topic의 Consumer의 Lag 등을 모니터링합니다. 이 방법 말고 Kafka가 데이터를 잘 처리하고 있는지 알 수 있는 방법이 이거밖에 없는지 궁금하였습니다. 그러다가 찾은 방법이 있었습니다. Kafka 자체적으로 Performance를 테스트할 수 있는 방법이 있었습니다. 이번 포스팅에서 자체적으로 Kafka를 테스트..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c4X5dQ/btr8neCmKGK/EgM1bq7xHKszoVtEKTJsc0/img.png)
CMAK 설치 Kafka Cluster를 구축하고 나서 Kafka Broker를 컨트롤하려면 기본적으로 command로 컨트롤합니다. Kafka Bin 폴더 아래에 다양한 script를 제공해 줍니다. $ ll ~/kafka/bin -rwxr-xr-x 1 kafka kafka 1.4K Dec 21 21:14 connect-distributed.sh -rwxr-xr-x 1 kafka kafka 1.4K Dec 21 21:14 connect-mirror-maker.sh -rwxr-xr-x 1 kafka kafka 1.4K Dec 21 21:14 connect-standalone.sh -rwxr-xr-x 1 kafka kafka 861 Dec 21 21:14 kafka-acls.sh -rwxr-xr-x 1 k..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b1Q6i3/btrVWfs8OJD/ZKnysA5GhVlW9ascEI6vm0/img.png)
Kafka Broker Log 관리 Kafka에서는 Log를 Topic Partition에 쌓이는 Data를 의미한다. 보통 System에서 Log는 System의 상황 파악을 위해 기록하는 정보이다. Kafka에서도 Broker에서 이런 Log를 기록하고 있다. server, connect, controller, user 등 다양한 Log를 기록하고 있다. 이런 Log 설정은 conf/log4j.properties에서 확인할 수 있다. $ cat /kafka/conf/log4j.properties ... log4j.appender.kafkaAppender=org.apache.log4j.DailyRollingFileAppender log4j.appender.kafkaAppender.DatePattern=..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Y3ObN/btrTSM8LpAl/LK29v0S81KG7qkW2kdEur1/img.png)
Ansible를 통한 Kafka 설치 Kafka는 Cluster로 구성되기 때문에 Server마다 같은 작업을 반복해야 한다. Infra 자동화 구성 Tool인 Ansible을 통해 편하게 설치하는 작업을 해보려 한다. Ansible은 laC(Infrastructure as Code) 개념이 도입된 Tool로 Code를 통해 Infra 세팅을 도와준다. AWS EC2 3개의 Instance를 세팅하여 Kafka Cluster를 구성해보았다. Ansible 설치 먼저 첫번째 Server에 Ansible을 설치하였다. Ansible은 python기반이라 pip를 통해 설치가 가능하다. Ansible 버전별 필요한 python 버전은 아래 표에 정리하였다. Ansible Version Required Pyth..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bD1Kme/btrQ28zNX7s/sXRJk8d7BMNOuaBcYqwa60/img.png)
AWS EC2 Kafka 설치 이번 포스팅에서는 AWS EC2 인스턴스 3개에 Kafka Cluster를 구성해보려 한다. 각 EC2는 Amazon Linux 2에 t3.small로 구성하였다. 먼저 보안 그룹을 설정하였다. ssh 접속을 위해 22 port를 오픈하였고 인스턴스끼리 편하게 통신할 수 있도록 같은 보안그룹에 있는 인스턴스끼리 통신할 수 있도록 설정하였다. EC2 3개의 인스턴스가 성공적으로 실행이 되면 Kafka를 다운로드한다. 여기에서는 3.2.3 버전으로 설치를 진행한다.(Kafka Download) Java 설치 및 User 생성 Kafka 설치에 앞서 Java 설치가 필요하다. JDK는 11 버전을 설치를 진행하였다. Kafka는 1.8 이상이면 되지만 추후 CMAK 설치를 위해서..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bbbK9H/btrJGVf9kRa/Nux8WQAImU0GpZXLTR0Hwk/img.png)
Kafka는 아래와 같은 구성 요소를 가진다. Records Topics Consumers Producers Brokers Logs Partitions Clusters Kafka가 어떻게 동작하는지와 구성요소들이 어떤 역할을 하는지 대략적으로 정리해보려 한다. Topics, Producers, Consumers Kafka의 주요한 역할은 Data를 받아서 전달하는 역할이다. 그 역할을 Topics, Producers, Consumers에서 한다. Producer -> publish 하는 Topic에 Data를 전달 Topic -> Log라는 구조로 디스크에 Data를 저장 Consumer -> Topic에 쌓인 Data를 읽어서 처리 Topic Partition, Consumer Group Topic에 ..