기록하는 습관

Logstash - 특징 / Pipeline 본문

카테고리 없음

Logstash - 특징 / Pipeline

로그뉴 2022. 7. 6. 17:27

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

 

  1. Pipeline
    1. 3가지 processor(input, filter, output)으로 구성되고 순차적으로 실행됨.
    2. Pipeline 설계의 핵심어떤 플러그인을 선택하여 필터링 할 것인가?
  2. Plugin
    1. 플러그인을 조합해 데이터 처리를 진행
      1. Ex) Input(File Plugin), Filter(JSON Plugin), Output(ES Plugin) 으로 구성하면
      2. file에서 데이터를 가져와 json 형태로 변환 후 ES로 인덱싱 하게 됨.
    2. 원하는 plugin을 만들어서 사용할 수도 있음
  3. Input
    1. 플러그인 링크https://www.elastic.co/guide/en/logstash/current/input-plugins.html
    2. 데이터를 어디서 받을건지 (http 호출을 통한 리턴 값, TCP로 직접 로그 받기, csv/json 등의 파일, twitter 데이터)
    3. Beats, Redis와 결합해서 쓰는 것도 가능
      1. Cf) beats? 특정 목적을 위한 데이터 수집기용 플랫폼. 경량 에이전트로 설치되어 수백 개, 수천 개 데이터를 logstash/ES로 전송함.
      2. 설명 링크: https://gyrfalcon.tistory.com/entry/elastic-stack-5-beats-소개-quickstart
    4. 필수요소
  4. Filter
    1. 플러그인 링크https://www.elastic.co/guide/en/logstash/current/filter-plugins.html
    2. logstash의 핵심 모듈!!
    3. Input 데이터를 어떻게 가공할 것인지 필터에서 규약함.
    4. 자주 쓰는 filter plugin
      1. gork
        1. 자주 쓰이는 문자열 정규표현식 패턴을 사전 정의 해 놓은 필터.
      2. mutate
        1. 데이터 필드 단위로 변형할 수 있음.
        2. 필드 변경시 장점
          1. ES에서 indexing data를 변경 하는 것은 상대적으로 어려움
          2. indexing전에 필드를 변경을 해서 넘기면 속도가 빠름
          3. 불필요한 indexing을 줄이고 ES에 전송하는 데이터 양도 줄일 수 있음.
      3. date
        1. String -> Date
        2. 날짜를 Date로 변경하는 이유
          1. ES에서 indexing 할 때 String이면 Query Aggregation 할 때 문제가 발생할 수 있음.
      4. Json
        1. Input JSON 데이터 구조 유지
      5. Kv
        1. Key-value 데이터 구조 유지
      6. 선택요소
    5. Output
      1. 플러그인 링크https://www.elastic.co/guide/en/logstash/current/output-plugins.html
      2. 필터링된 데이터를 어떻게 출력하고 어디를 보낼 것인지 정의
      3. 필수요소
    6. Codec plugin
      1. 데이터 인코딩/디코딩
      2. 메시지를 쉽게 구분하고 전송할 수 있는 input output 단계에서 사용되는 stream filter

 

참고 링크

 

1.      Logstash 개념

a.       https://angryfullstack.tistory.com/entry/엘라스틱서치Elasticsearch-Logstash-configuration-파이프라인-시작하기-2?category=773225

Comments