[shell] Shell 스크립트 모니터링을 위한 임계값 설정 방법

Shell 스크립트로 시스템 또는 어플리케이션을 모니터링할 때, 임계값(threshold)을 설정하여 특정 조건이 발생할 경우 즉각적으로 경고를 받을 수 있습니다. 이를 통해 잠재적인 문제를 사전에 발견하고 예방할 수 있습니다. 이번 글에서는 Shell 스크립트 모니터링을 위한 임계값 설정 방법을 살펴보겠습니다.

1. 임계값 관련 변수 정의

먼저, 모니터링할 지표에 대한 기준이 될 임계값(threshold)에 대한 변수를 정의합니다.

CPU_THRESHOLD=80       # CPU 사용량 임계값 (예: 80%)
MEMORY_THRESHOLD=90    # 메모리 사용량 임계값 (예: 90%)
DISK_THRESHOLD=95        # 디스크 사용량 임계값 (예: 95%)

2. 모니터링 스크립트 작성

다음으로, 실제 모니터링을 수행할 스크립트를 작성합니다. 이 스크립트는 정의한 임계값과 시스템 상태를 비교하여, 임계값을 초과하는 경우에 경고를 발생시키도록 구현됩니다.

#!/bin/bash

# CPU 사용량 체크
cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d. -f1)
if [ $cpu_usage -gt $CPU_THRESHOLD ]; then
    echo "CPU 사용량이 임계값을 초과하였습니다"
    # 여기에 경고 처리 로직 추가
fi

# 메모리 사용량 체크
memory_usage=$(free | grep Mem | awk '{print $3/$2 * 100.0}')
if [ $(printf "%.0f" $memory_usage) -gt $MEMORY_THRESHOLD ]; then
    echo "메모리 사용량이 임계값을 초과하였습니다"
    # 여기에 경고 처리 로직 추가
fi

# 디스크 사용량 체크
disk_usage=$(df -h | grep '/dev/sda1' | awk '{print $5}' | cut -d% -f1)
if [ $disk_usage -gt $DISK_THRESHOLD ]; then
    echo "디스크 사용량이 임계값을 초과하였습니다"
    # 여기에 경고 처리 로직 추가
fi

3. 경고 처리 로직 추가

스크립트에서 경고가 발생했을 때, 메일이나 모니터링 시스템을 통해 알림을 받을 수 있도록 해당 로직을 추가해줍니다.

예를 들어, 메일을 보내는 경우:

# 메일을 보내는 예시
echo "시스템 리소스 사용량이 초과되었습니다" | mail -s "시스템 리소스 경고" admin@example.com

모니터링 시스템을 통해 알림을 받는 경우에는 해당 시스템의 API나 명령어를 사용하여 경고를 전송할 수 있습니다.

위와 같이 경고 처리 로직을 추가하여, 특정 임계값을 초과하는 경우 즉각적인 대응이 가능하도록 할 수 있습니다.

이렇게 Shell 스크립트 모니터링을 위한 임계값 설정 방법에 대해 알아보았습니다. 임계값은 각 시스템의 특성에 맞게 적절히 설정하여 모니터링 시스템을 효율적으로 운영할 수 있습니다.

Reference