티스토리 뷰

서버/AWS 이야기

ELB 엑세스로그 포맷

크롱_k 2019. 2. 11. 11:02

  1. ELB 액세스 로그 포맷 내용 확인
    1. Classic Load Balancer
      1. bucket[/prefix]/AWSLogs/aws-account-id/elasticloadbalancing/region/yyyy/mm/dd/aws-account-id_elasticloadbalancing_region_load-balancer-name_end-time_ip-address_random-string.log

 

  1. Application Load Balancer

Account 

efa1f3ba990fe1281b7ebc231bc9368e4895262321befde07519beed93692a38

Bucket Name

msk-elb-log

Time

[29/Jan/2019:06:32:12 +0000]

접근 IP

211.34.57.51

ARN ( 로그인계정)

arn:aws:iam::582282256496:user/INFRATEAM

 

3DB4FB5E0C64F4B7

 요청

REST.GET.BUCKET - "GET /msk-elb-log?list-type=2&max-keys=300&fetch-owner=true&prefix=&delimiter=%2F

 type

HTTP/1.1"

elb_status_code

200 - 265 - 38 37

target_status_code

"-"

환경 정보

"S3Console/0.4, aws-internal/3 aws-sdk-java/1.11.481 Linux/4.9.137-0.1.ac.218.74.329.metal1.x86_64 OpenJDK_64-Bit_Server_VM/25.192-b12 java/1.8.0_192" -

 

EX1)

efa1f3ba990fe1281b7ebc231bc9368e4895262321befde07519beed93692a38

msk-elb-log

[29/Jan/2019:06:32:12 +0000]

211.34.57.51

arn:aws:iam::582282256496:user/INFRATEAM

3DB4FB5E0C64F4B7

REST.GET.BUCKET - "GET /msk-elb-log?list-type=2&max-keys=300&fetch-owner=true&prefix=&delimiter=%2F

HTTP/1.1"

200 - 265 - 38 37

"-"

"S3Console/0.4, aws-internal/3 aws-sdk-java/1.11.481 Linux/4.9.137-0.1.ac.218.74.329.metal1.x86_64 OpenJDK_64-Bit_Server_VM/25.192-b12 java/1.8.0_192" -

 

 

EX2)

efa1f3ba990fe1281b7ebc231bc9368e4895262321befde07519beed93692a38

msk-elb-log

[29/Jan/2019:06:50:35 +0000]

211.34.57.51

arn:aws:iam::582282256496:user/INFRATEAM

E3799E2461A96388

REST.GET.LIFECYCLE - "GET /msk-elb-log?lifecycle= HTTP/1.1"

404 NoSuchLifecycleConfiguration

324 - 2 - "-"

"S3Console/0.4, aws-internal/3 aws-sdk-java/1.11.481 Linux/4.9.137-0.1.ac.218.74.329.metal1.x86_64 OpenJDK_64-Bit_Server_VM/25.192-b12 java/1.8.0_192" -



  1. 오류 코드

 

AccessDenied:

 HTTP 403 Access Denied

AccessDenied:

 HTTP 400 Anonymous users cannot copy objects. Please authenticate.

BadDigest:

 HTTP 400

BucketAlreadyExist:

 HTTP 409 The requested bucket name is not available. The bucket namespace is shared by all users of the system. Please select a different name and try again.

BucketNotEmpty:

 HTTP 409 The bucket you tried to delete is not empty.

NoSuchWebsiteConfiguration:

 HTTP 404 The specified bucket does not have a website configuration

InvalidAccessKeyId:

 HTTP 403 The Access Key Id you provided does not exist in our records.

InvalidArgument:

 HTTP 400

InvalidBucketName:

 HTTP 400

InvalidBucketState:

 HTTP 409 The request is not valid with the current state of the bucket.

InvalidEncryptionAlgorithm:

 HTTP 400 The Encryption request you specified is not valid. Supported value: AES256.

InvalidMultipartUploadError:

 HTTP 400

InvalidPart:

 HTTP 400

InvalidPartOrder:

 HTTP 400

InvalidPayer:

 HTTP 403 All access to this object has been disabled.

InvalidPolicyDocument:

 HTTP 400

InvalidRange:

 HTTP 416

InvalidRequest:

 HTTP 400

InvalidTargetBucket:

 HTTP 406

KeyNotFound:

 HTTP 404

MalformedACL:

 HTTP 400

MalformedPolicy:

 HTTP 400

MalformedXML:

 HTTP 400 The XML you provided was not well-formed or did not validate against our published schema.

MethodNotAllowed:

 HTTP 405 The specified method is not allowed against this resource.

NoSuchKey:

 HTTP 404 The resource you requested does not exist

NoSuchLifecycleConfiguration:

 HTTP 404

NoSuchUpload:

 HTTP 404

NotModified:

 HTTP 304

NotSuchBucketPolicy:

 HTTP 404

InvalidBucketState:

 HTTP 409 Lifecycle configuration is currently not supported on a versioned bucket.

InvalidBucketState:

 HTTP 409 Versioning is currently not supported on a bucket with lifecycle configuration. Delete lifecycle configuration before setting versioning for a bucket.

PreconditionFailed:

 HTTP 412

PurgedAccount:

 HTTP 403 The Account's status you provided is purged.

RequestTimeTooSkewed:

 HTTP 403

SignatureDoesNotMatch:

 HTTP 403

 

 

 

 

 

  1. CloudWatch 지표 확인 -- Classic Load Balancer

지표

설명

BackendConnectionErrors

로드 밸런서와 등록된 인스턴스 사이에 성공적으로 구성되지 않은 연결 수. 오류 발생 시 로드 밸런서가 연결을 재시도하기 때문에 이 수가 요청 빈도를 초과할 수도 있습니다. 또한 여기에는 상태 검사와 관련된 연결 오류도 포함됩니다.

보고 기준: 0이 아닌 값이 있을 때

통계: 가장 유용한 통계는 Sum입니다. Average, Minimum 및 Maximum 통계는 로드 밸런서 노드별로 보고될 뿐 일반적으로 유용하지는 않습니다. 하지만 Minimum과 Maximum의 차이(또는 최대와 평균 비율, 평균과 저점 비율)는 로드 밸런서 노드의 이상 여부를 판단하는 데 도움이 될 수 있습니다.

: 로드 밸런서의 인스턴스가 us-west-2a에 2개, 그리고 us-west-2b에 2개 있을 때 us-west-2a의 인스턴스 1개에 연결하려는 도중 백엔드 연결 오류가 발생하였다고 가정하겠습니다. 그러면 us-west-2a의 합산에 연결 오류가 포함되지만 us-west-2b의 합산에는 연결 오류가 포함되지 않습니다. 따라서 로드 밸런서의 합산은 us-west-2a의 합산과 일치합니다.

HealthyHostCount

로드 밸런서에 등록된 정상 상태의 인스턴스 수. 새롭게 등록된 인스턴스는 첫 번째 상태 검사를 통과해야만 정상 상태로 간주됩니다. 교차 영역 로드 밸런싱이 활성화되어 있으면 LoadBalancerName 차원의 정상 인스턴스 수가 모든 가용 영역을 통틀어 계산됩니다. 그렇지 않으면 가용 영역별로 계산됩니다.

보고 기준: 등록된 인스턴스가 있을 때

통계: 가장 유용한 통계는 Average 및 Maximum입니다. 이 두 가지 통계는 로드 밸런서 노드에서 결정됩니다. 단, 일부 로드 밸런서 노드에서 정상 상태로 판단되는 인스턴스라고 해도 다른 노드에서는 일시적으로 비정상으로 판단될 수도 있습니다.

: 로드 밸런서의 인스턴스가 us-west-2a에 2개, 그리고 us-west-2b에 2개 있을 때 us-west-2a에 비정상 인스턴스가 1개 있고, us-west-2b에는 비정상 인스턴스가 없다고 가정하겠습니다. 그러면 AvailabilityZone 차원에서는 us-west-2a에서 정상 인스턴스 1개와 비정상 인스턴스 1개를, 그리고 us-west-2b에서 정상 인스턴스 2개와 비정상 인스턴스 0개를 유지합니다.

HTTPCode_Backend_2XX, 

HTTPCode_Backend_3XX, 

HTTPCode_Backend_4XX, 

HTTPCode_Backend_5XX

[HTTP 리스너] 등록된 인스턴스에서 생성된 HTTP 응답 코드 수. 여기에 로드 밸런서에서 생성된 응답 코드 수는 포함되지 않습니다.

보고 기준: 0이 아닌 값이 있을 때

통계: 가장 유용한 통계는 Sum입니다. 단, Minimum, Maximum 및 Average는 모두 1입니다.

: 로드 밸런서의 인스턴스가 us-west-2a에 2개, 그리고 us-west-2b에 2개 있을 때 us-west-2a의 인스턴스 1개로 요청이 전송되어 그 결과 HTTP 500 응답이 반환되었다고 가정하겠습니다. 그러면 us-west-2a의 합산에는 이 오류 응답이 포함되지만 us-west-2b의 합산에는 포함되지 않습니다. 따라서 로드 밸런서의 합산은 us-west-2a의 합산과 일치합니다.

HTTPCode_ELB_4XX

[HTTP 리스너] 로드 밸런서에서 생성된 HTTP 4XX 클라이언트 오류 코드 수. 클라이언트 오류는 요청 형식이 잘못되었거나 불완전할 때 생성됩니다.

보고 기준: 0이 아닌 값이 있을 때

통계: 가장 유용한 통계는 Sum입니다. 단, Minimum, Maximum 및 Average는 모두 1입니다.

: 로드 밸런서에서 us-west-2a와 us-west-2b가 활성화되어 있을 때 클라이언트 요청에 잘못된 형식의 요청 URL이 포함되어 있다고 가정하겠습니다. 이때는 모든 가용 영역에 클라이언트 오류가 증가할 가능성이 높습니다. 그 결과, 로드 밸런서의 합산이 가용 영역의 값 합산과 일치하게 됩니다.

HTTPCode_ELB_5XX

[HTTP 리스너] 로드 밸런서에서 생성된 HTTP 5XX 서버 오류 코드 수. 여기에 등록된 인스턴스에서 생성된 응답 코드 수는 포함되지 않습니다. 이 지표는 로드 밸런서에 정상 인스턴스가 등록되어 있지 않거나, 혹은 요청 빈도가 인스턴스 용량을 초과하거나(스필오버) 또는 로드 밸런서 용량을 초과하는 경우에 보고됩니다.

보고 기준: 0이 아닌 값이 있을 때

통계: 가장 유용한 통계는 Sum입니다. 단, Minimum, Maximum 및 Average는 모두 1입니다.

: 로드 밸런서에서 us-west-2a와 us-west-2b가 활성화되어 있을 때 us-west-2a의 인스턴스에서 지연 시간이 높아지면서 요청에 대한 응답 속도가 느려진다고 가정하겠습니다. 그러면 us-west-2a의 로드 밸런서 노드에서 서지 대기열이 채워지고 클라이언트는 503 오류를 수신하게 됩니다. 이때 us-west-2b가 계속해서 정상적으로 응답할 수 있다면 로드 밸런서의 합산은 us-west-2a의 합산과 일치합니다.

Latency

[HTTP 리스너] 로드 밸런서가 등록된 인스턴스에 요청을 보낸 시간부터 인스턴스가 응답 헤더를 보내기 시작할 때까지의 총 경과 시간(초)입니다.

[TCP 리스너] 로드 밸런서가 등록된 인스턴스에 대한 연결을 성공적으로 설정하는 데 걸린 총 시간(초)입니다.

보고 기준: 0이 아닌 값이 있을 때

통계: 가장 유용한 통계는 Average입니다. Maximum은 평균 시간보다 더욱 오래 걸리는 요청의 유무를 확인할 때 사용합니다. Minimum은 일반적으로 사용되지 않습니다.

: 로드 밸런서의 인스턴스가 us-west-2a에 2개, 그리고 us-west-2b에 2개 있을 때 us-west-2a의 인스턴스 1개로 전송되는 요청에서 지연 시간이 높게 발생한다고 가정하겠습니다. 이때 us-west-2a이 평균 값은 us-west-2b의 평균 값보다 높습니다.

RequestCount

지정한 주기(1분 또는 5분)에 완료된 요청 또는 연결 수

[HTTP 리스너] 등록된 인스턴스의 HTTP 오류 응답을 포함하여 수신 및 라우팅된 요청 수

[TCP 리스너] 등록된 인스턴스에 대한 연결 수

보고 기준: 0이 아닌 값이 있을 때

통계: 가장 유용한 통계는 Sum입니다. Minimum, Maximum 및 Average는 모두 1을 반환합니다.

: 로드 밸런서의 인스턴스가 us-west-2a에 2개, 그리고 us-west-2b에 2개 있을 때 100개의 요청이 로드 밸런서에 전송된다고 가정하겠습니다. 이중 60개는 us-west-2a의 인스턴스로 각각 30개씩, 그리고 40개는 us-west-2b의 인스턴스로 각각 20개씩 전송됩니다. AvailabilityZone 차원에서는 us-west-2a의 요청 합산이 60개, us-west-2b의 요청 합산이 40개가 됩니다. 하지만 LoadBalancerName 차원에서는 요청 합산이 100개입니다.

SpilloverCount

서지 대기열이 가득 찼기 때문에 거부된 요청 총 수

[HTTP 리스너] 로드 밸런서가 HTTP 503 오류 코드를 반환합니다.

[TCP 리스너] 로드 밸런서가 연결을 종료합니다.

보고 기준: 0이 아닌 값이 있을 때

통계: 가장 유용한 통계는 Sum입니다. Average, Minimum 및 Maximum 통계는 로드 밸런서 노드별로 보고될 뿐 일반적으로 유용하지는 않습니다.

: 로드 밸런서에서 us-west-2a와 us-west-2b가 활성화되어 있을 때 us-west-2a의 인스턴스에서 지연 시간이 높아지면서 요청에 대한 응답 속도가 느려진다고 가정하겠습니다. 그러면 us-west-2a의 로드 밸런서 노드에서 서지 대기열이 채워지고 스필오버가 발생하게 됩니다. 이때 us-west-2b가 계속해서 정상적으로 응답할 수 있다면 로드 밸런서의 합산은 us-west-2a의 합산과 일치합니다.

SurgeQueueLength

정상 인스턴스 대상으로 라우팅이 보류 중인 총 요청(HTTP 리스터) 또는 연결(TCP 리스너) 수. 대기열의 최대 크기는 1,024입니다. 대기열이 가득 찼을 때는 추가 요청 또는 연결이 거부됩니다. 자세한 정보는 SpilloverCount 단원을 참조하십시오.

보고 기준: 0이 아닌 값이 있을 때.

통계: 가장 유용한 통계는 대기 중인 최대 요청 수를 의미하는 Maximum입니다. Average통계는 Minimum 및 Maximum 통계와 함께 사용하여 대기 중인 요청의 범위를 확인할 때 유용합니다. 단, Sum 통계는 유용하지 않습니다.

: 로드 밸런서에서 us-west-2a와 us-west-2b가 활성화되어 있을 때 us-west-2a의 인스턴스에서 지연 시간이 높아지면서 요청에 대한 응답 속도가 느려진다고 가정하겠습니다. 그러면 us-west-2a의 로드 밸런서 노드에서 서지 대기열이 채워지고, 클라이언트는 응답 시간이 길어질 가능성이 높습니다. 이렇게 지속되면 로드 밸런서는 스필오버 가능성이 커집니다(SpilloverCount 지표 참조). 이때 us-west-2b가 계속해서 정상적으로 응답할 수 있다면 로드 밸런서의 max는 us-west-2a의 max와 일치합니다.

UnHealthyHostCount

로드 밸런서에 등록된 비정상 상태의 인스턴스 수. 상태 검사에서 구성되어 있는 비정상 임계값을 초과한 인스턴스는 비정상 상태로 간주합니다. 이후 상태 검사에서 구성되어 있는 정상 임계값을 충족하는 비정상 인스턴스는 다시 정상 상태로 간주합니다.

보고 기준: 등록된 인스턴스가 있을 때

통계: 가장 유용한 통계는 Average 및 Minimum입니다. 이 두 가지 통계는 로드 밸런서 노드에서 결정됩니다. 단, 일부 로드 밸런서 노드에서 정상 상태로 판단되는 인스턴스라고 해도 다른 노드에서는 일시적으로 비정상으로 판단될 수도 있습니다.

HealthyHostCount를 참조하십시오.

 

  1. CloudWatch 지표 확인 -- Application Load Balancer

 

지표

설명

ActiveConnectionCount

클라이언트에서 로드 밸런서로, 그리고 로드 밸런서에서 대상으로 동시에 연결되는 활성 TCP 연결 총 수.

보고 기준: 0이 아닌 값이 있을 때

통계: 가장 유용한 통계는 Sum입니다.

Dimensions

  • LoadBalancer

ClientTLSNegotiationErrorCount

로드 밸런서와 세션을 구성하지 않은 클라이언트에서 시작된 TLS 연결 수. 가능한 원인으로는 암호 또는 프로토콜 불일치가 있습니다.

보고 기준: 0이 아닌 값이 있을 때

통계: 가장 유용한 통계는 Sum입니다.

Dimensions

  • LoadBalancer
  • AvailabilityZone, LoadBalancer

ConsumedLCUs

로드 밸런서에서 사용하는 로드 밸런서 용량 단위(LCU) 수. 시간 단위로 사용한 LCU 수만큼 요금을 지불하면 됩니다. 자세한 내용은 Elastic Load Balancing 요금을 참조하십시오.

보고 기준: 항상 보고

통계: 모두

Dimensions

  • LoadBalancer

HTTP_Fixed_Response_Count

성공한 고정 응답 작업의 수입니다.

보고 기준: 0이 아닌 값이 있을 때

통계: 유일하게 의미 있는 통계는 Sum입니다.

Dimensions

  • LoadBalancer

HTTP_Redirect_Count

성공한 리디렉션 작업의 수입니다.

보고 기준: 0이 아닌 값이 있을 때

통계: 유일하게 의미 있는 통계는 Sum입니다.

Dimensions

  • LoadBalancer

HTTP_Redirect_Url_Limit_Exceeded_Count

응답 위치 헤더의 URL이 8K보다 크기 때문에 완료할 수 없는 리디렉션 작업의 수입니다.

보고 기준: 0이 아닌 값이 있을 때

통계: 유일하게 의미 있는 통계는 Sum입니다.

Dimensions

  • LoadBalancer

HTTPCode_ELB_3XX_Count

로드 밸런서에서 생성되는 HTTP 3XX 리디렉션 코드의 수입니다.

보고 기준: 0이 아닌 값이 있을 때

통계: 유일하게 의미 있는 통계는 Sum입니다.

Dimensions

  • LoadBalancer

HTTPCode_ELB_4XX_Count

로드 밸런서에서 생성된 HTTP 4XX 클라이언트 오류 코드 수. 클라이언트 오류는 요청 형식이 잘못되었거나 불완전할 때 생성됩니다. 이러한 요청은 대상에서 수신되지 않습니다. 단, 대상에서 생성된 응답 코드 수는 여기에 포함되지 않습니다.

보고 기준: 0이 아닌 값이 있을 때

통계: 가장 유용한 통계는 Sum입니다. Minimum, Maximum 및 Average는 모두 1을 반환합니다.

Dimensions

  • LoadBalancer
  • AvailabilityZone, LoadBalancer

HTTPCode_ELB_5XX_Count

로드 밸런서에서 생성된 HTTP 5XX 서버 오류 코드 수. 단, 대상에서 생성된 응답 코드 수는 여기에 포함되지 않습니다.

보고 기준: 0이 아닌 값이 있을 때

통계: 가장 유용한 통계는 Sum입니다. Minimum, Maximum 및 Average는 모두 1을 반환합니다.

Dimensions

  • LoadBalancer
  • AvailabilityZone, LoadBalancer

IPv6ProcessedBytes

로드 밸런서에서 IPv6를 통해 처리된 총 바이트 수.

보고 기준: 0이 아닌 값이 있을 때

통계: 가장 유용한 통계는 Sum입니다.

Dimensions

  • LoadBalancer

IPv6RequestCount

로드 밸런서가 수신한 IPv6 요청 수.

보고 기준: 0이 아닌 값이 있을 때

통계: 가장 유용한 통계는 Sum입니다. Minimum, Maximum 및 Average는 모두 1을 반환합니다.

Dimensions

  • LoadBalancer
  • AvailabilityZone, LoadBalancer
  • TargetGroup, LoadBalancer
  • TargetGroup, AvailabilityZone, LoadBalancer

NewConnectionCount

클라이언트에서 로드 밸런서로, 그리고 로드 밸런서에서 대상으로 새롭게 구성된 TCP 연결 총 수

보고 기준: 0이 아닌 값이 있을 때

통계: 가장 유용한 통계는 Sum입니다.

Dimensions

  • LoadBalancer

ProcessedBytes

로드 밸런서에서 IPv4 및 IPv6를 통해 처리된 총 바이트 수.

보고 기준: 0이 아닌 값이 있을 때

통계: 가장 유용한 통계는 Sum입니다.

Dimensions

  • LoadBalancer

RejectedConnectionCount

로드 밸런서가 최대 연결 수에 도달하여 거부된 연결 수

보고 기준: 0이 아닌 값이 있을 때

통계: 가장 유용한 통계는 Sum입니다.

Dimensions

  • LoadBalancer
  • AvailabilityZone, LoadBalancer

RequestCount

IPv4 및 IPv6를 통해 처리된 요청 수입니다. 여기에는 로드 밸런서의 대상이 생성한 응답이 포함된 요청만 포함됩니다.

보고 기준: 항상 보고

통계: 가장 유용한 통계는 Sum입니다.

Dimensions

  • LoadBalancer
  • AvailabilityZone, LoadBalancer
  • TargetGroup, LoadBalancer
  • TargetGroup, AvailabilityZone, LoadBalancer

RuleEvaluations

1시간 평균 요청 빈도를 기준으로 로드 밸런서에서 처리된 규칙 수

보고 기준: 0이 아닌 값이 있을 때

통계: 가장 유용한 통계는 Sum입니다.

Dimensions

  • LoadBalancer

StandardProcessedBytes

대상으로 등록된 인스턴스와 IP 주소에 대해 IPv4 및 IPv6를 통해 로드 밸런서에서 처리되는 총 바이트 수입니다.

보고 기준: 0이 아닌 값이 있을 때

통계: 가장 유용한 통계는 Sum입니다.

Dimensions

  • LoadBalancer

 

출처: <https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html


'서버 > AWS 이야기' 카테고리의 다른 글

EBS ( Elactic Block Store )에 관하여  (0) 2019.02.11
ElasticCache에 관하여  (0) 2019.02.11
VPC에 관하여  (0) 2019.02.11
CloudFront 에 관하여  (0) 2019.02.11
S3에 관하여  (0) 2019.02.11