엔지니어링
-
Kafka Monitoring with Prometheus & Grafana : 1엔지니어링/Kafka 2022. 4. 28. 17:37
하기 포스팅은 카프카 서버의 status를 모니터링하기 위해 prometheus와 grafana를 구축하는 절차이다. 가장 먼저 프로메테우스가 무엇인지, 관련 애플리케이션에는 어떤 것이 있는지 살펴보겠다. 개요 - 프로메테우스와 그라파나는 현재 가장 많이 사용되고 있는 모니터링 툴이다. - 별도의 agent 개발 없이도, 다양한 export 등을 활용하여 현재 사용하고 있는 서비스에 최적화된 모니터링 환경을 구성할 수 있다. 구성요소 구성요소 역할 Prometheus 메트릭 수집 및 규칙 확인 Grafana 데이터 시각화 Alertmanager 알림발송 Exporter 메트릭 수집 및 포트 오픈 Pushgateway PUSH 방식으로 데이터 수집 좀 더 상세히 살펴보자. - Prometheus : 타겟이..
-
Kafka consumer group엔지니어링/Kafka 2022. 3. 4. 10:47
카프카 컨슈머 그룹을 조작하는 방법 및 특정 오프셋을 리셋하는 방법을 알아보겠다. List Groups 컨슈머 그룹의 리스트를 출력한다. $ pwd /kafka/bin $ ./kafka-consumer-groups.sh --bootstrap-server mybroker:9092 --list kafka-streams-101 sy-consumer1 sy-consumer2 Describe Group 특정 컨슈머 그룹의 정보를 출력한다. $ ./kafka-consumer-groups.sh --bootstrap-server mybroker:9092 --group sy-consumer1 --describe Consumer group 'sy-consumer1' has no active members. GROUP TO..
-
Apache Kafka Streams 예제코드엔지니어링/Kafka 2022. 3. 3. 15:36
1. Initialize the project 스트림 프로젝트를 실행할 새로운 디렉토리를 생성한다. $ pwd /Users/ksy/IdeaProjects $ mkdir creating-first-apache-kafka-streams-application && cd creating-first-apache-kafka-streams-application 2. Configure the project 하기 내용을 Gradle build file을 생성한다. 프로젝트의 이름은 build.gradle로 한다. buildscript { repositories { mavenCentral() } dependencies { classpath "com.github.jengelman.gradle.plugins:shadow:4...
-
Zero copy transfer엔지니어링/Kafka 2022. 2. 24. 11:45
zero-copy transfer란 ? 제로 카피를 사용하면 데이터가 딱 한 번 페이지 캐시에 복사된다. 필요시 재사용되며, 읽을 때 마다 user-space에 복사된다. 캐시에서 데이터를 모두 처리하기 때문에 디스크에서 읽기 작업이 전혀 발생하지 않는다. zero-copy transfer는 왜 빠를까 ? 데이터의 암호화/해제를 위해 브로커(JVM)으로 이동할 필요가 없기 때문이다. SSL 사용 시, zero-copy transfer를 왜 사용할 수 없을까 ? SSL을 사용하면 브로커(JVM)가 데이터를 암호화해야 하기 때문에, 데이터가 캐시에서 바로 consume 될 수 없기 때문이다. - If user enable an SSL endpoint in Kafka, Zero Copy will be lost..
-
Jabba Utility엔지니어링/Kafka 2022. 2. 15. 14:28
카프카 내용은 아니지만, 커뮤니티 커넥터에 따라서(예컨대 GCP sink connector) 기존에 install 되어 있는 자바 버전이 아닌 상위의 버전이 필요할 때가 있다. 이처럼 테스트 환경에서 여러 버전의 자바가 필요할 때 Jabba를 사용할 수 있다. Installation 다른 버전의 자바가 필요한 계정으로 전환하여 설치를 한다. 만약 root에서 설치하면 kafka 계정에서는 적용되지 않는다. #계정 전환 # su - kafka #설치 $ curl -sL https://github.com/shyiko/jabba/raw/master/install.sh | bash && . ~/.jabba/jabba.sh Installing v0.11.2... Adding source string to /hom..
-
[구성] Mongo Sink Connector엔지니어링/Kafka 2021. 12. 22. 16:02
🍃Mongo Sink Connector를 구성해 보려고 한다. (apache/confluent 모두에서 사용 가능) 🍃는 해당 서버의 호스트이름을, 은 사용자 설정사항이다. (그냥 입맛대로 정하면 됨) 🍃MongoDB 커넥터의 경우, confluent가 아닌 벤더사 자체에서 지원해주고 있다. https://docs.mongodb.com/kafka-connector/current/introduction/install/#std-label-kafka-connector-installation-reference Install the MongoDB Kafka Connector — MongoDB Kafka Connector Docs Home → MongoDB Kafka ConnectorLearn how to inst..
-
[설치, 구성] Apache Kafka Installation엔지니어링/Kafka 2021. 11. 29. 23:10
🐬아파치 카프카(오픈소스)를 설치해보겠다. 엔터프라이즈 버전도 동일하게 설치할 수 있다. 🐬버츄얼 머신 구성 후, 설정 부터의 메뉴얼을 담았다. 🐬 안의 내용은 사용자 지정이므로, 각자 입맛대로 설정해주면 된다. 🐬root 의 명령어가 주석처럼 나오는게 싫어서... > 로 대신했다. 1. OS setting 우분투OS 설치 후, VM에서 하는 설정이다. 다른 OS 모두 가능하나, 우분투가 가장 호환성이 좋다고 알고 있다. vm을 생성하며 kafka 유저를 생성했다고 가정한다. root password 변경 $ sudo su -> kafka > passwd root -> -> ssh 연결을 위한 패키지 설치 > su - root > apt-get update > apt-get install opens..
-
ElasticSearch → Kibana 특정 유저, 경로 지정하여 설치엔지니어링/ELK 2021. 11. 19. 12:00
ElasticSearch 우분투에서는 apt-get 패키지를 사용하여 안정적인 최신버전의 elk stack을 설치할 수 있다. 하기 installation은 .deb 파일로 설치하는 과정이다. 모든 서비스는 system 에 등록하지 않고 직접 기동하였다. 1. add user elk 유저 생성 및 /elk 디렉토리 생성 # adduser elk -> elk -> elk -> Y /etc/sudoers 파일에 추가 elk는 root 권한이 있어야 실행되므로, /etc/sudoers 파일에 추가해준다. 추가해주지 않으면 sudo 명령 사용 시, 'elk is not in the sudoers file. This incident will be reported' 와 같은 에러 메시지가 출력되면서 기동되지 않는다..