Infra/Kafka, MQTT

[Grafana] Springboot 서버가 꺼지면 Slack 으로 알림받기

Nellie Kim 2024. 5. 16. 18:14
728x90

카프카 개발 및 운영을 시작하면서 그라파나와 연동을 하게 되었다. 

그라파나의 강력한 기능인 알림기능을 사용하고 싶어서 먼저 스프링부트 서버가 꺼지면 슬랙으로 알림을 받는 과정을 먼저 연습하며 정리해보았다. 

 

목차

1. 슬랙 웹훅 URL 생성

2. 그라파나 연동 

  1. Contact points 추가

  2. Alert rules 설정

  3. Notification policies 설정

3. 테스트

 

1. 슬랙 웹훅 URL 생성 

슬랙에 먼저 가입하고 워크스페이스를 생성해준다. (이 과정은 설명 생략)

 

우클릭 → 채널 세부정보 보기

 

통합 → 앱 → 앱추가

 

webhook 검색하여 Incoming WebHooks 설치

 

Slack에 추가 클릭

 

아까 만들었던 워크스페이스 명을 선택하고 수신 웹후크 통합 앱 추가

 

웹후크 URL이 생성이 된다.

 

맨 아래 '설정 저장' 버튼 클릭 ! 

웹훅 URL

https://hooks.slack.com/services/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

curl -X POST --data-urlencode "payload={\"channel\": \"#test\", \"username\": \"webhookbot\", \"text\": \"이 항목은 #개의 my-channel-here에 포스트되며 webhookbot이라는 봇에서 제공됩니다.\", \"icon_emoji\": \":ghost:\"}" https://hooks.slack.com/services/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

 

mobaXterm 터미널에 위 명령어를 그대로 넣어보았다. 

 

wow..

바로 슬랙에 알림이 온다!!

 

 

 

2. 그라파나 연동 

이제 그라파나에 알림 설정을 해보자.

1. Contact points 추가 

그라파나 Alerting - Manage contact points - Add contack points 클릭

 

이름 test , 슬랙, 웹훅 url만 넣어주고 Test

 

메시지 전송 실패 ...;;;; 

Failed to send test alert.: failed to send Slack message : failed incoming webhook......

 

아래 브라우저 알림 허용해주고, 웹훅 url을 재발급 받았다.

 

 🔽 브라우저 알림 허용 하는 법 🔽

더보기

슬랙 환경설정을 보니 이렇게 경고창이 떠있다. 

 

크롬 우측 더보기 - 설정 - 개인 정보 보호 및 보안 - 사이트 설정 - 알림 에 들어가서 알림 허용으로 바꿔준다. 

 

슬랙 화면 새로고침하니 경고창이 사라지고 '데스크톱 알림 활성화' 버튼이 노출된다. 클릭.

 

 

다시 Test 하니, Test alert sent. 메시지가 뜨며 메시지가 슬랙으로 전송이 됐다. 

 

슬랙에서 그라파나에서 온 메시지를 확인할 수 있다!!!

잘 전송이 된 것을 확인했으면 그라파나에서 Save contact point를 클릭하여 저장을 해준다. 

 

 

2. Alert rules 설정 

 

스프링부트가 up이 아닐경우에 알림을 전송하도록 설정해보겠다.

 

아래 Expressions에 A값 (스프링부트 up의 개수) 가 1 미만일 경우에 알람을 받는다고 설정하고, Preview 클릭

우측에 초록버튼으로 Normal이 뜨는 것을 확인한다. 

 

다음으로 Set evaluation behavior 설정

폴더와 그룹 각각 만들어준다. 

 

5분마다 평가를 할 것이다. 

 

그룹 만들기 

몇 분 동안 상태를 지켜볼 것인지 설정한다. 지금은 10분동안 상태를 지켜보기로 하자. 

스프링부트가 꺼지면 10분뒤에 알람이 오는 것이다. 

 

다 설정했으면, 우측 상단에 Save rule and exit 클릭

 

 

3. Notification policies 설정 

설정을 저장한 뒤에는 위에서 생성한 Default contact point인 'test'를 Notification policy 에 적용

 

 

3. 테스트

잘 돌고있는 스프링부트 서버를 꺼보았다. 

잠시 후, 1Normal 상태였는데 1Pending 상태로 바뀌었다. 

 

2분뒤에 1firing 으로 바뀌었다. 

 

firing으로 바뀌고 30초 가량 뒤에 슬랙으로 알람이 왔다. 

 

스프링부트를 재시작하니 2분뒤에 다시 해결 알림이 왔다. 

 

 

끝!

 

이제 카프카 서버에 문제가 생겼을 때 그라파나 알림을 활용하여 수월한 운영을 해보도록 해야겠다 😊

 

 

 

 

출처

https://shanepark.tistory.com/430

 

[SpringBoot] 에러 발생시 Slack으로 알림 보내기

Intro 토이프로젝트로 단순하게 만들어서 배포 해둔 근무 및 스케줄 관리 웹 어플리케이션이 있습니다. 와이프가 저처럼 매일 매일 출근시간이 정해진게 아니고 쉬프트를 받아 근무를 하다 보니,

shanepark.tistory.com

https://shanepark.tistory.com/m/476

 

Grafana 모니터링중 이상 발생시 슬랙으로 알림 보내기

Intro Oracle Cloud는 1기가 메모리 인스턴스 무료로 제공한다. 그것도 무려 2개나. 몇년간 여러가지 클라우드 옵션들을 찾아봤지만 이정도로 파격적인 조건은 전혀 찾을 수 없었다. 그래서 그 두개의

shanepark.tistory.com