2017-01-17 4 views
0

내가 우편으로받을 CloudWatch에서의 람다 함수 로그의이 라인이 있습니다구문 분석 CloudWatch에서 로그

/aws/lambda/sns-function | 2017/01/10/[$LATEST]425d9138c8d54ab57l0766ba74fdfd4p | 2017-01-10T00:04:30.734Z | 2017-01-10 00:04:30,734 :: ERROR :: error creating /tmp/tmpkRWp3S_20170110/file20170115.tar.gz: Command `['/bin/tar', '--create', '-z', '--file', u'/tmp/tmpkRWp3S_20170110/file20170115.tar.gz', '--', './']' returned non-zero exit status 1 

으로 나는 단지 중요한 데이터를 얻기 위해 필터 패턴을 데려 가고 싶다는이 doc 설명합니다. 2017-01-10T00:04:30.734Z 내가 이런 패턴을 사용하려고 : 나를 위해, 나는 위의 라인에, 내가 두 번이 정보를 가지고 있기 때문에 한 번만 날짜를 얻으려면

[...,timestamp,level,message=*ERROR*,...] 

을하지만 난이 오류가있어 :

2017-01-17 10:45:58,091 :: ERROR :: logGroup: '/aws/lambda/sns-function' - logStream: 'None' 
2017-01-17 10:45:58,091 :: ERROR :: An error occurred (InvalidParameterException) when calling the FilterLogEvents operation: Duplicate field '...' 

로그를 구문 분석하여 날짜를 한 번 얻으려면 어떻게해야합니까?

답변

1

메트릭 필터를 사용하면 로그 이벤트에서 용어, 구문 또는 값을 검색하고 일치시킬 수 있습니다. 그들은 로그 이벤트 (타임 스탬프 귀하의 경우)에서 값을 제거하지 마십시오. 출력에서 타임 스탬프을 제외하도록 스크립트를 수정할 수 있습니다 (이미 포함되어 있으므로).

또한 공백으로 구분 된 로그 이벤트에 메트릭 필터를 사용하고 있습니다. 구분 기호는 :: 인 것 같습니다.이 경우에는 작동하지 않습니다. 메트 릭 필터는 이것을 단일 필드로 해석합니다. 이 메트릭 필터를 사용하려면 각 필드를 대괄호 [] 또는 두 개의 큰 따옴표 ""으로 묶을 수 있습니다.

예를 들어, 다음과 같은 로그 이벤트에 대해이 패턴 [timestamp, result=ERROR, message, exit_status=*1*]를 사용할 수 있습니다

[2017-01-10 00:04:30,734] [ERROR] "error creating /tmp/tmpkRWp3S_20170110/file20170115.tar.gz: Command `['/bin/tar', '--create', '-z', '--file', u'/tmp/tmpkRWp3S_20170110/file20170115.tar.gz', '--', './']' returned non-zero" "exit status 1" 

참고을 : 오류의 원인은 생략 한 번만 패턴에서 발생해야한다는 것입니다.

+0

감사합니다. 각 필드를'event [ 'message']'파이썬으로 구분 된 "|"로 표시 할 수 있습니까? ? – JavaQueen

+0

코드 스 니펫을 포함하여 새로운 질문을 게시하고 파이썬에 태그를 지정하는 것이 더 좋습니다. –

+0

괜찮습니다. 여기 : http://stackoverflow.com/questions/41697901/format-the-message-of-cloudwatch-logs – JavaQueen