Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- Kotlin in action 6장
- kotlin in action 정리
- KotlinInAction
- 백준 13460 Python
- 코틀린인액션
- 7장 고급매핑
- Kotlin in action 3장
- 스프링 컨테이너와 스프링 빈
- 백준 20055 컨베이어 벨트 위의 로봇
- 자바 ORM 표준 JPA 프로그래밍 7장
- 기능개발 python
- 고급매핑
- 스프링 핵심 원리 - 기본편
- 13460 구슬탈출 2
- 20055 컨베이어 벨트 위의 로봇
- Kotlin in action 10장
- 20055
- Kotlin in action 5장
- 스프링 핵심 원리
- 코틀린
- 코틸린인액션
- 백준
- 컨베이어 벨트 위의 로봇 Python
- Python
- 객체 지향 설계와 스프링
- 싱글톤 컨테이너
- Kotlin In Action
- Kotlin
- 스프링 핵심 원리 이해
- spring
Archives
- Today
- Total
기록하는 습관
Logstash - 특징 / Pipeline 본문
Logstash
- 실시간 파이프라인 기능을 가진 데이터 수집 엔진 오픈소스.
- 서로 다른 소스의 데이터를 동적으로 통합하고 원하는 대상으로 데이터를 정규화 할 수 있는 능력이 있음.
공식 문서: www.elastic.co/guide/en/logstash/7.6/introduction.html
특징
1. 강력한 Elastic / Kibana와의 시너지와 함께 수평적으로 데이터 프로세스 파이프라인이 스케일업 할 수 있음
2. 다른 input, filter, output 플러그인들을 mix, match 할 수 있다.
3. 200 개가 넘는 플러그인 사용이 가능함
4. 플러그인을 새로 생성하고 기여할 수 있음.
Logstash Pipeline
Logstash Execution Model
- Pipeline
- 3가지 processor(input, filter, output)으로 구성되고 순차적으로 실행됨.
- Pipeline 설계의 핵심: 어떤 플러그인을 선택하여 필터링 할 것인가?
- Plugin
- 플러그인을 조합해 데이터 처리를 진행
- Ex) Input(File Plugin), Filter(JSON Plugin), Output(ES Plugin) 으로 구성하면
- file에서 데이터를 가져와 json 형태로 변환 후 ES로 인덱싱 하게 됨.
- 원하는 plugin을 만들어서 사용할 수도 있음
- 플러그인을 조합해 데이터 처리를 진행
- Input
- 플러그인 링크: https://www.elastic.co/guide/en/logstash/current/input-plugins.html
- 데이터를 어디서 받을건지 (http 호출을 통한 리턴 값, TCP로 직접 로그 받기, csv/json 등의 파일, twitter 데이터)
- Beats, Redis와 결합해서 쓰는 것도 가능
- Cf) beats? 특정 목적을 위한 데이터 수집기용 플랫폼. 경량 에이전트로 설치되어 수백 개, 수천 개 데이터를 logstash/ES로 전송함.
- 설명 링크: https://gyrfalcon.tistory.com/entry/elastic-stack-5-beats-소개-quickstart
- 필수요소
- Filter
- 플러그인 링크: https://www.elastic.co/guide/en/logstash/current/filter-plugins.html
- logstash의 핵심 모듈!!
- Input 데이터를 어떻게 가공할 것인지 필터에서 규약함.
- 자주 쓰는 filter plugin
- gork
- 자주 쓰이는 문자열 정규표현식 패턴을 사전 정의 해 놓은 필터.
- mutate
- 데이터 필드 단위로 변형할 수 있음.
- 필드 변경시 장점
- ES에서 indexing된 data를 변경 하는 것은 상대적으로 어려움.
- indexing전에 필드를 변경을 해서 넘기면 속도가 빠름
- 불필요한 indexing을 줄이고 ES에 전송하는 데이터 양도 줄일 수 있음.
- date
- String -> Date
- 날짜를 Date로 변경하는 이유?
- ES에서 indexing 할 때 String이면 Query나 Aggregation 할 때 문제가 발생할 수 있음.
- Json
- Input의 JSON 데이터 구조 유지
- Kv
- Key-value 데이터 구조 유지
- 선택요소
- gork
- Output
- 플러그인 링크: https://www.elastic.co/guide/en/logstash/current/output-plugins.html
- 필터링된 데이터를 어떻게 출력하고 어디를 보낼 것인지 정의
- 필수요소
- Codec plugin
- 데이터 인코딩/디코딩
- 메시지를 쉽게 구분하고 전송할 수 있는 input과 output 단계에서 사용되는 stream filter
참고 링크
1. Logstash 개념
a. https://angryfullstack.tistory.com/entry/엘라스틱서치Elasticsearch-Logstash-configuration-파이프라인-시작하기-2편?category=773225
Comments