[AWS] 간단한 EC2 디스크(Disk) 사용량 모니터링 방법(Feat. 슬랙(Slack))

문제

  • 사내 사용중인 AWS EC2 서버(Server)에서 용량이 부족할 때 마다 애플리케이션(Application)이 정상적으로 작동하지 않는 증상이 발생한다.
  • 매번 접속을 통해 확인하고 있지만, 여간 번거로운 일이 아닐 수 없다.

가설

  • 파이썬 프로그램(Python Program)을 통해 디스크(Disk)의 용량을 파악하여, 특정 임계치에서 슬랙(Slack)으로 경보를 보낸다면, 더욱 쉬운 모니터링이 가능할 것이다.

과정

1. 디스크(Disk) 사용량 확인 파이썬 프로그램(Python Program) 작성

  • 디스크의 사용량을 확인하기 위한 코드는 굉장히 간단하다.
1
2
3
4
5
6
7
8
9
10
11
12
13
# monitor_disk_usage.py

# 필요 라이브러리
import psutil

# 디스크 사용량 통계
usage = psutil.disk_usage('/')

# 사용량이 90% 이상일 때
if usage.percent > 90:
    '''
    슬랙 알림
    '''

2. 슬랙(Slack) 경보 코드 작성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# monitor_disk_usage.py

# 필요 라이브러리
import psutil
from slack_sdk import WebClient
import json

# 디스크 사용량 통계
usage = psutil.disk_usage('/')

# 사용량이 90% 이상일 때
if usage.percent > 90:
    
    # 슬랙 알림
    client = WebClient(token='Your_Token')
        
    message = [{
                "type": "section",
                "text": {
                            "type": "mrkdwn",
                            "text": "⚠️ AWS EC2 Airflow Server의 잔여 Disk 용량이 10% 미만입니다. ⚠️"
                        }
                }]
      
    client.chat_postMessage(channel="Your_Channel", blocks=json.dumps(message))

3. 크론탭(Crontab) 설정

  • 필자의 경우, 그렇게 큰 용량 증가는 예상 되지 않으므로 “평일 오전 9시”로 하루 한 번만 모니터링 할 예정이다.
1
0 0 * * 1-5 python3 monitor_disk_usage.py

결과

image

0%