본문 바로가기
기술/ElasticSearch

[Udemy][Elasticsearch 8과 Elastic Stack : 이론과 실습] 섹션 4: 크고 작은 데이터를 색인으로 가져오기

by 오오오오니 2025. 3. 18.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
아이콘 추가
커버 추가
레이아웃 사용자 지정

섹션 4: 크고 작은 데이터를 색인으로 가져오기

 
2025년 2월 26일 오후 3:08
댓글
 
 
 
 
 

데이터 수집 및 ELK 스택

 
 
구조화되지 않은 데이터를 새 색인으로 불러오는 스크립트 작성 가능
 
 
 
Logstash를 사용해 웹 로그 데이터가 생성됨에 따라 새 색인으로 데이터 불러오기
 
 
 
movie lens 데이터 세트에서 태그 데이터를 새로운 Elasticsearch 인덱스로 가져오기 가능
 
 

ELK 스택 구성 요소

 
 
Filebeat: 데이터를 Logstash 클러스터로 전송
 
 
 
Logstash:
 
 
데이터 완충
 
 
 
데이터 선별
 
 
 
지오로케이션 등의 작업 수행
 
 
 
처리 후 Elasticsearch로 전송
 
 
 
Elasticsearch: 받은 데이터를 색인화
 
 

전통적 방식 vs 현대적 방식

 
 
전통적 방식: 웹 서버에 직접 Logstash 사용
 
 
웹 서버 호스트에서 전송, 구조화, 지오로케이션 수행
 
 
 
단점: 시스템 복원력이 높지 않음
 
 
 
현대적 방식: 별도의 Logstash 클러스터 활용
 
 

다양한 데이터 소스 통합

 

관계형 데이터베이스

 
 
Logstash를 사용해 MySQL 데이터베이스에서 데이터 내보내기
 
 
 
많은 양의 데이터 → 분산된 Elasticsearch 클러스터로 전송
 
 

CSV 데이터

 
 
JSON과 달리 표준화되어 있지 않아 가져오기 과정에 주의 필요
 
 
 
Logstash를 통해 CSV 파일 데이터 파싱
 
 
 
불필요한 필드 가져오기 건너뛰기 가능
 
 
 
데이터를 필요에 맞게 수정 가능
 
 

JSON 데이터

 
 
Logstash JSON 필터 플러그인으로 JSON을 구조화된 이벤트로 파싱
 
 
 
이벤트 조건부 처리 기능:
 
 
특정 필드 값이 조건 충족 시 이벤트 삭제
 
 
 
심각도 낮은 로그 제거
 
 
 
문서 구조 변경:
 
 
필드 이름 변경 (예: http_statusstatus_code)
 
 
 
불필요한 필드 삭제
 
 

활용 사례

 
 
불필요한 로그 필터링: 디버그/테스트 로그 삭제
 
 
 
데이터 정제: 필요 필드만 유지
 
 
 
데이터 변환: 필드 이름 일관성 유지, 필드 병합
 
 

클라우드 스토리지 통합

 

S3 활용

 
 
AWS S3: 빅데이터 저장 장소로 널리 사용
 
 
 
장점: 필요한 공간만 임대, 자동 분산 및 백업
 
 
 
데이터 흐름: S3 → Logstash → Elasticsearch
 
 
 
원시 Apache 로그 포함 S3 버킷에서 데이터 가져오기
 
 
 
AWS는 다른 통합 매커니즘도 제공
 
 

비정형 데이터 처리

 

Grok 필터

 
 
Grok Debug tool 활용
 
 
 
모든 종류의 텍스트 파일 파싱 가능
 
 
 
고정 패턴이 없는 정보도 처리 가능
 
 

Logstash Grok 예제

 
 
MongoDB 로그: 데이터베이스 성능 및 리소스 사용률 추적
 
 
문제 해결과 성능 조정에 도움
 
 
 
단선/다선 항목 처리
 
 
 
다선 이벤트에 태그 지정
 
 
 
슬로우 로그: Elasticsearch 검색/색인화 작업 최적화
 
 
 
ELB(Elastic Load Balancer): 여러 인스턴스에 트래픽 분산
 
 

Logstash 플러그인

 

입력 플러그인

 
 
HTTP, HTTP_poller
 
 
 
Dead letter Queue
 
 
 
TCP, UDP 플러그인
 
 

하트비트 인풋 플러그인

 
 
Logstash 상태 확인 목적
 
 
 
타겟 Elasticsearch 또는 목적지에 주기적 메시지 전송
 
 
 
메시지 전송 간격 정의 가능
 
 
 
주요 설정:
 
 
메시지 간격
 
 
 
입력 플러그인 유형
 
 

데드 레터 큐 (DLQ)

 
 
Logstash가 이벤트 처리 실패 시 이벤트 손실 방지
 
 
 
처리 불가능한 문서 수집하여 추가 검토 가능
 
 
 
구성:
 
 
DLQ 활성화
 
 
 
DLQ 경로 설정
 
 
 
DLQ 폴더 생성
 
 
 
데이터 저장 명령어 입력
 
 

HTTP Poller 플러그인

 
 
주기적으로 HTTP 엔드포인트 데이터 가져오기
 
 
 
응답을 Elasticsearch에 저장
 
 
 
활용:
 
 
애플리케이션 건강 API 모니터링
 
 
 
날씨, 경기 세부사항 등 상태 주기적 수집
 
 

Syslog 통합

 

Syslog 개요

 
 
네트워크 장치 로그 데이터 중앙 집중화 및 형식화 표준
 
 
 
프로그램 오류, 공지, 경고 상태 메시지 수집
 
 
 
Linux/BSD 커널 기반 운영체제는 Syslog 데몬 사용
 
 
 
포트 6514: TCP 연결과 TLS 암호화 사용
 
 

Logstash 연동 방법

 
 
Syslog 서비스: TCP 연결 통해 Logstash로 로그 전달
 
 
 
Logstash 직접 구성: 로그 파일 모니터링
 
 

중앙 집중식 로그 관리 장점

 
 
모든 로그에 쉽게 접근 및 검색
 
 
 
서버 장애 시에도 로그 보존
 
 
 
해커 공격 후 로그 삭제 방지
 
 
 
시스템 문제 발생 전 상황 확인 가능
 
 

Kafka 통합

 

Kafka 개요

 
 
Apache 오픈 소스 스트림 처리 플랫폼
 
 
 
높은 처리량, 낮은 지연 시간의 퍼블릭 구독 메커니즘
 
 
 
스트림 처리 중에도 데이터 저장 가능
 
 
 
AWS Kinesis와 유사
 
 

Kafka와 Logstash 통합

 
 
Kafka의 토픽(데이터 채널)을 통해 데이터 게시
 
 
 
Zookeeper: 관련 프로세스 정보 유지 (향후 제거 예정)
 
 
 
구현 방식:
 
 
Kafka 토픽 생성 (예: kafka-logs)
 
 
 
로그 데이터를 Kafka에 게시
 
 
 
Logstash로 데이터 가져와 Elasticsearch에 저장
 
 
 
여러 소비자가 각자 속도로 데이터 가져올 수 있음
 
 

고급 기능 및 통합

 

Apache Spark와 Elasticsearch

 
 
머신러닝 기능 제공
 
 
 
그래프 데이터 구조 분석 지원 (소셜 네트워크 등)
 
 

벡터 데이터베이스/벡터 저장소

 
 
시맨틱 검색 및 AI 애플리케이션을 위한 증강 생성 지원
 
 
 
임베딩 벡터와 함께 데이터 저장
 
 
 
벡터 의미 및 단어 유사도 활용
 
 
 
AI, 챗봇, ChatGPT 등의 작동 방식 지원
 
 

벡터 검색 프로세스

 
 
검색 항목에 대한 임베딩 벡터 계산
 
 
 
가장 유사한 벡터 검색
 
 
 
상위 k개 유사 항목 반환
 
 
 
대형 언어 모델(LLM) 프롬프트에 포함
 
 

구현 고려사항

 
 
Elasticsearch는 임베딩 벡터를 직접 생성하지 않고 저장/검색만 함
 
 
 
실제 임베딩은 GPT 같은 대형 언어 모델에서 생성
 
 
 
차원 설정 중요 (예: OpenAI 임베딩 차원 1536)
 
 
 
OpenAI API 제한: 한번에 최대 2048개 항목 임베딩 생성 가능
 
 
 
 
 
 
 
 
 
 
 
 
저작자표시

'기술 > ElasticSearch' 카테고리의 다른 글

[Udemy][Elasticsearch 8과 Elastic Stack : 이론과 실습] 섹션 3: Elasticsearch를 사용한 검색  (1) 2025.03.18
[Udemy][Elasticsearch 8과 Elastic Stack : 이론과 실습] 섹션 2: 데이터 매핑 및 색인화  (0) 2025.03.18