[Logstash] Logstash & Grok 패턴 정리

robert·2022년 11월 10일
0

Logstash란?

  • 실시간 파이프라인 기능을 가진 데이터 수집 open source

왜 사용하는가?

  • 입력과 필터 및 출력 플러그인을 통해, 모든 유형의 이벤트를 보강하고 변환할 수 있으며 많은 기본 코덱이 처리 과정을 단순화

  • 로그 스태시는 아래의 pipeline으로 수행
  • Input, Output은 필수이며 filter는 선택적 적용 가능

설정파일

input {
  beats {
    port => "5044"
  }
}

filter {
  grok {
    match => { "message" => "%{TIMESTAMP_ISO8601:logdate} \[%{DATA:thread}\] %{WORD:loglevel} %{DATA:package} %{NUMBER:line} - %{GREEDYDATA:body}" }
  }
  if [loglevel] == "INFO" {
    drop {
    }
  }
}

output {
  elasticsearch {
    hosts => "172.31.33.21:9200"
    index => "logs-%{+YYYY.MM.dd}"
  }
}

Grok 패턴

  • Logstach filter를 통해 비정형 데이터를 정형 데이터로 바꿀 수 있다. 이때 정규식을 이용하여 정형화 하는 방법이 Grok Pattern

문법

  • %{SYNTAX:SEMANTIC}
  • SYNTAX : Input에서 감지해야 하는 정규식 패턴
  • SEMANTIC : 감지된 패턴을 할당할 logstash 변수
profile
화이팅!

0개의 댓글