기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
예제: HTTP 404 코드 수 계산
CloudWatch 로그를 사용하면 Apache 서버가 HTTP 404 응답을 반환하는 횟수 (페이지를 찾을 수 없음) 에 대한 응답 코드인 횟수를 모니터링할 수 있습니다. 사이트 방문자들이 원하는 리소스를 찾지 못하는 빈도를 파악하기 위해 모니터링을 원할 수 있습니다. 로그 레코드는 각 로그 이벤트(사이트 방문)에 대해 다음 정보를 포함하도록 구성되었다고 가정합니다.
-
요청자 IP 주소
-
RFC 1413 ID
-
사용자 이름
-
Timestamp
-
요청된 리소스와 프로토콜이 포함된 요청 메서드
-
요청할 HTTP 응답 코드
-
요청 시 전송되는 바이트
예를 들어 다음과 같은 형태일 수 있습니다.
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 404 2326
다음 예제에서 알 수 있듯이, HTTP 404 오류에서 해당 구조의 이벤트와 매칭을 시도하는 규칙을 지정할 수 있습니다.
콘솔을 사용하여 지표 필터를 만들려면 CloudWatch
-
https://console.aws.amazon.com/cloudwatch/
에서 CloudWatch 콘솔을 엽니다. -
탐색 창에서 로그 그룹을 선택합니다.
-
작업, 지표 필터 생성을 선택합니다.
-
필터 패턴에
[IP, UserInfo, User, Timestamp, RequestInfo, StatusCode=404, Bytes]
를 입력합니다. -
(선택 사항) 필터 패턴을 테스트하려면 테스트 패턴에 패턴을 테스트하는 데 사용할 로그 이벤트를 하나 이상 입력합니다. 줄 바꿈은 로그 이벤트 메시지 상자에서 로그 이벤트를 구분할 때 사용하므로 각 로그 이벤트는 한 줄을 넘지 않아야 합니다.
-
다음을 선택하고 필터 이름에 HTTP404Errors를 입력합니다.
-
지표 세부 정보의 지표 네임스페이스에
MyNameSpace
를 입력합니다. -
지표 이름에
ApacheNotFoundErrorCount
를 입력합니다. 지표 값이 1인지 확인합니다. 이는 모든 404 오류 이벤트에 대해 개수가 1씩 증가하도록 지정합니다.
기본값에 0을 입력하고 다음을 선택합니다.
지표 필터 생성을 선택합니다.
를 사용하여 메트릭 필터를 만들려면 AWS CLI
명령 프롬프트에서 다음 명령을 실행합니다.
aws logs put-metric-filter \ --log-group-name MyApp/access.log \ --filter-name HTTP404Errors \ --filter-pattern '[ip, id, user, timestamp, request, status_code=404, size]' \ --metric-transformations \ metricName=ApacheNotFoundErrorCount,metricNamespace=MyNamespace,metricValue=1
이 예제에서는 왼쪽/오른쪽 대괄호, 큰따옴표, 문자열 404 같은 리터럴 문자가 사용되었습니다. 패턴은 모니터링하려는 로그 이벤트의 전체 로그 이벤트 메시지와 일치해야 합니다.
describe-metric-filters 명령을 사용하여 지표 필터가 생성되었는지 확인할 수 있습니다. 다음과 유사한 출력 화면이 표시되어야 합니다.
aws logs describe-metric-filters --log-group-name MyApp/access.log
{ "metricFilters": [ { "filterName": "HTTP404Errors", "metricTransformations": [ { "metricValue": "1", "metricNamespace": "MyNamespace", "metricName": "ApacheNotFoundErrorCount" } ], "creationTime": 1399277571078, "filterPattern": "[ip, id, user, timestamp, request, status_code=404, size]" } ] }
수동으로 몇 가지 이벤트를 게재할 수 있습니다.
aws logs put-log-events \ --log-group-name MyApp/access.log --log-stream-name hostname \ --log-events \ timestamp=1394793518000,message="127.0.0.1 - bob [10/Oct/2000:13:55:36 -0700] \"GET /apache_pb.gif HTTP/1.0\" 404 2326" \ timestamp=1394793528000,message="127.0.0.1 - bob [10/Oct/2000:13:55:36 -0700] \"GET /apache_pb2.gif HTTP/1.0\" 200 2326"
이러한 샘플 로그 이벤트를 업로드한 직후 CloudWatch 콘솔에서 이름이 인 메트릭을 검색할 수 ApacheNotFoundErrorCount 있습니다.