https://velog.io/@dooo_it_ly/Infra-Grafana-Prometheus로-모니터링-시스템-구축하기
👆 앞선 포스팅에서, grafana와 prometheus를 이용해 모니터링 시스템을 구축하는 실습을 진행했습니다.
이어서, grafana의 Alerting 기능을 이용해 특정 조건에 부합할 시 Slack 알림을 전송하는 실습을 진행해보겠습니다.
슬랙의 API 사이트에 가서 Create on App 버튼을 클릭합니다.
From scratch 탭을 눌러 앱의 이름과 슬랙봇을 연동할 워크스페이스를 지정합니다.
앱을 생성하면, 아래와 같이 앱에 대한 기본 정보들을 확인할 수 있습니다.
이후, OAuth&Permission 탭에서 슬랙 봇의 scope를 설정해줍니다.
chat:write
와 files:write
를 추가해 이미지 전송을 비롯한 채팅 작성이 가능하도록 합니다.
app 설정에서 지정한 워크스페이스에 Bot을 설치해줍니다.
설치를 완료하면 다음과 같이 Bot User OAuth Token을 발급받을 수 있습니다.
Incoming Webhooks 탭에서 슬랙의 Webhook 기능을 활성화합니다.
이후 슬랙에 메시지를 전송할 채널을 선택한 후, 연결할 웹훅 URI를 생성합니다.
Home-Alerting-Contact Info 탭에서 알림 전송을 위한 contact point를 추가해줍니다.
integration을 Slack으로 설정한 후, 앞서 발급받은 Webhook URI를 입력합니다.
입력을 완료한 후, test를 눌러보면, 정상적으로 지정한 슬랙에 알림이 오는 것을 확인할 수 있습니다.
입력을 완료했다면, contact point를 save합니다.
Home-Alerting-Alert rules 탭에서 알림을 전송할 기준을 설정해줍니다.
알림을 받을 조건, 메트릭을 설정합니다. 빠른 테스트를 위해, 500 에러 발생 시, 알림을 보내도록 설정했습니다.
folder, evaluation group은 임의로 새로 생성해줬습니다.
Configure notifications에는 앞서 설정한 contact info를 지정해줍니다.
그라파나의 기본 noti는 이메일로 전송됩니다. 따라서, 슬랙으로 정상적으로 알림을 받기 위해서는 이 정책을 수정해야 합니다.
default policy의 contact point를 알맞게 변경해줍니다.
아래처럼 500 에러를 throw하는 API를 호출했을 때, 정상적으로 슬랙에 알림이 오는 것을 확인할 수 있습니다.
이번 실습에서는 아주 간단한 기능만 테스트해봤지만, 실제 운영 환경에서는 CPU usage나 비정상적인 네트워크 접근 등의 지표를 모니터링 할 때 grafana를 효율적으로 사용할 수 있겠습니다!
Reference