/monitor-disk-usage

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

Primary LanguagePython

문제

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

가설

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

과정

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

  • 디스크의 사용량을 확인하기 위한 코드는 굉장히 간단하다.
# monitor_disk_usage.py

# 필요 라이브러리
import psutil

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

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

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

# 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시"로 하루 한 번만 모니터링 할 예정이다.
0 0 * * 1-5 python3 monitor_disk_usage.py

결과

image

  • 이를 통해 쉽게 디스크의 사용량을 모니터링하여, 임계치에 도달하였을 때 바로 알 수 있는 기능이 완성되었다.