일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- JavaScript
- CloudFormation
- vgw
- api gateway
- Kubernetes
- null 병합 연산자
- Site-to-Site VPN
- Await
- AWS
- docker
- 비구조화 할당
- docker swarm
- VPC
- 단축 평가
- Endpoints
- On-Premise
- 옵셔널 체이닝
- 온프레미스
- Service
- 구조분해 할당
- DynamoDB
- optional chaining
- grafana
- Custom Resource
- Proxy Resource
- cognito
- elasticsearch
- transit gateway
- 자바스크립트
- prometheus
- Today
- Total
만자의 개발일지
[AWS] CloudWatch Logs Metric filter 생성하기 본문
이번 포스팅에서는 CloudWatch Logs에서 로그를 분석할 수 있는 기능인 Metric filter 사용방법에 대해 포스팅 하도록 하겠습니다.
Metric filter
Metric filter 기능을 사용하면 로그에 있는 특정 값을 추출할 수 있고, Dashboard에서 그 값을 가지고 시각화 하거나, Alarm기능으로도 사용할 수 있습니다.
Custom Metric 만드는 방법
먼저 AWS 콘솔에서 검색창에 CloudWatch를 검색합니다.
CloudWatch를 클릭한 후 왼쪽 메뉴에 Logs -> Log groups를 선택합니다.
자신의 Log group을 선택한 후 중앙 메뉴바에서 Metric filters를 선택해줍니다.
오른쪽에 Create metric filter 버튼을 클릭한 후 Filter pattern을 정의해 줍니다.
log data는 제 웹서버의 로그를 가지고 테스트 하겠습니다. log data는 달라도 방법은 똑같으니 달라도 괜찮습니다.
우선 Filter pattern에 "[]" 를 입력해 주고 Test pattern 버튼을 눌러주면 아래와 같이 결과가 뜨게됩니다.
보시다시피 제 log data 기준으로 공백을 기준으로 10개의 열(column)으로 나눠주는 것을 보실 수 있습니다.
** 괄호 ( [], {}, () ) 나 따음표 ( "" , '' )안에 있는 공백은 무시하고 하나로 칩니다 **
빨간색으로 줄친 부분에 $1, $10, $2, $3, $4... 라고 적혀있는것을 보실 수 있습니다. 공백을 기준으로 나눠준 열(column)의 순서입니다.
Fillter pattern의 역할은 저 열(column)의 이름을 정의해주는 역할입니다.
Filter pattern에 다음과 같이 입력해 주었습니다. [Date, Time, UserInfo, IP,,, Timestamp, RequestInfo, StatusCode,]
보시다시피 아까는 없었던 열(column)이름이 생긴 것을 보실 수 있습니다.
열이름은 앞에서부터 순서대로 ($1 -> Date, $2 -> Time, $3 - UserInfo, ... ) 적용됩니다.
빈칸을 둔 이유는 log data에 하이픈(-) 이 있어서 걸러주기 위해 빈칸을 두었습니다.
만약 private IP가 10.0.2.47인 인스턴스의 log data만 조회하고 싶다면, 다음과 같이 Filter pattern을 정의해 주시면 됩니다. [Date, Time, UserInfo, IP=10.0.2.47,,, Timestamp, RequestInfo, StatusCode,]
열에 특정 값을 주면 해당하는 값에 대한 log data를 조회합니다.
아래는 AWS 공식문서에서 제공하는 예제인 StatusCode가 404인 log data를 조회하는 방법입니다.
https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Counting404Responses.html
Filter pattern을 정의해 주셨다면 하단에 Next 버튼을 눌러 다음으로 넘어가 줍니다.
그 다음 Filter name과 Metric details를 정의해줍니다. 저는 다음과 같이 정의해 주었습니다.
Metric value의 경우 Filter pattern 에서 정의했던 열이름을 사용하시면 됩니다.
그 다음 하단에 Next 버튼을 누른후 Create metric filter 버튼을 눌러줍니다.
잘 생성된 것을 볼 수 있습니다.
이제 이 metric filter를 가지고 Dashboard나 Alarm에서 사용하실 수 있습니다.
Dashboard나 Alarm에 적용하는 방법은 조만간 포스팅하도록 하겠습니다.
'AWS' 카테고리의 다른 글
[AWS] IAM Custom Policy 생성하기 (0) | 2022.02.17 |
---|---|
[AWS] AWS Athena로 ALB Log 분석하기 (0) | 2022.02.17 |
[AWS] EC2에서 Spring Boot 프로젝트 실행 (0) | 2022.01.24 |
[AWS] EC2에 SSM 으로 접속하기 (0) | 2022.01.13 |
[AWS] CodeDeploy appspec.yml 파헤치기 (1) | 2022.01.04 |