본문 바로가기

실시간 데이터 수집9

실시간 데이터 수집-7 (Spark 설치 및 Spark Streaming 사용) 실시간 데이터를 원본그대로 수집하는 것 뿐만 아니라 가공하는 방법을 익히기 위해 Spark Streaming을 선택했다.실시간 데이터 가공에는 대표적으로 Spark Streaming과 Flink가 있는것으로 알고있지만이번 기회에는 익숙한 Spark를 활용하여 데이터를 가공하고 추후에 Spark Streaming과 Flink를 비교하는 게시물을 작성하는 것을 목표로 한다. Spark 설치파일 다운로드Apache Spark 사이트에서 파일 다운로드$ wget https://dlcdn.apache.org/spark/spark-3.5.1/spark-3.5.1-bin-hadoop3.tgz설치 경로 설정 & 압축해제압축해제 및 환경 변수 설정$ tar -xvf spark-3.5.1-bin-hadoop3.tgz$ v.. 2024. 4. 7.
실시간 데이터 수집-6 (Elasticsearch & kibana 설치) filebeat로 수집한 데이터를 metric 수집 및 적재에 특화되어 있는 promethues에 적재하는 것은 적절하지 않다고 판단하여 적재 장소를 Elasticsearch로 변경하게 되었다. (Filebeat와 호환성 보장) 또한 아키텍쳐에 필수요소는 아니나 Elasticsearch 데이터조회의 편의성을 위해 Kibana도 함께 설치를 진행하였다. Elasticsearch 설치 및 kafka를 통한 데이터 적재를 기록할 예정이다. Elasticsearch 설치 Elasticsearch 설치 $ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.12.2-amd64.deb $ wget https://artifacts.ela.. 2024. 3. 24.
실시간 데이터 수집-5 (Filebeat 설치) 환율 데이터를 API로 받아보니 json array 형태로 되어있어서 kafka로 직접적으로 넣기가 힘들었다. filestream connector를 사용하면 json array를 하나하나 풀어서 파일에 write 한 후 읽어갈 수 있지만 실제 운영환경에서는 사용을 권하지 않는다고 공식문서에 적혀있었다. 그렇다면 log 파일 형태로 관리했을때 어떻게 kafka로 수집할 수 있을지 찾아보다 ELK stack에서 자주 사용되는 filebeat를 사용하기로 결정했다. connector의 역할을 충분히 대체할 수 있고 제한적인 환경에서 logstash보다 적은 리소스를 차지한다. 환율 log 파일 생성 현재 환율 api를 통해 가져오는 데이터가 json형태의 데이터가 여러개 들어있는 array 형태이기 때문에 .. 2024. 3. 10.
실시간 데이터 수집-4 (Grafana 설치 및 Prometheus 연동) 수집한 데이터를 편하게 모니터링 할 수 있는 grafana를 설치한다. grafana는 다양한 템플릿을 사용할 수 있어 대시보드를 쉽게 생성 할 수 있는 장점이 있다. Grafana 설치 ubuntu에서 grafana 설치 $ sudo apt-get install -y apt-transport-https software-properties-common wget $ sudo mkdir -p /etc/apt/keyrings/ $ wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null $ echo "deb [signed-by=/etc/apt/keyrings/gra.. 2024. 2. 25.
실시간 데이터 수집-3 (Prometheus 설치) 실시간 metric 데이터를 수집 / 저장할 공간인 Prometheus를 설치한다. Prometheus Architecture Exporters : 감시 에이전트로 모니터링 대상에서 Metric을 수집하여 Prometheus가 읽을 수 있는 형태로 변환한다. TSDB : 시계열 데이터를 저장하는 저장소 Service discovery 모니터링되는 정보를 자동으로 받아오는 구조 클라우드 플랫폼 또는 특정 소프트웨어 등의 해당 API를 주기적으로 호출하여, 거기에 등록된 인스턴스 정보를 수집한다. Alertmanager prometheus에서 설정한 Rule에 위배되는 이벤트를 전송받아 정해진 곳으로 전송한다. PromQL Prometheus Query Language의 약자 시계열 데이터와 매치되는 형태로.. 2024. 2. 20.
실시간 데이터 수집-2 (AWS에서 Confluent 설치) 실제로 Confluent를 서버에 설치해본다. 리소스 한계상 Standalone 버전으로 진행했다. 설치 환경 서버 aws ec2 : t2.xlarge 유형 OS / 소프트웨어 버전 S/W Version Ubuntu 20.04.6 JAVA 11 Confluent - Community 7.6.0 JAVA 설치 java 11버전 설치 script : https://github.com/tjsdud594/Confluent/blob/main/ShellScript/install_java.sh java 17 버전 설치시 아래 에러발생 Error: the Confluent CLI requires Java version 1.8 or 1.11. See https://docs.confluent.io/current/insta.. 2024. 2. 11.