본문 바로가기
CSP (Cloud Service Provider)/AWS

[AWS] Slack Alarm을 통한 Monitoring

by BTC_맥썸 2022. 5. 19.

안녕하세요 Mileage 맥썸입니다.

프로젝트를 진행하면서 팀원들과의 커뮤니케이션과 협업을 위한 "SLACK"을 이용하는경우가 있습니다.
워크스페이스와 채널로 구성된 SLACK은 Monitoring을 효과적으로 Alarm 형태로 받을 수 있으며 Alarm에 대해 대응을 즉각적으로 취할 수 있습니다.

이번 포스팅은 서버가 다운되었을 때 Slack에서 Alarm이 발생하는 환경을 구성하겠습니다.

<< Slack 계정 가입, 워크스페이스, 채널을 개설했다는 조건하에 시작하겠습니다.


1. Slack의 워크스페이스에서 Incoming WebHooks 앱 설치 후 Webhook을 생성합니다.

Channel: #notification-test

웹후크 URL를 Lambda 환경구성에 입력되어야 함으로 메모를 해둡니다.
완료가 되면 채널에 알람이 뜹니다.

2. 서버 2대, Load Balance, LB Target Group 생성

두개의 서버를 생성한 후 LoadBalance를 이용하여 부하분산 시켜줍니다.

생성한 Load Balance의 리스너: HTTP 80 TargetGroup으로 지정

3. CloudWatch 경보 생성


Target: LB TargetGroup

- 임계값 유형: 정적
- 경보 조건: 보다 작거나 같음 (<=임계값)
- 누락된 데이터 처리: 누락된 데이터를 불량 (임계값 위반)으로 처리

Test를 위해
추가 구성의 경보를 알릴 데이터 포인트: 1/1



경보 상태를 정의해줍니다.

- 정상일때
- 경보 상태일때




4. Lambda 구성

기존 코드를 사용하여 구성을 하지만 Webhook을 통해 알람을 받을 Slack 환경변수 수정과 트리거를 추가해줘야 합니다.
환경변수 Webhook 입력 필수!


실행 역할 Policy
- CloudWatchFullAccess
- AWSLabmdaBasicExecutionRole
- AWSLambdaVPCAccessExecutionRole




5. SNS 생성

구독의 엔드포인트는 Lambda를 가르킵니다.

6. TEST

템플릿 유형: Cloudatch-scheduled-event

Server 한 대를 임의로 종료 (접속하여 Stop)



[Slack 알람]
정상에서 경보상태로 변경되었을때 알람이 발생합니다.


경보상태에서 정상으로 상태를 변경하기 위해 서버를 Start하면 다시 한번 Slack으로 Alarm이 오는 것을 확인할 수 있습니다.

댓글