2017-12-04 32 views
1

로그 파일에서 유입되는 데이터를 수집하려고했습니다. 나는이 패턴Telegraf 구문 분석 logstash 스타일의 "grok"패턴

[inputs.logparser.grok] 
     #patterns = ['%{ts-"20060102-15:04:05.999":timestamp}%{GREEDYDATA:random_data}'] 
     patterns = ['(?<timestamp>\d{8}-\d{2}:\d{2}:\d{2}\.\d+)\s*:\s*%{GREEDYDATA:random_data}'] 

내가 패턴을 공식화에 대한 도움을받을 수를 사용했다

20171130-22:02:21.832 : something data work now 
20171230-22:02:22.843 : something data2 
20171231-22:02:23.232 : something data3 

을 다음과 같이 구조는?

답변

1

당신은

(?<timestamp>\d{8}-\d{2}:\d{2}:\d{2}\.\d+)\s*:\s*%{GREEDYDATA:random_data} 

정보를 사용할 수 있습니다

  • (?<timestamp>\d{8}-\d{2}:\d{2}:\d{2}\.\d+) - timestamp 필드 패턴 :
    • \d{8}-9 자리
    • - - 하이픈
    • \d{2}:\d{2}:\d{2} - 2 자리수 : 2 자리 및 2 자리 :
    • \.\d+ - 도트와 1+ 자리
  • \s*:\s* - 0+ 공백 문자
  • %{GREEDYDATA:random_data} 동봉 : - .* , 줄의 끝까지 무엇이든
+0

고마워요. .. 말합니다. 오류 구문 분석 로그 줄 : 오류 구문 분석 regexp : 유효하지 않거나 지원되지 않는 Perl 문법 :'(? <'... 유입에 성공적으로 쓰려면 문법을 도와 줄 수 있습니까? 나는 이걸로 매우 새롭다. – phaigeim

+0

죄송합니다, Grok와 함께 정규식을 사용하고 계십니까? Grok 정규 표현식은 명명 된 캡처 그룹을 지원하기 때문에 추출 된 필드 이름을 설정하는 데 사용됩니다. –

+0

나는 그렇다고 생각한다. 다음은 [inputs.logparser.grok]를 사용하는 구문입니다. #patterns = [ '% {ts- "20060102-15 : 04 : 05.999": 타임 스탬프} % {GREEDYDATA : random_data}'] patterns = [ ' (? \ d {2} : \ d {2} : \ d {2} \. \ d +) \ s * : \ s * % {GREEDYDATA : random_data} '] – phaigeim