"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

오늘이군

로그수집서버 아키텍처 알아보기 본문

삶../프로그래밍

로그수집서버 아키텍처 알아보기

오늘이군 2020. 5. 22. 11:07
반응형

1. 일반적인 로그수집/리포팅 시스템 구조

컴포넌트 역할 솔루션

API 서버

로그를 클라이언트로 부터 수집하고 데이터를 정제한다. node.js, ruby, php (일반적인 웹서버)
Log Storage 로그 저장소

Elastic Search
Hadoop, HBase (하둡)
Drill, Druid (SQL 기반 빅데이터 플랫폼)

Message Consumer

MQ 로 부터 로그를 Message Consumer 가 순차적으로 읽어서 Log Storage 에 저장한다.

Multi Thread(or Process) + Timer 를 조합하여 메시지를 폴링 방식으로 읽어오는 어플리케이션 개발

Message Q

로그 저장소가 순간적으로 많은 트래픽을 감당할 수 없는 경우가 많기 때문에, 중간에 MQ 를 넣어서 들어오는 로그를 저장하며 완충한다.

Kafka (대량 큐)
AWS SQS or 구글Pub/Sub (클라우드 큐)
Rabbit MQ (일반적인 큐)

Reporting 저장된 로그는 Reporting 툴을 이용하여 시각화 한다.

Kibana
Zeppeline, Jupyter (노트북류)

2. Google Cloud Logging

스택드라이버와 빅쿼리를 이용한 로그 수집 시스템 구현

컴포넌트 역할

API 서버

API 서버를 이용하여 클라이언트로 부터 로그 수집
API 서버는 스택 드라이버 로깅 서비스로 로그를 보낸다.

Stack Driver Logging

Export 기능을 이용하여 수집된 로그를 실시간으로 빅쿼리로 전송한다.
 - GCS (Google Cloud Storage) 로 주기적으로 파일로 로그 데이터를 보내거나
 - Pub/Sub이나 BigQuery 로 실시간으로 데이터를 보낼 수 있다.
Message Queue/Consumer 구현 불필요, 로그를 직접 빅쿼리에 저장

BigQuery 방대한 양의 데이터에서 거의 실시간으로 SQL 쿼리를 실행하는 데 사용할 수 있는 페타바이트 규모의 분석 데이터웨어하우스 입니다.
Reporting 저장된 로그는 구글 데이타 스튜디오, 제플리, 주피터와 같은 리포팅 도구에 의하여 시각화 한다.

3. AWS

컴포넌트 역할

Amazon ES (Elasticsearch Service)

AWS 클라우드에서 Elasticsearch 클러스터의 배포, 운영 및 확장을 단순화하는 관리 서비스

Kibana

AWS ES 와 통합 된 분석 및 시각화 플랫폼을 제공

AWS Lambda

Amazon CloudWatch 에서 Amazon ES 도메인으로 로그 데이터를 로드하기 위해 사용
서버를 프로비저닝하거나 관리하지 않고도 코드 실행 & 소비 한 계산 시간에 대해서만 비용 지불

Amazon CloudWatch

애플리케이션 및 시스템 전반의 성능 변화에 대응하고, 리소스 사용률을 최적화하고,
운영 상태에 대한 통일 된 시각을 얻을 수있는 데이터 및 실행 가능한 통찰력을 제공

Amazon Cognito

Kibana 대쉬보드 사용자 인증 제공
웹과 모바일 앱에 빠르고 손쉽게 사용자 가입, 로그인 및 엑세스 제어 기능을 추가 할 수 있습니다.

4. azure

컴포넌트 역할
Azure IoT HUB 수십억 개의 IoT 자산을 연결, 모니터링 및 관리
Azure Event HUBS 웹 사이트, 앱 및 모든 데이터 스트림에서 클라우드로 원격 데이터 수집
KAFKA On Azure HDInsight 실시간 데이터를 위한 높은 처리량, 낮은 대기시간 관리
Azure Storage BLOBS 구조화되지 않은 데이터를 위한 확장 가능한 개체 저장소
Azure SQL Data Warehouse 엔터프라이즈를 위한 빠르고 유연한 보안 분석 플랫폼
Azure HDInsight (HADOOP/SPARK) 엔터프라이즈 용 오픈 소스 분석 서비스
Azure Stream Analytics 모든 IoT 장치 및 게이트웨이의 데이터를 즉시 분석
Azure Analysis Services 빠른 시작 및 효율적인 확장을 위한 분석 엔진
Power BI 대화형 시각적 개체, 대시보드 및 보고서 제공
어드밴스드 분석 – Azure Machine Learning 확장 및 신뢰할 수 있는 엔드-투-엔드 플랫폼으로 사용자의 AI 적용
딥 러닝 – Cognitive Services 인공지능을 활용하여 사용자의 요구사항을 자연스러운 의사소통 방식으로 해석

5. ELK stack

컴포넌트 역할

Elasticsearch

대규모의 데이터를 손쉽게 저장, 검색, 분석 할 수 있게 해줍니다.

Kibana 다양한 데이터 소스를 위해 미리 구성된 대시보드를 이용해 KPI를 강조 표시하는 라이브 프리젠테이션을 만들고 단일 UI에서 배포 관리
Logstash

확장형 플러그인 에코시스템으로 구성된 동적 데이터 수집 파이프라인

Filebeat

단말장치의 데이터를 전송하는 경량 데이터 수집기 플랫폼

8. Reference Architecture

9. 데이터 분석 방법론

  1) 로그 설계/정의
  2) 데이터품질 확보 (정의한대로 필드 및 파라미터에 적절한 로그가 쌓이는지, 누락되거나 이상한 데이터가 없는지)
  3) 분석 프레임 설정 (목적을 명확히 설정하고 적절한 질문을 사전에 작성)
  4) 난해한 결과가 나오면 조정
  5) 분석 결과를 명확하고 간결하며, 이해하기 쉽게 구성
  의미) 유용한 정보를 발견, 결론을 제시, 의사 결정의 목적으로 데이터를 검사, 정제, 변환, 모델링하는 과정을 의미

참고

반응형

'삶.. > 프로그래밍' 카테고리의 다른 글

git 원격 브랜치 삭제  (0) 2021.06.03
git rebase  (0) 2020.06.03
Redis 살펴보기  (0) 2020.05.22
@RequestBody Json 출력필터 적용 - xss  (0) 2020.05.19
XSS (Cross-site Scripting, 크로스 사이트 스크립팅) 방지  (0) 2020.05.13

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Comments