본문 바로가기

Cloud-computing/AWS

[AWS]Amazon SNS을 사용하여 CloudWatch Log Alerting

사전 작업: 2022.08.23 - [AWS] - [AWS]통합 CloudWatch 에이전트를 사용하여 CloudWatch Logs 시작하기

로그 그룹 지표 필터 생성

  • 로그 그룹에서 작업지표 필터 생성을 선택합니다.

패턴 정의

필터 및 패턴 구문 참고 https://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html

참고: 필터 패턴의 모든 항목들은 대소문자를 구분합니다.

지표 할당

  • 지표 값: 일치하는 패턴 로그에 대하여 개수가 1씩 증가

Review and create

AWS CLI 예시

aws logs put-metric-filter \\
  --log-group-name MyApp/message.log \\
  --filter-name MyAppErrorCount \\
  --filter-pattern 'Error' \\
  --metric-transformations \\
      metricName=ErrorCount,metricNamespace=MyNamespace,metricValue=1,defaultValue=0

지표에서 데이터 확인

경보 생성

지표 및 조건 지정

작업 구성

알림 - Email

  • 기존 SNS이 없다면 새 주제 생성

확인

설정한 경보를 발생 시킨다.

Slack 알림 추가 구성

Slack 알림 구성 참고 2022.09.25 - [AWS] - [AWS]Amazon SNS - Lambda - Slack 알림 설정 방법 with KMS

Lambda 함수 생성

함수 생성

  • 블루프린트 사용: cloudwatch-alarm-to-slack-python

구성

  • 실행 역할 설정
  • SNS 트리거 설정 (위 경보에서 생성한 SNS)

환경 변수 작성

구성 변경

  • 제한 시간 3초 → 10초 (3초 안에 끝나지 않는 경우 발생)

확인 - 경보 발생

  • 실제 로그를 발생시켜 설정한 알람이 발생하는지 확인한다.

참고 문서

[1] Amazon SNS 설정 https://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html
[2] CloudWatch Logs Insights 쿼리 구문 https://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html
[3] Amazon SNS 메시지 Slack에 게시 https://aws.amazon.com/ko/premiumsupport/knowledge-center/sns-lambda-webhooks-chime-slack-teams/
[4] AWS KMS https://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/monitoring-cloudwatch.html