New Relic은 기본 제공 규칙에 따라 일반적인 로그 형식을 구문 분석할 수 있으므로 고유한 구문 분석 규칙을 만들 필요가 없습니다. 다음은 로그 구문 분석 규칙, 해당 Grok 패턴 및 구문 분석되는 필드입니다.
- 기본 제공 로그 구문 분석을 활성화하려면
logtype
속성 추가에 대한 설명서를 참조하세요. - 구문 분석 규칙을 프로그래밍 방식으로 관리하려면 api.newrelic.com/graphiql에서 GraphQL 형식 API인 NerdGraph 를 사용하십시오. 자세한 내용은 구문 분석 규칙을 생성, 쿼리 및 삭제하는 NerdGraph 자습서 를 참조하세요.
Source: logtype = 'apache'
Grok:
%{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] "(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})" %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{QS:referrer} %{QS:agent}
Results:
clientip
: 클라이언트의 IP 주소입니다.verb
: HTTP 동사ident
: 요청하는 클라이언트의 사용자 IDresponse
: 응답의 HTTP 상태 코드request
: URI 및 요청 중인httpversion
: 요청의 HTTP 버전rawrequest
: 데이터가 게시된 경우 원시 HTTP 요청bytes
: 보낸 바이트 수referrer
: HTTP 리퍼러agent
: 클라이언트의 사용자 에이전트
Source: logtype = 'apache_error'
Grok:
\[%{DATA:apache_error.timestamp}\] \[%{WORD:apache_error.source}:%{DATA:level}\] \[pid %{NUMBER:apache_error.pid}(:tid %{NUMBER:apache_error.tid})?\] (%{DATA:apache_error.sourcecode}\(%{NUMBER:apache_error.linenum}\): )?(?:\[client %{IPORHOST:apache_error.clientip}:%{POSINT:apache_error.port}\] ){0,1}%{GREEDYDATA:apache_error.message}
Results:
apache_error.timestamp
: 로그 문의 타임스탬프apache_error.source
: 소스 모듈level
: 로그 레벨apache_error.pid
: 아파치 PID(프로세스 식별자)apache_error.tid
: 아파치 TID(스레드 식별자)apache_error.sourcecode
: 아파치 소스코드apache_error.linenum
: 소스코드 줄 번호apache_error.clientip
: 클라이언트 IP 주소apache_error.port
: 클라이언트 IP 포트 번호apache_error.message
: 오류 메시지
Source: logtype = 'alb'
Grok:
^%{NOTSPACE:type} %{TIMESTAMP_ISO8601:time} %{NOTSPACE:elb} %{NOTSPACE:client_ip}:%{NOTSPACE:client_port} ((%{NOTSPACE:target_ip}:%{NOTSPACE:target_port})|-) %{NOTSPACE:request_processing_time} %{NOTSPACE:target_processing_time} %{NOTSPACE:response_processing_time} %{NOTSPACE:elb_status_code} %{NOTSPACE:target_status_code} %{NOTSPACE:received_bytes} %{NOTSPACE:sent_bytes} "%{DATA:request}" "%{DATA:user_agent}" %{NOTSPACE:ssl_cipher} %{NOTSPACE:ssl_protocol} %{NOTSPACE:target_group_arn} "%{DATA:trace_id}" "%{NOTSPACE:domain_name}" "%{NOTSPACE:chosen_cert_arn}" %{NOTSPACE:matched_rule_priority} %{TIMESTAMP_ISO8601:request_creation_time} "%{NOTSPACE:actions_executed}" "%{NOTSPACE:redirect_url}" "%{NOTSPACE:error_reason}" (?:"|)%{DATA:target_port_list}(?:"|) (?:"|)%{DATA:target_status_code_list}(?:"|) "%{NOTSPACE:classification}" "%{NOTSPACE:classification_reason}"
Results:
들 | 정의 |
---|---|
| 요청 또는 연결 유형입니다. 가능한 값은 다음과 같습니다.
|
| 로드 밸런서의 리소스 ID입니다. 액세스 로그 항목을 구문 분석하는 경우 리소스 ID에 슬래시( |
| 요청하는 클라이언트의 IP 주소 |
| 요청하는 클라이언트의 IP 포트 |
| 이 요청을 처리한 대상의 IP 주소입니다.
|
| 이 요청을 처리한 대상의 IP 포트입니다.
|
| 이 요청을 처리한 대상의 IP 주소 및 포트입니다.
|
| 로드 밸런서가 요청을 수신한 시간부터 대상으로 보낼 때까지 경과된 총 시간(초 단위, 밀리초 정밀도)입니다.
|
| 로드 밸런서가 대상에 요청을 보낸 시간부터 대상이 응답 헤더를 보내기 시작할 때까지 경과된 총 시간(초 단위, 밀리초 단위)입니다.
|
| 로드 밸런서가 대상에서 응답 헤더를 수신한 시간부터 클라이언트에 응답을 보내기 시작할 때까지 경과된 총 시간(초 단위, 밀리초 단위)입니다. 여기에는 로드 밸런서의 대기 시간과 로드 밸런서에서 클라이언트로의 연결 획득 시간이 모두 포함됩니다. 로드 밸런서가 대상에 요청을 보낼 수 없는 경우 이 값은 |
| 로드 밸런서의 응답 상태 코드 |
| 대상 응답의 상태 코드입니다. 이 값은 대상에 대한 연결이 설정되고 대상이 응답을 보낸 경우에만 기록됩니다. 그렇지 않으면 |
| 클라이언트(요청자)로부터 받은 요청의 크기(바이트)입니다. HTTP 요청의 경우 여기에 헤더가 포함됩니다. WebSocket의 경우 연결 시 클라이언트로부터 받은 총 바이트 수입니다. |
| 클라이언트(요청자)에게 보낸 응답의 크기(바이트)입니다. HTTP 요청의 경우 여기에 헤더가 포함됩니다. WebSocket의 경우 연결 시 클라이언트에 전송된 총 바이트 수입니다. |
| HTTP 요청 |
| 요청을 보낸 클라이언트를 식별하는 사용자 에이전트 문자열로, 큰따옴표로 묶입니다. 문자열은 하나 이상의 제품 식별자인 제품/버전으로 구성됩니다. 문자열이 8KB보다 길면 잘립니다. |
| SSL 암호. 리스너가 HTTPS 리스너가 아닌 경우 이 값은 |
| SSL 프로토콜. 리스너가 HTTPS 리스너가 아닌 경우 이 값은 |
| 대상 그룹의 Amazon 리소스 이름(ARN) |
| 큰따옴표로 묶인 |
| 큰따옴표로 묶인 TLS 핸드셰이크 동안 클라이언트에서 제공한 SNI 도메인입니다. 클라이언트가 SNI를 지원하지 않거나 도메인이 인증서와 일치하지 않고 기본 인증서가 클라이언트에 제공되는 경우 이 값은 |
| 큰따옴표로 묶인 클라이언트에 제공된 인증서의 ARN입니다.
|
| 요청과 일치하는 규칙의 우선 순위 값입니다.
|
| 로드 밸런서가 클라이언트로부터 ISO 8601 형식의 요청을 받은 시간입니다. |
| 큰따옴표로 묶인 요청을 처리할 때 수행되는 작업입니다. 이 값은 |
| 큰따옴표로 묶인 HTTP 응답의 위치 헤더에 대한 리디렉션 대상의 URL입니다. 리디렉션 작업이 수행되지 않은 경우 이 값은 |
| 큰따옴표로 묶인 오류 이유 코드입니다.
|
| 분류. |
| 분류 이유입니다. |
원천: logtype = 'cassandra'
그록
%{WORD:level}%{SPACE}\\[%{NOTSPACE:cassandra.thread}\\] %{TIMESTAMP_ISO8601:cassandra.timestamp} %{NOTSPACE:cassandra.source}:%{INT:cassandra.line.number} - %{GREEDYDATA:cassandra.message}
결과
level
: 메시지의 로그 레벨(all, trace, debug, info, warn, error, off)cassandra.thread
: 로그문을 발행하는 쓰레드의 이름cassandra.timestamp
: 로그 문의 타임스탬프cassandra.source
: 소스 파일 이름cassandra.line.number
: 메시지의 줄 번호cassandra.message
: 원시 카산드라 메시지
Source: logtype = 'cloudfront-web'
Grok:
^%{NOTSPACE:date}%{SPACE}%{NOTSPACE:time}%{SPACE}%{NOTSPACE:x_edge_location}%{SPACE}%{NOTSPACE:sc_bytes}%{SPACE}%{NOTSPACE:c_ip}%{SPACE}%{NOTSPACE:cs_method}%{SPACE}%{NOTSPACE:cs_host}%{SPACE}%{NOTSPACE:cs_uri_stem}%{SPACE}%{NOTSPACE:sc_status}%{SPACE}%{NOTSPACE:cs_referer}%{SPACE}%{NOTSPACE:cs_user_agent}%{SPACE}%{NOTSPACE:cs_uri_query}%{SPACE}%{NOTSPACE:cs_Cookie}%{SPACE}%{NOTSPACE:x_edge_result_type}%{SPACE}%{NOTSPACE:x_edge_request_id}%{SPACE}%{NOTSPACE:x_host_header}%{SPACE}%{NOTSPACE:cs_protocol}%{SPACE}%{NOTSPACE:cs_bytes}%{SPACE}%{NOTSPACE:time_taken}%{SPACE}%{NOTSPACE:x_forwarded_for}%{SPACE}%{NOTSPACE:ssl_protocol}%{SPACE}%{NOTSPACE:ssl_cipher}%{SPACE}%{NOTSPACE:x_edge_response_result_type}%{SPACE}%{NOTSPACE:cs_protocol_version}%{SPACE}%{NOTSPACE:fle_status}%{SPACE}%{NOTSPACE:fle_encrypted_fields}%{SPACE}%{NOTSPACE:c_port}%{SPACE}%{NOTSPACE:time_to_first_byte}%{SPACE}%{NOTSPACE:x_edge_detailed_result_type}%{SPACE}%{NOTSPACE:sc_content_type}%{SPACE}%{NOTSPACE:sc_content_len}%{SPACE}%{NOTSPACE:sc_range_start}%{SPACE}%{NOTSPACE:sc_range_end}
Results:
들 | 정의 |
---|---|
| 요청을 처리한 엣지 로케이션입니다. 각 에지 위치는 3자리 코드와 임의로 할당된 번호로 식별됩니다. 예: 3자리 코드는 일반적으로 엣지 로케이션 근처 공항의 국제항공운송협회(International Air Transport Association) 공항 코드에 해당합니다. (이 약어는 향후 변경될 수 있습니다.) |
| 헤더를 포함하여 CloudFront가 요청에 대한 응답으로 최종 사용자에게 제공한 총 바이트 수입니다. 예: |
| 요청한 뷰어의 IP 주소(IPv4 또는 IPv6 형식). 뷰어가 HTTP 프록시 또는 부하 분산기를 사용하여 요청을 보낸 경우 |
| HTTP 요청 방법: |
| CloudFront 배포의 도메인 이름. 예: |
| 경로 및 개체를 식별하는 URI 부분입니다. 예: |
| HTTP 상태 코드 예: |
| 요청을 시작한 도메인의 이름입니다. 일반적인 리퍼러에는 검색 엔진, 개체에 직접 연결되는 기타 웹사이트, 자체 웹사이트가 포함됩니다. |
| 요청의 User-Agent 헤더 값입니다. User-Agent 헤더는 요청을 제출한 장치 및 브라우저 유형, 해당되는 경우 어떤 검색 엔진과 같은 요청 소스를 식별합니다. |
| URI의 쿼리 문자열 부분(있는 경우). URI에 쿼리 문자열이 포함되지 않은 경우 이 필드의 값은 하이픈( |
| 이름-값 쌍 및 관련 속성을 포함한 요청의 쿠키 헤더입니다.
|
| CloudFront에서 마지막 바이트가 엣지 로케이션을 떠난 후 응답을 분류하는 방법입니다. 경우에 따라 CloudFront에서 응답을 보낼 준비가 된 시간과 CloudFront에서 응답 전송을 완료한 시간 사이에 결과 유형이 변경될 수 있습니다. |
| 요청을 고유하게 식별하는 암호화된 문자열입니다. 응답 헤더에서 이것은 |
| 뷰어가 이 요청에 대한 Host 헤더에 포함시킨 값입니다. 이것은 요청의 도메인 이름입니다.
|
| 뷰어가 요청에 지정한 프로토콜: |
| 헤더를 포함하여 뷰어가 요청에 포함시킨 데이터의 바이트 수입니다. WebSocket 연결의 경우 연결 시 클라이언트에서 서버로 보낸 총 바이트 수입니다. |
| CloudFront 엣지 서버가 최종 사용자의 요청을 수신한 시간과 CloudFront에서 측정된 엣지 서버의 출력 대기열에 응답의 마지막 바이트를 쓰는 시간 사이의 시간(1000분의 1초 단위, 예: 0.002)입니다. 서버. 뷰어의 관점에서 전체 개체를 가져오는 데 걸리는 총 시간은 네트워크 대기 시간 및 TCP 버퍼링으로 인해 이 값보다 길어집니다. |
| 뷰어가 HTTP 프록시 또는 부하 분산기를 사용하여 요청을 보낸 경우 필드 5의 이 필드에는 해당되는 경우 IPv4 및 IPv6 주소가 포함됩니다. 뷰어가 HTTP 프록시 또는 부하 분산기를 사용하지 않은 경우 |
| 필드 17의
|
| 필드 17의
|
| 최종 사용자에게 응답을 반환하기 직전에 CloudFront에서 응답을 분류한 방법입니다. 가능한 값은 다음과 같습니다.
|
| 뷰어가 요청에서 지정한 HTTP 버전입니다. 가능한 값은 다음과 같습니다.
|
| 배포에 대해 필드 수준 암호화가 구성된 경우 이 필드에는 요청 본문이 성공적으로 처리되었는지 여부를 나타내는 코드가 포함됩니다. 배포에 대해 필드 수준 암호화가 구성되지 않은 경우 값은 하이픈( |
| CloudFront에서 암호화하여 오리진으로 전달한 필드의 수입니다. CloudFront는 데이터를 암호화할 때 처리된 요청을 오리진으로 스트리밍하므로 { 배포에 대해 필드 수준 암호화가 구성되지 않은 경우 |
| 뷰어의 요청 포트 번호입니다. |
| 서버에서 측정된 요청 수신과 응답의 첫 번째 바이트 쓰기 사이의 시간(초)입니다. |
|
|
| 응답의 HTTP Content-Type 헤더 값입니다. |
| 응답의 HTTP Content-Length 헤더 값입니다. |
| 응답에 HTTP Content-Range 헤더가 포함된 경우 이 필드에는 범위 시작 값이 포함됩니다. |
| 응답에 HTTP Content-Range 헤더가 포함된 경우 이 필드에는 범위 종료 값이 포함됩니다. |
Source: logtype = 'cloudfront-rtl'
Grok:
^%{NOTSPACE:timestamp}.\d{3}%{SPACE}%{NOTSPACE:c_ip}%{SPACE}%{NOTSPACE:time_to_first_byte}%{SPACE}%{NOTSPACE:sc_status}%{SPACE}%{NOTSPACE:sc_bytes}%{SPACE}%{NOTSPACE:cs_method}%{SPACE}%{NOTSPACE:cs_protocol}%{SPACE}%{NOTSPACE:cs_host}%{SPACE}%{NOTSPACE:cs_uri_stem}%{SPACE}%{NOTSPACE:cs_bytes}%{SPACE}%{NOTSPACE:x_edge_location}%{SPACE}%{NOTSPACE:x_edge_request_id}%{SPACE}%{NOTSPACE:x_host_header}%{SPACE}%{NOTSPACE:time_taken}%{SPACE}%{NOTSPACE:cs_protocol_version}%{SPACE}%{NOTSPACE:cs_ip_version}%{SPACE}%{NOTSPACE:cs_user_agent}%{SPACE}%{NOTSPACE:cs_referer}%{SPACE}%{NOTSPACE:cs_cookie}%{SPACE}%{NOTSPACE:cs_uri_query}%{SPACE}%{NOTSPACE:x_edge_response_result_type}%{SPACE}%{NOTSPACE:x_forwarded_for}%{SPACE}%{NOTSPACE:ssl_protocol}%{SPACE}%{NOTSPACE:ssl_cipher}%{SPACE}%{NOTSPACE:x_edge_result_type}%{SPACE}%{NOTSPACE:fle_encrypted_fields}%{SPACE}%{NOTSPACE:fle_status}%{SPACE}%{NOTSPACE:sc_content_type}%{SPACE}%{NOTSPACE:sc_content_len}%{SPACE}%{NOTSPACE:sc_range_start}%{SPACE}%{NOTSPACE:sc_range_end}%{SPACE}%{NOTSPACE:c_port}%{SPACE}%{NOTSPACE:x_edge_detailed_result_type}%{SPACE}%{NOTSPACE:c_country}%{SPACE}%{NOTSPACE:cs_accept_encoding}%{SPACE}%{NOTSPACE:cs_accept}%{SPACE}%{NOTSPACE:cache_behavior_path_pattern}%{SPACE}%{NOTSPACE:cs_headers}%{SPACE}%{NOTSPACE:cs_header_names}%{SPACE}%{NOTSPACE:cs_headers_count}$
Results:
들 | 정의 |
---|---|
| 에지 서버가 요청에 대한 응답을 완료한 날짜 및 시간입니다. |
| 요청한 뷰어의 IP 주소입니다(예: |
| 서버에서 측정된 요청 수신과 응답의 첫 번째 바이트 쓰기 사이의 시간(초)입니다. |
| HTTP 상태 코드 예: |
| 헤더를 포함하여 요청에 대한 응답으로 서버가 뷰어에게 보낸 총 바이트 수입니다. WebSocket 연결의 경우 연결을 통해 서버에서 클라이언트로 보낸 총 바이트 수입니다. |
| 뷰어에서 수신한 HTTP 요청 메서드입니다. |
| 뷰어 요청의 프로토콜(http, https, ws 또는 wss)입니다. |
| 뷰어가 요청의 Host 헤더에 포함시킨 값입니다. 객체 URL에서 CloudFront 도메인 이름(예: d111111abcdef8.cloudfront.net)을 사용하는 경우, 이 필드에는 해당 도메인 이름이 포함됩니다. 개체 URL(예: www.example.com )에서 대체 도메인 이름(CNAME)을 사용하는 경우 이 필드는 대체 도메인 이름을 포함합니다. |
| 쿼리 문자열(있는 경우)을 포함하지만 도메인 이름이 없는 전체 요청 URL입니다. 예: |
| 헤더를 포함하여 뷰어가 요청에 포함시킨 데이터의 총 바이트 수입니다. WebSocket 연결의 경우 연결 시 클라이언트에서 서버로 보낸 총 바이트 수입니다. |
| 요청을 처리한 엣지 로케이션입니다. 각 에지 위치는 3자리 코드와 임의로 할당된 번호(예: DFW3)로 식별됩니다. 3자리 코드는 일반적으로 엣지 로케이션의 지리적 위치에 가까운 공항에 대한 IATA(International Air Transport Association) 공항 코드에 해당합니다. (이 약어는 향후 변경될 수 있습니다.) |
| CloudFront에서 마지막 바이트가 엣지 로케이션을 떠난 후 응답을 분류하는 방법입니다. 경우에 따라 CloudFront에서 응답을 보낼 준비가 된 시간과 CloudFront에서 응답 전송을 완료한 시간 사이에 결과 유형이 변경될 수 있습니다. |
| 요청을 고유하게 식별하는 불투명 문자열입니다. CloudFront는 또한 x-amz-cf-id 응답 헤더에서 이 문자열을 보냅니다. |
| CloudFront 배포의 도메인 이름(예: |
| 서버에서 측정한 대로 서버가 뷰어의 요청을 수신한 시점부터 서버가 응답의 마지막 바이트를 출력 대기열에 쓸 때까지의 시간(1000분의 1초 단위, 예: 0.082)입니다. 뷰어의 관점에서 전체 응답을 얻는 데 걸리는 총 시간은 네트워크 대기 시간과 TCP 버퍼링으로 인해 이 값보다 더 깁니다. |
| 뷰어가 요청에서 지정한 HTTP 버전입니다. 가능한 값은 |
| 요청의 IP 버전(IPv4 또는 IPv6)입니다. |
| 요청의 User-Agent 헤더 값입니다. User-Agent 헤더는 요청을 제출한 장치 및 브라우저 유형 또는 요청이 검색 엔진에서 온 경우 검색 엔진과 같은 요청 소스를 식별합니다. |
| 요청의 Referer 헤더 값입니다. 이것은 요청을 시작한 도메인의 이름입니다. 일반적인 리퍼러에는 검색 엔진, 개체에 직접 연결되는 기타 웹사이트, 자신의 웹사이트가 포함됩니다. |
| 이름-값 쌍 및 관련 속성을 포함한 요청의 쿠키 헤더입니다. |
| 요청 URL의 쿼리 문자열 부분(있는 경우). |
| 뷰어에게 응답을 반환하기 직전에 서버가 응답을 분류한 방법입니다. x-edge-result-type 필드도 참조하십시오. 가능한 값은 다음과 같습니다.
|
| 뷰어가 HTTP 프록시 또는 로드 밸런서를 사용하여 요청을 보낸 경우 c-ip 필드의 값은 프록시 또는 로드 밸런서의 IP 주소입니다. 이 경우 이 필드는 요청을 시작한 뷰어의 IP 주소입니다. 이 필드에는 IPv4 주소(예: |
| 요청이 HTTPS를 사용하는 경우 이 필드에는 뷰어와 서버가 요청 및 응답을 전송하기 위해 협상한 SSL/TLS 프로토콜이 포함됩니다. |
| 요청이 HTTPS를 사용하는 경우 이 필드에는 뷰어와 서버가 요청 및 응답을 암호화하기 위해 협상한 SSL/TLS 암호가 포함됩니다. |
| 마지막 바이트가 서버를 떠난 후 서버가 응답을 분류한 방법입니다. 경우에 따라 서버가 응답을 보낼 준비가 된 시간과 응답 전송을 완료한 시간 사이에 결과 유형이 변경될 수 있습니다. 가능한 값은 다음과 같습니다.
|
| 서버가 암호화하여 오리진에 전달한 필드 수준 암호화 필드의 수입니다. CloudFront 서버는 데이터를 암호화할 때 처리된 요청을 오리진으로 스트리밍하므로 |
| 배포에 대해 필드 수준 암호화가 구성된 경우 이 필드에는 요청 본문이 성공적으로 처리되었는지 여부를 나타내는 코드가 포함됩니다. 서버가 요청 본문을 성공적으로 처리하고 지정된 필드의 값을 암호화하고 요청을 원본으로 전달하면 이 필드의 값은 처리됨입니다. 이 경우 이 필드에 가능한 값은 다음과 같습니다. *
|
| 응답의 HTTP Content-Type 헤더 값입니다. |
| 응답의 HTTP Content-Length 헤더 값입니다. |
| 응답에 HTTP Content-Range 헤더가 포함된 경우 이 필드에는 범위 시작 값이 포함됩니다. |
| 응답에 HTTP Content-Range 헤더가 포함된 경우 이 필드에는 범위 종료 값이 포함됩니다. |
| 뷰어의 요청 포트 번호입니다. |
|
|
| 시청자의 IP 주소에 따라 결정되는 시청자의 지리적 위치를 나타내는 국가 코드입니다. |
| 뷰어 요청의 |
| 뷰어 요청의 |
| 뷰어 요청과 일치하는 캐시 동작을 식별하는 경로 패턴입니다. |
| 뷰어 요청의 HTTP 헤더(이름 및 값)입니다. |
| 뷰어 요청의 HTTP 헤더 이름(값 아님)입니다. |
| 뷰어 요청의 HTTP 헤더 수입니다. |
Source: logtype = 'elb'
Grok:
^%{TIMESTAMP_ISO8601:time} %{NOTSPACE:elb} %{NOTSPACE:client_ip}:%{NOTSPACE:client_port} ((%{NOTSPACE:backend_ip}:%{NOTSPACE:backend_port})|-) %{NOTSPACE:request_processing_time} %{NOTSPACE:backend_processing_time} %{NOTSPACE:response_processing_time} %{NOTSPACE:elb_status_code} %{NOTSPACE:backend_status_code} %{NOTSPACE:received_bytes} %{NOTSPACE:sent_bytes} "%{DATA:request}" "%{DATA:user_agent}" %{NOTSPACE:ssl_cipher} %{NOTSPACE:ssl_protocol}
Results:
들 | 정의 |
---|---|
| 요청을 처리한 엣지 로케이션입니다. 각 에지 위치는 3자리 코드와 임의로 할당된 번호로 식별됩니다. 예: |
| 헤더를 포함하여 CloudFront가 요청에 대한 응답으로 최종 사용자에게 제공한 총 바이트 수입니다. 예: |
| 요청한 뷰어의 IP 주소입니다. 뷰어가 HTTP 프록시 또는 부하 분산기를 사용하여 요청을 보낸 경우 |
| HTTP 요청 방법: |
| CloudFront 배포의 도메인 이름. 예: |
| 경로 및 개체를 식별하는 URI 부분입니다. 예: |
| HTTP 상태 코드(예: CloudFront에서 응답을 보내기 시작한 후 최종 사용자가 연결을 닫으면 로그에 해당 HTTP 상태 코드가 포함됩니다. |
| 요청을 시작한 도메인의 이름입니다. 일반적인 리퍼러에는 검색 엔진, 개체에 직접 연결되는 기타 웹사이트, 자신의 웹사이트가 포함됩니다. |
| 요청의 User-Agent 헤더 값입니다. User-Agent 헤더는 요청을 제출한 장치 및 브라우저 유형 및 해당되는 경우 검색 엔진과 같은 요청 소스를 식별합니다. |
| URI의 쿼리 문자열 부분(있는 경우). URI에 쿼리 문자열이 포함되지 않은 경우 이 필드의 값은 하이픈( |
| 이름-값 쌍 및 관련 속성을 포함한 요청의 쿠키 헤더입니다.
|
| CloudFront에서 마지막 바이트가 엣지 로케이션을 떠난 후 응답을 분류하는 방법입니다. 경우에 따라 CloudFront에서 응답을 보낼 준비가 된 시간과 CloudFront에서 응답 전송을 완료한 시간 사이에 결과 유형이 변경될 수 있습니다. |
| 요청을 고유하게 식별하는 암호화된 문자열입니다. 응답 헤더에서 이것은 |
| 뷰어가 이 요청에 대한 Host 헤더에 포함시킨 값입니다. 이것은 요청의 도메인 이름입니다.
|
| 뷰어가 요청에 지정한 프로토콜: |
| 헤더를 포함하여 뷰어가 요청에 포함시킨 데이터의 바이트 수입니다. WebSocket 연결의 경우 연결 시 클라이언트에서 서버로 보낸 총 바이트 수입니다. |
| CloudFront 엣지 서버가 최종 사용자의 요청을 수신한 시간과 CloudFront에서 측정된 엣지 서버의 출력 대기열에 응답의 마지막 바이트를 쓰는 시간 사이의 시간(1000분의 1초 단위, 예: 0.002)입니다. 서버. 뷰어의 관점에서 전체 개체를 가져오는 데 걸리는 총 시간은 네트워크 대기 시간 및 TCP 버퍼링으로 인해 이 값보다 길어집니다. |
| 뷰어가 HTTP 프록시 또는 부하 분산기를 사용하여 요청을 보낸 경우 필드 5의 뷰어가 HTTP 프록시 또는 부하 분산기를 사용하지 않은 경우 |
| 필드 17의
|
| 필드 17의
|
| 최종 사용자에게 응답을 반환하기 직전에 CloudFront에서 응답을 분류한 방법입니다. 가능한 값은 다음과 같습니다.
|
| 뷰어가 요청에서 지정한 HTTP 버전입니다. 가능한 값은 다음과 같습니다.
|
| 배포에 대해 필드 수준 암호화가 구성된 경우 이 필드에는 요청 본문이 성공적으로 처리되었는지 여부를 나타내는 코드가 포함됩니다. 배포에 대해 필드 수준 암호화가 구성되지 않은 경우 이 필드의 값은 하이픈( CloudFront가 요청 본문을 성공적으로 처리하고 지정된 필드의 값을 암호화하고 요청을 오리진으로 전달할 때 이 필드의 값은 요청이 필드 수준 암호화 제한을 초과하는 경우 |
| CloudFront에서 암호화하여 오리진으로 전달한 필드의 수입니다. CloudFront는 데이터를 암호화할 때 처리된 요청을 오리진으로 스트리밍하므로 { 배포에 대해 필드 수준 암호화가 구성되지 않은 경우 |
| 뷰어의 요청 포트 번호입니다. |
| 서버에서 측정된 요청 수신과 응답의 첫 번째 바이트 쓰기 사이의 시간(초)입니다. |
|
|
| 응답의 HTTP Content-Type 헤더 값입니다. |
| 응답의 HTTP Content-Length 헤더 값입니다. |
| 응답에 HTTP Content-Range 헤더가 포함된 경우 이 필드에는 범위 시작 값이 포함됩니다. |
| 응답에 HTTP Content-Range 헤더가 포함된 경우 이 필드에는 범위 종료 값이 포함됩니다. |
Source: logtype = 'haproxy_http'
Grok:
%{HOSTPORT:client} \\[%{NOTSPACE:haproxy_timestamp}\\] %{NOTSPACE:frontend_name} %{NOTSPACE:backend_name}/%{NOTSPACE:server_name} %{NUMBER:time_queue}/%{NUMBER:time_backend_connect}/%{NUMBER:time_duration} %{NUMBER:bytes_read} %{NOTSPACE:termination_state} %{NUMBER:actconn}/%{NUMBER:feconn}/%{NUMBER:beconn}/%{NUMBER:srvconn}/%{NUMBER:retries} %{NUMBER:srv_queue}/%{NUMBER:backend_queue}
%{HOSTPORT:client} \\[%{NOTSPACE:haproxy_timestamp}\\] %{NOTSPACE:frontend_name} %{NOTSPACE:backend_name}/%{NOTSPACE:server_name} %{NUMBER:time_client_req}/%{NUMBER:time_queue}/%{NUMBER:time_backend_connect}/%{NUMBER:time_server_response}/%{NUMBER:time_duration} %{NUMBER:status_code} %{NUMBER:bytes_read} %{NOTSPACE:captured_request_cookie} %{NOTSPACE:captured_response_cookie} %{NOTSPACE:termination_state_with_cookie_status} %{NUMBER:actconn}/%{NUMBER:feconn}/%{NUMBER:beconn}/%{NUMBER:srvconn}/%{NUMBER:retries} %{NUMBER:srv_queue}/%{NUMBER:backend_queue}?( \\\"%{GREEDYDATA:full_http_request}\\\")?( %{NOTSPACE:captured_response_headers})?
Results:
client
: 이 요청의 소스 IP/포트haproxy_timestamp
: 이 요청이 수락된 타임스탬프frontend_name
: 이 요청에 사용된 프런트엔드의 이름backend_name
: 이 요청에 사용된 백엔드의 이름server_name
: 이 요청에 사용된 백엔드 그룹의 서버 이름time_client_req
: 클라이언트의 전체 요청을 기다리는 시간(ms)time_queue
: 대기열에서 대기하는 시간(ms)time_backend_connect
: 목적지 서버에 접속하는데 걸리는 시간(ms)time_server_response
: 목적지 서버가 응답을 보내는 시간(ms)time_duration
: HAProxy에서 활성화된 총 요청 시간(ms)status_code
: HTTP 응답 코드bytes_read
: 이 요청에서 읽은 총 바이트captured_request_cookie
: 요청에서 캡처한 쿠키captured_response_cookie
: 응답에서 캡처한 쿠키termination_state
: 연결 해제 시 세션 상태termination_state_with_cookie_status
: 연결 해제 시 쿠키 상태를 포함한 세션 상태actconn
: 활성 연결feconn
: 프런트엔드 연결beconn
: 백엔드 연결srvconn
: 서버 연결retries
: 재시도srv_queue
: 서버 큐 크기backend_queue
: 백엔드 대기열 크기full_http_request
: 완전한 HTTP 요청 라인captured_response_headers
: 응답에서 캡처된 헤더
Source: logtype = 'ktranslate-health'
Grok:
%{NOTSPACE:timestamp} ktranslate(/)?(%{GREEDYDATA:container_service})? \[%{NOTSPACE:severity}] %{GREEDYDATA:message}
Results:
timestamp
: 로그의 시간container_service
: ktranslate에서 컨테이너를 구별하는 데 사용되는 고유 식별자입니다. 선택적--service_name
플래그를 사용하여 Docker 런타임 중에 설정됩니다.severity
: 로그 라인의 심각도message
: 메시지 필드에는 이벤트에 대한 정보를 제공하는 자유 형식 메시지가 포함됩니다.
Source: logtype = 'linux_cron'
Grok:
%{SYSLOGTIMESTAMP:linux_cron.timestamp} %{NOTSPACE:linux_cron.hostname} %{DATA:linux_cron.process}(\[%{NUMBER:linux_cron.pid:integer}\])?: (\(%{DATA:linux_cron.user}\))?%{GREEDYDATA:linux_cron.message}
Results:
linux_cron.timestamp
: 로그의 시간linux_cron.hostname
: Linux 서버 호스트 이름linux_cron.process
: 리눅스 cron 프로세스 이름linux_cron.pid
: Linux cron PID(프로세스 식별자)linux_cron.user
: cron을 실행한 리눅스 사용자linux_cron.message
: 로그 메시지
Source: logtype = 'linux_messages'
Grok:
%{SYSLOGTIMESTAMP:linux_messages.timestamp} %{NOTSPACE:linux_messages.hostname} %{DATA:linux_messages.process}(\[%{NUMBER:linux_messages.pid:integer}\])?: %{GREEDYDATA:linux_messages.message}
Results:
linux_messages.timestamp
: 로그의 시간linux_messages.hostname
: Linux 서버 호스트 이름linux_messages.process
: 리눅스 프로세스 이름linux_messages.pid
: Linux PID(프로세스 식별자)linux_messages.message
: 로그 메시지
Source: logtype = 'iis_w3c'
Grok:
%{TIMESTAMP_ISO8601:log_timestamp} %{NOTSPACE:server_ip} %{WORD:method} %{NOTSPACE:uri} %{NOTSPACE:uri_query} %{NOTSPACE:server_port} %{NOTSPACE:username} %{NOTSPACE:client_ip} %{NOTSPACE:user_agent} %{NOTSPACE:referer} %{NOTSPACE:status} %{NOTSPACE:substatus} %{NOTSPACE:win32_status} %{NOTSPACE:time_taken}
Results:
IIS는 여러 구성 옵션 을 허용합니다. 기본값 이외의 옵션을 구성한 경우 Grok 패턴은 로그를 구문 분석하지 않습니다. 이 경우 사용자 정의 구문 분석 을 사용하는 것이 좋습니다.
Source: logtype = 'mongodb'
Grok:
%{TIMESTAMP_ISO8601:mongodb.timestamp} %{WORD:mongodb.severity} %{WORD:mongodb.component} *\[%{WORD:mongodb.context}\] %{GREEDYDATA:mongodb.message}
Results:
mongodb.timestamp
: 로그 문의 타임스탬프mongodb.severity
: 로그 문의 심각도 수준(F=치명적, E=오류, W=경고, I=정보, D1-5=디버그)mongodb.component
: 로그문을 발행하는 쓰레드의 카테고리mongodb.context
: 로그문을 발행하는 쓰레드의 이름mongodb.message
: 원시 mongodb 메시지
Source: logtype = 'monit'
Grok:
\\[%{NOTSPACE:tz} %{SYSLOGTIMESTAMP:nr_timestamp}\\] %{WORD:state}%{SPACE}: %{GREEDYDATA:message}
Results:
state
: 로그 라인의 심각도message
: 메시지
Source: logtype = 'mysql-error'
Grok:
\\[%{WORD:log_level}\\]
Results:
log_level
: 로그 라인의 심각도
Source: logtype = 'nginx'
Grok:
%{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] "(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})" %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{QS:referrer} %{QS:agent}
Results:
clientip
: 클라이언트의 IP 주소verb
: HTTP 동사ident
: 요청하는 클라이언트의 사용자 IDresponse
: 응답의 HTTP 상태 코드request
: URI 및 요청 중인httpversion
: 요청의 HTTP 버전rawrequest
: 데이터가 게시된 경우 원시 HTTP 요청bytes
: 보낸 바이트 수referrer
: HTTP 리퍼러agent
: 클라이언트의 사용자 에이전트
Source: logtype = 'nginx-error'
Grok:
^(?<timestamp>%{YEAR:year}[./-]%{MONTHNUM:month}[./-]%{MONTHDAY:day}[- ]%{TIME:time}) \[%{WORD:severity}\] %{POSINT:pid}#%{NUMBER}: \*%{NUMBER} %{GREEDYDATA:errormessage} client: %{IPORHOST:client}, server: %{NOTSPACE:server}, request: (\\)?"%{DATA:request}", (?:, upstream: \"%{URI:upstream}\")?host: (\\)?"%{NOTSPACE:host}(\\)?"(, referrer: (\\)?"%{URI:referrer}(\\)?")?
Results:
severity
: 로그 라인의 심각도pid
: 서버 프로세스 IDerrormessage
: 오류 메시지clientip
: 호출 클라이언트의 IP 주소server
: 서버 IP 주소request
: 전체 요청upstream
: 업스트림 URIhost
: 서버의 호스트 이름referrer
: HTTP 리퍼러
원천: logtype = 'postgresql'
그록:
%{DATA:postgresql.timestamp} \[%{NUMBER:postgresql.pid}\] %{WORD:level}:\s+%{GREEDYDATA:postgresql.message}
결과
postgresql.timestamp
: 로그의 타임스탬프postgresql.pid
: 서버 프로세스 IDlevel
: 메시지의 로그 레벨postgresql.message
: 로그 메시지
Source: logtype = 'rabbitmq'
Grok:
%{TIMESTAMP_ISO8601:rabbitmq.timestamp} \[%{LOGLEVEL:level}\] \<%{DATA:rabbitmq.pid}\> %{GREEDYDATA:rabbitmq.message}
Results:
rabbitmq.timestamp
: 로그의 타임스탬프level
: 메시지의 로그 수준(디버그, 정보, 경고, 오류, 위험, 없음)rabbitmq.pid
: 로그 라인의 프로세스 IDrabbitmq.message
: rabbitmq 오류 메시지
Source: logtype = 'redis'
Grok:
%{POSINT:redis.pid}:%{NOTSPACE:redis.role} (?<redistimestamp>[\d-]+ [a-zA-Z]+ [\d]+ [\d:]+.[\d]{3}) %{NOTSPACE:level} %{GREEDYDATA:redis.message}
Results:
redis.pid
: 로그 라인의 프로세스 IDredis.role
: 인스턴스 역할(X 센티넬, C RDB/AOF 쓰기 자식, S 슬레이브, M 마스터)redistimestamp
: 로그의 타임스탬프level
: 메시지의 로그 수준(. debug, - verbose, * 주의, # warning)redis.message
: redis 오류 메시지
Source: logtype = 'route-53'
Grok:
%{NUMBER:log_format_version} %{TIMESTAMP_ISO8601} %{WORD:zone_id} %{IPORHOST:query} %{WORD:query_type} %{WORD:response_code} %{WORD:protocol} %{WORD:edge_location} %{IP:resolver_ip} %{GREEDYDATA:edns_client_subnet}
Results:
log_format_version
: 로그의 버전이 지정된 형식입니다.zone_id
: 이 로그의 모든 DNS 쿼리와 연결된 호스팅 영역의 ID입니다.query
: 요청에 지정된 도메인 또는 하위 도메인입니다.query_type
: 요청에 지정된 DNS 레코드 유형 또는ANY
response_code
: Route 53이 DNS 쿼리에 대한 응답으로 반환한 DNS 응답 코드입니다.protocol
: 쿼리를 제출하는 데 사용된 프로토콜(TCP 또는 UDP)입니다.edge_location
: 쿼리에 응답한 Route 53 엣지 로케이션입니다. 각 에지 위치는 3자리 코드와 임의의 숫자로 식별됩니다. 예:DFW3
. 3자리 코드는 일반적으로 엣지 로케이션 근처 공항의 국제항공운송협회(International Air Transport Association) 공항 코드와 일치합니다. (이 약어는 향후 변경될 수 있습니다.)resolver_ip
: Route 53에 요청을 제출한 DNS 해석기의 IP 주소입니다.edns_client_subnet
: DNS 해석기에서 사용 가능한 경우 요청이 시작된 클라이언트의 부분 IP 주소입니다.
Source: logtype = 'syslog-rfc5424'
Grok:
<%{NONNEGINT:pri}>%{NONNEGINT:version} +(?:%{TIMESTAMP_ISO8601:log.timestamp}|-) +(?:%{HOSTNAME:hostname}|-) +(?:\\-|%{NOTSPACE:app.name}) +(?:\\-|%{NOTSPACE:procid}) (?:\\-|%{NOTSPACE:msgid}) +(?:\[%{DATA:structured.data}\]|-|) +%{GREEDYDATA:message}
Results:
pri
: 우선 순위는 메시지 기능과 심각도를 모두 나타냅니다.version
: Syslog 프로토콜 버전.log.timestamp
: 원본 타임스탬프.hostname
: 원래 Syslog 메시지를 보낸 시스템입니다.app.name
: 메시지를 보낸 장치 또는 응용 프로그램입니다.procid
: Syslog 시스템과 연결된 프로세스 이름 또는 프로세스 ID입니다.msgid
: 메시지 유형을 식별합니다.structured.data
: 구조화된 데이터 문자열 값입니다.sd.sd-id.sd-param-name
참고:structured.data
콘텐츠는 사전 정의된 명명 규칙sd.sd-id.sd-param-name
에 따라 별도의 속성으로도 구문 분석됩니다. 다음에 나오는 구조화된 데이터 구문 분석 예제를 참조하세요.message
: 이벤트에 대한 정보를 제공하는 자유 형식 메시지입니다.
Structured data parsing examples:
구조화된 데이터 [example one="1" two="2"]
은(는) 두 가지 다른 속성으로 구문 분석됩니다.
sd.example.one: "1"sd.example.two: "2"
동일한 구조화된 데이터 블록에 중복 매개변수 이름이 포함된 경우 속성 이름에 인덱스 기반 접미사도 추가합니다. 예를 들어 구조화된 데이터 [example number="1" number="2"]
는 다음과 같이 구문 분석됩니다.
sd.example.number.0: "1"sd.example.number.1: "2"
기업 번호가 할당된 구조화된 데이터의 경우 추가 속성도 구문 분석됩니다. 예를 들어 구조화된 데이터 [example@123 number="1"]
는 다음과 같이 구문 분석됩니다.
sd.example.enterprise.number: 123sd.example.number: "1"