AWS 초보자는 CloudWatch Logs Insights를 사용해 봤습니다.
상세히 분석·조사하고 싶은 장면이 있어 클라우드워치 로그 인사이트를 사용했다.
실제 조사에 사용된 조회 예시 등을 포함하여 비망록으로 종합할 수도 있다.
앞으로 클라우드워치 로그 인사이트를 이용하는 분들에게 조금이나마 도움이 됐으면 좋겠습니다.
CloudWatch Logs Insight란 무엇입니까?
CloudWatch Logs의 로그 데이터에 대한 고유한 구문 사용
조회처럼 데이터를 검색하고 분석할 수 있는 기능.
계량요금제입니다. 스캔한 데이터에 따라 요금을 받습니다.
GB당 0.0076달러의 스캔 데이터
사용법
차리다
AWS 관리 콘솔 > CloudWatch 를 열고 사이드바에서 "Insite"를 엽니다.
기본 작업
1. 검색할 로그 그룹 선택
로그 그룹 선택에서 검색할 로그 그룹을 선택합니다.
여러 로그 그룹을 동시에 선택할 수도 있습니다.
2. 객체를 읽어들이는 동안 설정(모두)
객체를 찾을 기간을 지정합니다.
(1시간 이내, 특정 시간 등)
3. 데이터 추출
텍스트 영역에 질의를 입력하고 질의 실행 을 누르면 질의 결과가 표시됩니다.
자세한 질의의 쓰기 방법과 의미는 질의 구문 섹션에서 설명합니다.
기본적으로 다음 조회를 입력하였습니다
어쨌든 어떤 느낌으로 뽑을 수 있는지 보고 싶으면 그렇게 실행하면 뽑을 수 있어요.fields @timestamp, @message
| sort @timestamp desc
| limit 20
4. 원하는 대로 결과 내보내기(임의)
결과 내보내기에서 다음 형식의 추출 결과를 내보낼 수 있습니다.
차리다
AWS 관리 콘솔 > CloudWatch 를 열고 사이드바에서 "Insite"를 엽니다.
기본 작업
1. 검색할 로그 그룹 선택
로그 그룹 선택에서 검색할 로그 그룹을 선택합니다.
여러 로그 그룹을 동시에 선택할 수도 있습니다.
2. 객체를 읽어들이는 동안 설정(모두)
객체를 찾을 기간을 지정합니다.
(1시간 이내, 특정 시간 등)
3. 데이터 추출
텍스트 영역에 질의를 입력하고 질의 실행 을 누르면 질의 결과가 표시됩니다.
자세한 질의의 쓰기 방법과 의미는 질의 구문 섹션에서 설명합니다.
기본적으로 다음 조회를 입력하였습니다
어쨌든 어떤 느낌으로 뽑을 수 있는지 보고 싶으면 그렇게 실행하면 뽑을 수 있어요.
fields @timestamp, @message
| sort @timestamp desc
| limit 20
4. 원하는 대로 결과 내보내기(임의)결과 내보내기에서 다음 형식의 추출 결과를 내보낼 수 있습니다.
질의 구문 정보
파이프(|)를 연결하여 사용할 수 있는 자체 질의 명령이 있습니다.
다음은 기본적인 명령과 개인이 사용하는 명령을 설명한다.
fields
가져올 필드의 명령을 지정합니다.
SQL로 말하자면
select column1, column2
의 인상이다.fields @timestamp, @message
기본적으로 다음 필드를 지정할 수 있습니다.@log
@logstream
@timestamp
@message
JSON 형식의 로그라면 JSON의 키를 필드로 직접 지정할 수 있습니다.총 객체의 로그에 사용할 수 있는 필드를 알고 싶을 때
로그 그룹을 지정하고 화면 오른쪽에 있는 측면 메뉴 "필드"를 엽니다
사용 가능한 필드를 나열합니다.
filter
추출 기준을 지정하는 명령입니다.
like를 사용하여 부분 문자열이 일치하는 것을 찾습니다.
SQL로 말하자면
where column1 like '%error%'
의 인상이다.filter @message like /error/
in을 사용하여 SQL과 마찬가지로 목록에서 비교할 수 있습니다.filter status in[400, 500]
sort
정렬 순서를 지정하는 명령입니다.
SQL로 말하자면
order by
의 인상이다.sort @timestamp asc
asc/desc를 지정할 수 있습니다.display
표시할 필드를 지정하는 명령입니다.
필드와 비슷하지만 디스플레이는 지정한 결과에 표시된 필드만 사용합니다.
limit
가져올 기록 수를 지정하는 명령입니다.
SQL로 말하자면
limit
의 인상이다.limit 20
stats
통계에 사용되는 명령입니다.avg(,sum(,count(),min(,max() 등을 사용할 수 있습니다.
여기에 자기가 사용했던 것들을 소개해 주셨어요.
기타 통계 함수에 관하여 공식 문서에 상세한 해설이 있다.
명령하다
컨텐트
count()
로그 이벤트의 수를 계산합니다.
earliest(fieldName: LogField)
검색을 실행한 결과의 가장 빠른 시간 스탬프에서fieldName 값을 되돌려줍니다.
latest(fieldName: LogField)
검색을 실행한 결과 가장 느린 시간 스탬프에서fieldName 값을 되돌려줍니다.
parse
로그에서 glob 또는 정규 표현식 사용하기
임시 필드로 데이터를 추출할 수 있습니다.
예를 들어 다음과 같이 요청 ID를 괄호로 묶고 로그 내용이 뒤에 있는 로그에
요청 ID와 로그 내용을 분리하여 처리하고자 하는 경우
로그 예
(request-id-1) start.
(request-id-1) success.
(request-id-2) start.
PARSE @message "(*) *" as requestID, message
따라서 다음과 같은 데이터를 추출할 수 있다.requestID
message
request-id-1
start.
request-id-1
success.
request-id-2
start.
사용 예
개인 조사에 사용된 조회를 예로 들어 소개하다.
타임 스탬프 순서에 따라 문자열 "error" 를 포함하는 로그 20개를 가져옵니다
fields @timestamp, @message
| filter @message like /error/
| sort @timestamp
| limit 20
각 status의 개수를 통계하다
[status] 키에 응답을 출력하는 상태에서 JSON 형식으로 로그를 출력합니다.
status 필드의 값에 따라 건수를 통계하다.
JSON 형식 로그의 예
{
"requestId": "request-id-1",
"ip": "XXX.XXX.XX.XX",
"requestTime": "08/Apr/2020:04:00:59 +0000",
"httpMethod": "GET",
"resourcePath": "/api/hoge/",
"status": "200"
}
fields @timestamp, @message
| stats count(*) by status
각 요청 ID의 총 처리에 소요된 시간
다음 사전 요구 사항의 로그에서 각 요청 ID에 대해 처리 시간을 계산합니다.
(request-id-1) start.
(request-id-1) success.
(request-id-2) start.
fields @timestamp, @message
| PARSE @message "(*) *" as requestID, message
| filter requestID in ["request-id-1", "request-id-2", "request-id-3"]
| stats earliest(@timestamp) as startTime, latest(@timestamp) as endTime by requestID
| display requestID, abs(endTime - startTime)
하는 일은 아래와 같다.1. parse에서
@message
에서 요청 ID 추출2. 모든 요청 ID에 대해 가장 먼저 기록된 이벤트의 시간 스탬프(=startTime), 가장 느린 이벤트의 시간 스탬프(=endTime)를 종합한다.
3. 요청 ID 및 처리 시간 표시
총결산
간단하게 사용하기 시작한 편리한 기능이라고 생각합니다.
대시보드에 질의 결과를 추가하거나 저장할 수 있습니다.
나는 앞으로의 조사와 운용에 활용하고 싶다.
끝까지 읽어주셔서 감사합니다!
Reference
이 문제에 관하여(AWS 초보자는 CloudWatch Logs Insights를 사용해 봤습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/suuu/items/8387df88f134348f22c7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(AWS 초보자는 CloudWatch Logs Insights를 사용해 봤습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/suuu/items/8387df88f134348f22c7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)