Data Pipeline/Logstash

Logstash

재심 2022. 10. 29. 20:27

목차

    [Logstash란?]

    데이터 파이프라인 구조에서 데이터의 집계, 변환, 저장 역할을 수행함.

    Logstash는 형식이나 복잡성과 관계 없이 데이터를 동적으로 수집, 전환, 전송할 수 있다고 한다. 

    grok을 이용해 비구조적 데이터에서 구조를 도출하여 IP 주소에서 위치 정보 좌표를 해독하고, 민감한 필드를 익명화하거나 제외시키며, 전반적인 처리를 손쉽게 해주는 역할을 한다.

    Components

    Source : 모든 형태, 크기, 소스의 데이터 수집

    데이터의 매우 다양한 시스템에 매우 다양한 형태로 보관되어 있다.

    Logstash는 이같이 다양한 시스템에서 데이터를 가져오는 다양한 소스를 지원한다. 

     

    Filter : 데이터 이동 과정에서의 구문 분석 및 변환

    Logstash의 필터는 데이터가 소스에서 타겟 저장소로 이동하는 과정에서 각 이벤트를 분석하고 필터링 할 수 있다.

    이를 통해 데이터를 변환하고 통합하여 비즈니스 가치를 높여줄 수 있다.

    ex) MoA 메시지를 필터링하여 불필요한 메시지를 제거하거나 도메인별로 유입된 데이터를 통합하여 ES 인덱스 관리를 용이하게 함. 

     

    Sink : 목표 저장소에 데이터 전송

    원하는 곳으로 데이터를 출력할 수 있음.

    매우 다양한 저장소를 지원한다. 

     

    ex) Elasticsearch, Kafka, Mongodb, Redis etc.. 

     

     

    사용예시

     

    예시 (Source: Kafka, Sink: Elasticsearch)

    input {
             kafka {
                     id => "input_kafka"
                     bootstrap_servers => "localhost:9092"
                     group_id => "test-group"
                     topics_pattern => "^test$"
                     codec => json
                     decorate_events => true
                     tags => [ "KAFKA:DEV" ]
             }
     }
     
     
     filter {
    
     
     }
     
     output {
             elasticsearch {
                     hosts => ["localhost:9200"]
                     user => "user"
                     password => "password"
                     index => "test-%{+YYYY.MM.dd}"
             }
     }