2017-12-01 3 views
0

다음 필터 과 함께 실패합니다. 주어진 구성이 유효하지 않습니다. 이유 : 끝에 "/"가 없으므로 /, /, 행 23, 열 1 (바이트 308)에있는 문자가 있어야합니다. /경로/이어야합니다. logstash는/path 다음에 오는 모든 것을 "/"로 끝나지 않으면 정규 표현식의 일부로 해석합니다.누군가가 logstash에서 = ~ 연산자를 설명 할 수 있습니까?

filter { 
    if [message] =~ /path { 
     drop { } 
    } 
} 
  1. 내가 알고/경로/A 정규 표현식이지만, 앞으로이 경우에 대한 슬래시 무엇인가?
  2. 내 패턴이/path가있는 로그 라인과 일치합니까?

불행히도 official docs에서 아무것도 찾을 수 없습니다.

답변

1

두 가지 사이에있는 것이 /이며 패턴은 /이며 나머지 구성과 패턴은 구분됩니다.

따라서 [message] =~ /path/이있는 경우 필드 메시지에 path 문자열이 포함되어 있는지 확인합니다. /path과 일치 시키려면 /\/path/을 사용해야합니다.

+0

Thx. 그것은 어디에서 기록 되었습니까? – kev

+0

@kev 명시 적으로. 그러나 logstash 구성에 대한 몇 가지 예를 보았을 수도 있으므로 이해할 수 있습니다. 또한'/'사이에 정규식 패턴을 작성하는 방법은 다른 곳에서도 가능합니다 (https://en.wikipedia.org/wiki/Regular_expression#Delimiters를 참조하십시오. sed와 어쩌면 다른 것들과 함께 사용됩니다). – baudsp

관련 문제