2016-08-19 3 views
0

다른 종류의 로그가있는 로그 파일의 데이터를 허용하는 LogStash를 사용하고 있습니다.Logstash 설정 파일에 필터를 포함시키는 방법은 무엇입니까?

첫 번째 행은 맞춤 로그를 나타내지 만 두 번째 행은 JSON 형식의 로그를 나타냅니다.

이제는 내용을 기반으로 로그를 구문 분석하고 마지막으로 모든 JSON 형식 로그를 jsonformat.log라는 파일로 보내고 다른 로그는 별도의 파일로 기록하는 필터를 작성하려고합니다.

답변

2

필터 json을 활용하여 실패했는지 여부를 확인하거나 이벤트를 보낼 위치를 결정할 수 있습니다.

input { 
    file { 
     path => "/Users/mysystem/Desktop/abc.log" 
     start_position => beginning 
     ignore_older => 0 
    } 
} 
filter { 
    json { 
    source => "message" 
    } 
} 
output { 
    # this condition will be true if the log line is not valid JSON 
    if "_jsonparsefailure" in [tags] { 
    file { 
     path => "/Users/mysystem/Desktop/nonjson.log" 
    } 
    } 
    # this condition will be true if the log line is valid JSON 
    else { 
    file { 
     path => "/Users/mysystem/Desktop/jsonformat.log" 
    } 
    } 
} 
+0

나는 이유를 알고하지 않습니다하지만 코드를 내 입력 파일에서 실행 구성 테스트를 통과하지만, 그냥 파이프 라인이 시작되었음을 보여 주지만, 로그 파일을 만들지 않습니다. – rohansingh

+0

'abc.log' 파일에 새로운 줄을 추가하거나'sincedb_path => "/ dev/null"을 파일 입력에 추가해야합니다. – Val

+0

네, 그랬습니다. 그리고 새로운 줄을 추가하려했지만 새로운 파일을 만들지 않습니다. 내가보기에 내 config 파일을 올리겠습니다. 또한 입력 파일. (질문에서 편집의 일부로 언급 됨) – rohansingh

관련 문제