[shell] 모니터링 스크립트를 활용한 자동 경고 시스템

본 포스트에서는 리눅스 시스템에서 사용할 수 있는 모니터링 스크립트를 활용하여 자동 경고 시스템을 구축하는 방법에 대해 안내합니다. 이 시스템은 주요 시스템 이벤트를 감지하고 즉각적으로 경고를 발생시켜 시스템 상태 변화에 신속하게 대응할 수 있도록 도와줍니다.

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

먼저, Bash 스크립트를 사용하여 시스템을 모니터링하는 스크립트를 작성합니다. 아래는 예시 모니터링 스크립트의 일부입니다.

#!/bin/bash

# 경고를 받을 이메일 주소
email="youremail@example.com"

# CPU 사용량 확인
cpu_usage=$(top -n 1 -b | awk '/^%Cpu/ {print $2}')

# CPU 사용량이 90%를 초과하면 경고 이메일 전송
if (( $(echo "$cpu_usage > 90" | bc -l) )); then
    echo "CPU 사용량이 90%를 초과했습니다." | mail -s "경고: 고부하 상태" $email
fi

# 메모리 사용량 확인
mem_usage=$(free | awk '/Mem:/ {print $3/$2 * 100}')

# 메모리 사용량이 80%를 초과하면 경고 이메일 전송
if (( $(echo "$mem_usage > 80" | bc -l) )); then
    echo "메모리 사용량이 80%를 초과했습니다." | mail -s "경고: 메모리 부족" $email
fi

이 예시 스크립트는 CPU 사용량과 메모리 사용량을 모니터링하고, 설정한 임계값을 초과할 경우 이메일로 경고를 전송하는 기능을 포함하고 있습니다.

2. 모니터링 스크립트 실행 스케줄링

다음으로, 작성한 모니터링 스크립트를 주기적으로 실행하기 위해 cron을 활용하여 스케줄링합니다. 아래는 예시 cron 작업 예시입니다.

# 매 분마다 모니터링 스크립트 실행
* * * * * /path/to/monitoring_script.sh

cron을 사용하여 모니터링 스크립트를 주기적으로 실행하면, 시스템 상태 변화를 실시간으로 감지할 수 있습니다.

3. 경고 시스템 확장

위의 예시는 CPU 및 메모리 사용량에 대한 모니터링을 다루었지만, 실제 시스템에서는 다양한 이벤트에 대한 모니터링이 필요할 수 있습니다. 따라서, 해당 스크립트를 확장하여 디스크 공간, 네트워크 상태 등 다양한 시스템 상태에 대한 모니터링을 추가할 수 있습니다.

요약

이러한 모니터링 스크립트를 작성하고 실행함으로써, 시스템 상태의 변화를 감지하고 즉각적으로 대응할 수 있는 자동 경고 시스템을 구축할 수 있습니다. 이를 통해 시스템 장애를 미리 예방하고 안정적인 운영을 지원할 수 있습니다.