본문 바로가기
AWS

[CloudWatch] AWS Chatbot 을 이용하여 Slack 에 메시지 전송하기

by yonikim 2022. 12. 14.
728x90

 

AWS 리소스 모니터링은 중요하다. 직접 콘솔에 로그인하여 보는 방법도 있지만, 잠깐 까먹었을 때 꼭 위기가 발생하기 마련이다.

CloudWatch 에서 설정해준 경보가 발생했을 경우 팀 내에서 사용하고 있는 메신저로 오류를 알려 주면, 다른 사람과 공유가 빠르게 될 수 있고 그만큼 오류 캐치도 빨라질 것이다. 

 

 

Lambda 를 이용하여 슬랙에서 제공해 주는 API 라이브러리를 이용하거나 axios 를 이용하는 등 코드에 직접 심는 방법도 있겠지만, 

 

AWS Chatbot 을 이용하면 더 간단하게 구성할 수 있었다.

 

 


 

AWS Chatbot > [새 클라이언트 구성] 버튼 클릭

 

Slack 선택 후 권한 설정 및 슬랙 계정 로그인

 

위에서 만든 클라이언트 클릭 > [새 채널 구성] 클릭

구성 이름과 채널 ID 를 작성한다.

 

Slack 채널 ID 는 상단 채널명을 클릭하면 가져올 수 있다.

 

권한을 생성해준다. 이미 만들어놓은 권한이 있다면 연결해 준다.

 

CloudWatch 경보 알림과 연결된 SNS 주제를 선택한다.

 

[테스트 메시지 전송] 를 클릭해 본다. 

 


 


 

 


 

채널에 아무런 메시지도 오지 않는다.

 

 

[편집] 버튼을 클릭하여 오류만 로깅해 본다.

 

확인해 보니 아래와 같은 에러가 남겨져 있다.

Encountered error while sending message to Slack: Slack Web API returned unsuccessful response ( ok: false, error code: channel_not_found, full response body: ChatPostMessageResponse(ok=false, warning=null, error=channel_not_found, needed=null, provided=null, deprecatedArgument=null, responseMetadata=null, channel=null, ts=null, message=null)).

 

구글링해 보니 프라이빗 채널로 만들 경우 앱 추가를 따로 해줘야 한다고 한다.

 

채널 설정 > [통합] 클릭 > [앱 추가] 클릭

 

AWS Chatbot 을 검색해서 설치해 준다.

 

 

다시 [테스트 메시지 전송] 를 클릭해 본다. 

728x90