brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Jun 03. 2020

388. CloudWatch,SNS,Slack알람받기

프로세스만 확인하자

CloudWatch + SNS  + 람다 이용해   이벤트시  Slack 받는법


생성 하기

<1>  구성

<2>  Slack 가입

<3>  Slack  에서 WebHooks  URL 확인하기

<4>  SNS

<5> Lambda 함수 생성

<6> lambda 테스트

<7>  SNS >  Topic >   Create subscription >  AWS Lambda 로 설정

<8> cloudwatch 경보 생성

<9> lambda 테스트하여  Slack 수신 확인

<10> 참고 사이트



<1> 구성과 동작



AWS 서비스 이벤트 ----  CloudWatch Event ----  SNS ----- lambda ------Slack 수신



1

동작 ?

1) cloudwatch 알람에 설정한 값이 들어오면  SNS로 보내는 설정을 한다.  SNS보낸다.

2) Lambda는 SNS를 이벤트로 받아 코드 동작을 한다.  Slack으로 보낸다.

   // Lambda에서 테스트로 이벤트를 만들어 Slack으로 가는지 미리 확인한다.

3) Slack에서 수신한다.


2

작업순서?

1) Slack  가입, Webhook URL확인

2) SNS설정

3) 람다 설정 , lambda-role필요(s3, logs 권한) , #general , webhook URL 필요

4) 테스트 이벤트로 Slack수신 확인 테스트

5) 서버 생성

6) Cloudwatch 알람 설정, 이벤트 설정 , SNS보내기 설정

7) 서버 부하주기



<2> Slack 가입


https://slack.com/intl/en-kr/

taeho0281@hanmail.net



<3>  Slack  에서 WebHooks  URL 확인하기


1

Saved Items > More 클릭 > Apps  >   Search 란에

Incoming WebHooks

add  > 슬랙에 추가   >   post to channel   > 선택 >  #general  > 수신 WebHooks 통합 추가 >  저장


2

Webhook URL 제공됨.

url 복사.

아래  SAVE Settings




<4>  SNS


1

 >  주제생성 > 표준

seo-slack2

seo-cloudwatch-to-slack1     //메일 수신시 표시 이름이다.  정하자~

주제 생성


2

구독 생성 > 프로토콜 : email

엔드포인트 :  taeho0281@hanmail.net  > 구독 생성


3

이메일가서 Confirm  확인




<5> Lambda


1

Lambda  > 함수 생성 > 블루프린트 사용 > cloudwatch-alarm-to-slack-python 선택

설정 >

함수이름

seo-cloudwatch-to-slack-lambda1

새 역할 사용  

또는

기존 역할 사용 :

lambda-full-role   // s3 , logs 권한



2

SNS주제 > seo-slack2  선택 > SNS트리거 활성화(디폴트) >


3

환경변수 > slackChannel

#general             <-------- 이곳 이름과 Slack  채널이름이 같아야 한다.

Url

https://hooks.slack.com/services/T014XT1T3AQ/B01xxxxxxxxxxxxxxxxxx  >  함수 생성


4

General configuration > Edit > 3초 -> 10초로 변경

// 3초이상 걸린다.



5

함수 코드

// 코드 입력

코드 다운로드 받는곳

https://cafe.naver.com/dnspro/28503



<6> lambda 테스트


기타

# 테스트는 안해도 됨~

테스트 >  이벤트 템플릿 :

Amazon SNS Topic Notification 

이벤트 이름

seoslackevent2

생성 >  테스트

// 테스트 코드로 변경

Slack으로 메시지가 가는지 확인




<7>  SNS >  Topic >   Create subscription >  AWS Lambda 로 설정


Endpoint >  seo-cloudwath-to-slack-lambda1 선택

> Create Subscription


람다가 생성되어 SNS수신시 람다로 보낼수 있다.



<8> cloudwatch 경보 생성


1

cpu 부하줘서 테스트


2

cloudwatch  > 경보  > 지표선택 >  람다 >  함수이름별  >   함수이름 : 오류(Errors) >  지표 선택  클릭

>  통계   X 해서 변경 :   합계  > 1분   보다 크거나 같음

1 > 다음

경보 생성  > sns > 알람 보내기  >

seo-SlackAlarm1

seo-SlackAlarm11

다음 > 경보생성




<9> lambda 테스트하여  Slack 수신 확인


테스트

모니터링텝







<10> 참고 사이트


1

AWS 챗봇을 이용해  Slack으로 보내 방법이  좀 더 간단하다.


챗봇 ---------  Slack 


https://brunch.co.kr/@topasvga/1590


2

SNS메시지를 팀즈나 Slack으로 보내기


https://aws.amazon.com/ko/premiumsupport/knowledge-center/sns-lambda-webhooks-chime-slack-teams/



3

Cloudwatch  알람을 이용해  , 서버 상태 변경시  알람 받는법

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/UsingAlarmActions.html


4

CloudWatch Event Rules 이용- 전체 서버 상태  모니터링

https://aws.amazon.com/premiumsupport/knowledge-center/ec2-email-instance-state-change/?nc1=h_ls


5

서버 부하 주기

https://brunch.co.kr/@topasvga/1585


6

https://docs.aws.amazon.com/chatbot/latest/adminguide/chatbot-cli-commands.html


7

https://medium.com/@obutterbach/aws-guardduty-to-slack-6419e758aa8f




https://brunch.co.kr/@topasvga/1581


감사합니다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari