2018년 9월 20일 목요일

Logstash 필터 kv

같은 구조임에도 배열이 조금씩 다른 다음과 같은 로그가  있다.

sip = 1.1.1.1 dip = 2.2.2.2 sport = 100 dport = 200 action = permit
sip = 1.1.1.1 dip = 2.2.2.2 sport = 100 dport = 200 attack = 10.10.10.10
sip = 1.1.1.1 dip = 2.2.2.2 attack = 10.10.10.10

이런 로그를 처리하려면 필터 설정이 복잡해지게 마련.

filter {
  if "action" in [message] {
    dissect { mapping => { "message" => "sip = %{sip} dip = %{dip} sport = %{sport} dport = %{dport} action = %{action}" } }
  } else if "port" in [message] and "attack" in [message] {
      dissect { mapping => { "message" => "sip = %{sip} dip = %{dip} sport = %{sport} dport = %{dport} attack = %{atack}" } }
  } else {
      dissect { mapping => { "message" => "sip = %{sip} dip = %{dip} attack = %{attack}" } }
  }
}

2018년 9월 16일 일요일

Logstash 연동 에러(Limit of total fields)

로드스태시 연동 과정에서 발생한 에러. 엘라스틱서치에서 하나의 인덱스가 가질 수 있는 필드 개수에 제한이 있나 보다. 기본적으로 허용된 필드 개수는 1,000개. 필드 분류를 어떻게 했길래 개수가 1,000개를 넘어가지?


크리에이티브 커먼즈 라이선스