서버 CPU 과부하 시 알림 보내기 (feat. Grafana 알림 설정 방법)

2025. 10. 13. 03:12·Infra/DevOps

하하..  또 까먹었군요..

착잡하다...

알림을 세팅해두고 포스팅을 까먹어서, 이번에 알림 새로 만들려니 포스팅 없어서 또 삽질...

소 잃고 뇌 약간 고쳐서 바로 포스팅한다..

 

암튼 오늘은 CPU가 80% 이상 10분간 유지되면 알림을 보내는 것을 세팅해보겠다

(알림 세팅은 디코 웹훅으로!)


1. 새로운 알림 규칙 생성

Alert rules - New alert rule 클릭


2. 알림 이름과 쿼리 설정

우선 알림 규칙 이름 - 쿼리문 (CPU 점유율 계산 쿼리, 프로메테우스 필)

쿼리문은 지난 5분간 평균 CPU 사용률을 의미한다

condition은 'IS ABOVE'로 주고 80을 넣으면 됨! (80% 이상이란 의미)

Name : Warning_CPU
Query : 100 - (avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
Alert condition : IS ABOVE 80


3. 폴더와 라벨링 설정

초반엔 폴더가 없으실건데 그냥 하나 만드시면 됩니다 (분류하는 느낌임)


4. 동작 설정

정확히는 조건을 만족시켰을 때, Grfana가 얼마나 자주, 얼마 동안 평가하고 (알림을) 유지할지에 대해 정의를 하는 곳이다

Pending period는 '몇 분 지속되면 알림을 발생한 것인가'를 설정하는 것이다

지금은 테스트를 위해 Pending period를 1m로 줬는데, 우리는 '10m'으로 세팅해두면 된다

(나중에 다 세팅하고 제대로 해뒀는지 테스트 하고 싶을 때 1로 바꾸면 된다)


5. 알림 세팅

어떤 알림을 울릴 것인가 정해주는 것이다

나는 Grafana 알림을 선택해둔 화면

웹훅에 따라 채널이 다르겠죠?

우리는 지금 처음이라고 가정하고 알림(Contact point)도 하나 만들어보겠다

오른쪽의 View or create contact points를 눌러도 되고, 웹 페이지 왼쪽의 Contact points를 눌러도 된다

알림 추가하기

Test를 누르면 해당 웹훅이 정상동작하는지도 확인할 수 있다

다시 5번으로 돌아와서 방금 설정한 알림을 선택해주면 된다

 

ps 메세지 커스텀 시

Optional Discord Setting을 누르면 추가로 메세지를 커스텀할 수 있다


6. 메세지 커스텀

이 부분은 메세지를 커스텀할 수 있다

정확히는 알림 메세지에 필요한 내용을 추가하는 개념으로 보면 될 것 같다


7. 알림 결과

메세지를 커스텀을 안해서 이렇게 오는데 이제 메세지 형태 각자에 맞게 다듬어주면 된다!

따란~ 뭔가 되게 복잡하고 보기 싫게 왔습니다~

아 참고로 Discord는 JSON 형태로 넘겨줘야해서 커스텀하기 굉장히 까다롭다;;

이유는 디스코드는 문자열(content)을 받는 게 아니라, Embed라는중첩 JSON 구조로 구성된 메시지 포맷을 사용하기 때문이다

쉽게 말해서 저만의 규칙으로 건네줘야 제대로 보여준다는 의미

이래서 내가 텔레그램 봇을 알림으로 자주 쓰는데 텔레그램은 그냥 text 덩어리로 던져주면 되기 때문이다


번외 - 메세지 테스트 방법

아 위 조건에서 메세지 테스트를 해보고 싶으면 아래 순서대로 하면 된다

 

1. IS ABOVE를 3이하로 낮춘다 (CPU 점유율 3% 이상인지 체크)

2. Pending period를 1m으로 줄인다

3. 기다리면 Pending으로 이상 감지 이후부터 1분 측정(Pending period만큼 유지되는지)

4. 이후에 알림이 온다 (조건 만족 시, 즉발로 오는게 아님! Pending period만큼은 기다려야 온다!)

이런식으로 History에서 조건을 만족해서 Fire가 됐는지 확인할 수 있다

(Fire가 되어야 알림을 보냈다는 의미!)

반응형

'Infra > DevOps' 카테고리의 다른 글

서버 부하 테스트 해보기 (feat. K6 스트레스 테스트 & 분산 구조 튜닝)  (0) 2025.10.23
홈서버 4대로 분산 시스템 구축 해보기 (feat. 생각보다 겁나 쉬움!)  (0) 2025.10.21
오라클 클라우드(OCI) 퍼블릭 IP 적용 및 SSH 접속하기  (0) 2025.10.04
오라클 클라우드(OCI) 서버 한방에 만들기 (feat. 인스턴스 생성)  (0) 2025.10.04
오라클 클라우드(OCI) 회원가입 한방에 뚫기 (feat. 30트 끝에 성공...)  (0) 2025.10.04
'Infra/DevOps' 카테고리의 다른 글
  • 서버 부하 테스트 해보기 (feat. K6 스트레스 테스트 & 분산 구조 튜닝)
  • 홈서버 4대로 분산 시스템 구축 해보기 (feat. 생각보다 겁나 쉬움!)
  • 오라클 클라우드(OCI) 퍼블릭 IP 적용 및 SSH 접속하기
  • 오라클 클라우드(OCI) 서버 한방에 만들기 (feat. 인스턴스 생성)
Ratatou2
Ratatou2
온갖 정보들을 기록해두는 메모보드 블로그
  • Ratatou2
    nak-z
    · Ratatou2 ·
  • 전체
    오늘
    어제
  • 공지사항

    • 블로그 이전 진행 중 (24.11.25 ~)
    • 분류 전체보기 (303) N
      • OS (89) N
        • Linux (39)
        • Window (24)
        • Mac (21) N
        • Android (5)
      • Infra (83) N
        • DevOps (38) N
        • Docker (14)
        • Jenkins (9)
        • n8n (13)
        • Nextcloud (8)
        • Rasberry Pi (1)
      • Dev (17)
        • JAVA (7)
        • Python (1)
        • DB (3)
        • Vue (2)
        • AI (4)
        • Git (0)
      • Tools (10)
      • Study (69)
        • Algorithm (66)
        • CS (3)
      • Game (10)
        • Project Zomboid (9)
        • Don't Starve Together (1)
      • etc (24)
        • Temp (0)
      • 개발 외 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
Ratatou2
서버 CPU 과부하 시 알림 보내기 (feat. Grafana 알림 설정 방법)
상단으로

티스토리툴바