패턴 분석 - 아마존 CloudWatch 로그

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

패턴 분석

CloudWatch Logs Insights는 머신 러닝 알고리즘을 사용하여 로그를 쿼리할 때 패턴을 찾습니다. 패턴은 로그 필드 간에 반복되는 공유 텍스트 구조입니다. 쿼리 결과를 볼 때 패턴 탭을 선택하여 결과 샘플을 기반으로 CloudWatch 로그가 찾은 패턴을 확인할 수 있습니다. 또는 쿼리에 pattern 명령을 추가하여 일치하는 전체 로그 이벤트 세트의 패턴을 분석할 수 있습니다.

패턴은 많은 수의 로그 이벤트가 종종 몇 가지 패턴으로 압축될 수 있기 때문에 대규모 로그 세트를 분석하는 데 유용합니다.

세 가지 로그 이벤트의 다음 예제를 고려해 보십시오.

2023-01-01 19:00:01 [INFO] Calling DynamoDB to store for resource id 12342342k124-12345 2023-01-01 19:00:02 [INFO] Calling DynamoDB to store for resource id 324892398123-12345 2023-01-01 19:00:03 [INFO] Calling DynamoDB to store for resource id 3ff231242342-12345

이전 샘플에서는 세 개의 로그 이벤트가 모두 한 가지 패턴을 따릅니다.

<*> <*> [INFO] Calling DynamoDB to store for resource id <*>

패턴 내의 필드를 토큰이라고 합니다. 요청 ID 또는 타임스탬프와 같이 패턴 내에서 달라지는 필드는 동적 토큰입니다. 각 동적 토큰은 CloudWatch 로그에 <*> 표시되는 시점으로 표시됩니다.

동적 토큰의 일반적인 예로는 오류 코드, 타임스탬프, 요청 ID 등이 있습니다. 토큰 값은 동적 토큰의 특정 값을 나타냅니다. 예를 들어 동적 토큰이 HTTP 오류 코드를 나타내는 경우 토큰 값은 다음과 같을 수 501 있습니다.

패턴 감지는 CloudWatch 로그 이상 탐지기 및 비교 기능에서도 사용됩니다. 자세한 내용은 로그 이상 탐지이전 시간 범위와 비교 (diff) 섹션을 참조하세요.

패턴 분석 시작하기

패턴 감지는 모든 CloudWatch Logs Insights 쿼리에서 자동으로 수행됩니다. pattern명령이 포함되지 않은 쿼리는 결과에 로그 이벤트와 패턴을 모두 가져옵니다.

쿼리에 pattern 명령을 포함하면 일치하는 전체 로그 이벤트 세트에 대해 패턴 분석이 수행됩니다. 이렇게 하면 패턴 결과가 더 정확해지지만 pattern 명령을 사용할 때 원시 로그 이벤트가 반환되지 않습니다. 쿼리에 포함되지 pattern 않은 경우 패턴 결과는 처음 1000개의 반환된 로그 이벤트 또는 쿼리에 사용한 제한값을 기반으로 합니다. pattern쿼리에 포함하는 경우 패턴 탭에 표시되는 결과는 쿼리와 일치하는 모든 로그 이벤트에서 파생됩니다.

CloudWatch Logs Insights에서 패턴 분석을 시작하려면
  1. https://console.aws.amazon.com/cloudwatch/ 에서 CloudWatch 콘솔을 엽니다.

  2. 탐색 창에서 로그, 로그 인사이트를 선택합니다.

    로그 인사이트 페이지의 쿼리 편집기에는 최신 로그 이벤트 20개를 반환하는 기본 쿼리가 포함되어 있습니다.

  3. 쿼리 상자에서 해당 | limit 20 줄을 제거하여 쿼리가 다음과 같이 표시되도록 합니다.

    fields @timestamp, @message, @logStream, @log | sort @timestamp desc
  4. 로그 그룹 선택 드롭다운에서 쿼리할 로그 그룹을 하나 이상 선택합니다.

  5. (선택 사항) 시간 간격 선택기를 사용하여 쿼리할 기간을 선택합니다.

    5분에서 30분 간격, 1시간, 3시간, 12시간 간격 또는 사용자 지정 시간 프레임 중에서 선택할 수 있습니다.

  6. 쿼리 실행을 선택하여 쿼리를 시작합니다.

    쿼리 실행이 끝나면 로그 탭에 쿼리에서 반환된 로그 이벤트 테이블이 표시됩니다. 테이블 위에는 쿼리와 일치하는 레코드 수에 대한 메시지가 있는데, 이는 71,101개의 일치하는 레코드 중 1000개 표시와 비슷합니다.

  7. 패턴 탭을 선택합니다.

  8. 이제 쿼리에서 찾은 패턴이 테이블에 표시됩니다. 쿼리에 pattern 명령이 포함되지 않았으므로 이 탭에는 로그 탭의 표에 표시된 1000개의 로그 이벤트 중에서 발견된 패턴만 표시됩니다.

    각 패턴에 대해 다음과 같은 정보가 표시됩니다.

    • 패턴, 각 동적 토큰이 로 표시됩니다<*>.

    • 이벤트 수는 쿼리된 로그 이벤트에 패턴이 나타난 횟수입니다. 이벤트 횟수 열 제목을 선택하여 패턴을 빈도별로 정렬합니다.

    • 이벤트 비율은 쿼리된 로그 이벤트 중 이 패턴을 포함하는 이벤트 이벤트의 백분율입니다.

    • 심각도 유형은 다음 중 하나입니다.

      • 패턴에 오류라는 단어가 포함된 경우 오류가 발생합니다.

      • 패턴에 Warn이라는 단어는 포함되지만 오류는 포함되지 않은 경우 경고합니다.

      • 패턴에 경고 또는 오류가 포함되지 않은 경우의 정보

      심각도 정보 열 제목을 선택하여 심각도별로 패턴을 정렬합니다.

  9. 이제 쿼리를 변경하십시오. 전체 쿼리가 다음과 같이 되도록 쿼리의 | sort @timestamp desc 줄을 로 바꾸십시오| pattern @message.

    fields @timestamp, @message, @logStream, @log | pattern @message
  10. 쿼리 실행을 선택합니다.

    쿼리가 끝나면 로그 탭에 결과가 표시되지 않습니다. 그러나 쿼리된 로그 이벤트의 총 수에 따라 패턴 탭에는 더 많은 수의 패턴이 나열될 수 있습니다.

  11. pattern쿼리에 포함했는지 여부에 관계없이 쿼리가 반환하는 패턴을 더 자세히 검사할 수 있습니다. 이렇게 하려면 Inspect 열에서 패턴 중 하나의 아이콘을 선택하세요.

    패턴 검사 창이 나타나고 다음이 표시됩니다.

    • 패턴. 패턴 내에서 토큰을 선택하여 해당 토큰의 값을 분석하십시오.

    • 쿼리된 시간 범위 동안의 패턴 발생 횟수를 보여주는 히스토그램입니다. 이를 통해 패턴 발생의 급격한 증가와 같은 흥미로운 추세를 파악할 수 있습니다.

    • 로그 샘플 탭에는 선택한 패턴과 일치하는 몇 가지 로그 이벤트가 표시됩니다.

    • 토큰 값 탭에는 선택한 동적 토큰의 값이 표시됩니다 (선택한 경우).

      참고

      각 토큰에 대해 최대 10개의 토큰 값이 캡처됩니다. 토큰 수가 정확하지 않을 수 있습니다. CloudWatch 로그는 절대값이 아닌 확률적 카운터를 사용하여 토큰 수를 생성합니다.

    • 관련 패턴 탭에는 검사 중인 패턴과 거의 같은 시기에 자주 발생한 다른 패턴이 표시됩니다. 예를 들어, 일반적으로 ERROR 메시지 패턴에 추가 세부 정보가 표시된 다른 로그 이벤트가 수반되는 경우 해당 패턴이 여기에 표시됩니다. INFO

패턴 명령에 대한 세부 정보

이 섹션에는 pattern 명령 및 사용에 대한 자세한 내용이 포함되어 있습니다.

  • 이전 자습서에서는 sort 명령 뒤에 명령이 포함된 쿼리는 유효하지 pattern 않기 때문에 명령을 추가할 때 이 pattern 명령을 제거했습니다. sort a pattern 앞에 가 있어도 sort 유효합니다.

    pattern구문에 대한 자세한 내용은 을 참조하십시오패턴.

  • 쿼리에 사용할 때는 pattern pattern 명령에서 선택한 필드 중 @message 하나여야 합니다.

  • filter명령 앞에 명령을 포함하여 필터링된 로그 이벤트 집합만 패턴 분석을 위한 입력으로 사용되도록 할 수 있습니다. pattern

  • parse명령에서 파생된 필드와 같은 특정 필드의 패턴 결과를 보려면 를 사용하십시오pattern @fieldname.

  • stats명령을 사용한 쿼리와 같이 로그가 아닌 출력이 있는 쿼리는 패턴 결과를 반환하지 않습니다.