2014-04-16 1 views
5

여러 줄 스택 트레이스를 포함하여 셀러의 로그 형식을 올바르게 구문 분석하는 logstash 구성을 만들려고합니다. 나는 단 한 줄의 출력을 구문 분석 할 수 grok 수를 준비했다 어떤 시점에서Celery 스택 트레이스 용 logstash multiline 코덱

[2014-04-15 15:11:27,350: DEBUG/Worker-4] Doing some work. 
[2014-04-15 15:11:27,362: ERROR/MainProcess] Task core.tasks.sometask[92dc34bd-8139-4f98-b359-d78caf68381d] raised unexpected: ValueError('Foobar',) 
Traceback (most recent call last): 
    File "./venvs/backend-33/lib/python3.4/site-packages/celery/app/trace.py", line 238, in trace_task 
    R = retval = fun(*args, **kwargs) 
    File "./venvs/backend-33/lib/python3.4/site-packages/celery/app/trace.py", line 416, in __protected_call__ 
    return self.run(*args, **kwargs) 
    File "util.py", line 151, in wrapper 
    rv = func(self, *args, **kwargs) 
    File "tasks.py", line 104, in do_something_useful 
    raise ValueError('Foobar') 
ValueError: Foobar 

을하지만, 여러 문제가 있습니다 : 로그 출력의 예는 다음과 같을 수 있습니다. 이 구성 :

input { 
    stdin { 
     codec => multiline { 
      'negate' => true 
      'pattern' => '^\[' 
      'what' => 'previous' 
     } 
    } 
} 

output { 
    stdout { 
     codec => rubydebug 
    } 
} 

내가 그것을 실행할 때, 그것은 전혀 출력을 생성하지, 여러 줄 코덱의 Logstash 문서에서 바로 더 많거나 적은을 가져온 것입니다.

내가 대신 여러 필터를 사용했지만,이 같은 결과를 산출, 또한 --verbose와 logstash를 실행하려하지만 유용한 정보를 제공하지 않았다. 무슨 일 이니?

+0

, 그것은 logstsash-1.3.3 저에 근무한다. –

+0

필자는 logstash-1.4.0을 사용해 보았지만 파일 입력은 매력처럼 작동합니다. – Blubber

+0

멀티 라인 필터는 잊어 버려야하며, 코덱과 완전히 동일하지만 멀티 스레드 가능하지 않습니다 (예 : 매우 나쁜 성능) – yesnault

답변

3

Google 검색에서 더 많은 답변을 얻은 후 다중 라인 코덱이 표준 입력과 잘 맞지 않는 것 같습니다. 파일 입력을 사용하면 이제 작동합니다.

은 참조 : 로그와 설정으로 https://logstash.jira.com/browse/LOGSTASH-1629