리눅스 장애 대응

리눅스 서버에서 발생하는 장애는 예기치 않은 상황으로 인하여 시스템이 제 기능을 수행하지 못하는 상태입니다. 이러한 장애 상황을 미리 대비하고 적절한 대응 방법을 마련하는 것은 중요합니다. 이 글에서는 리눅스 장애 대응을 위한 bash 스크립트와 몇 가지 유용한 명령어를 소개하겠습니다.

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

장애를 사전에 예방하기 위해 리눅스 시스템의 상태를 주기적으로 모니터링하는 스크립트를 작성할 수 있습니다. 이러한 스크립트는 일정 간격으로 실행되며, 시스템 자원 사용량, 네트워크 상태, 프로세스 상태 등을 체크하여 이상이 있을 경우 적절한 조치를 취할 수 있습니다.

#!/bin/bash

cpu_threshold=80          # CPU 사용량 임계치 (percent)
mem_threshold=90          # 메모리 사용량 임계치 (percent)
logfile="/var/log/monitor.log"   # 모니터링 로그 파일 경로

# CPU 사용량 체크
cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | awk -F'%' '{print $1}')
if [[ $cpu_usage -gt $cpu_threshold ]]; then
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] CPU usage is high: $cpu_usage%" >> $logfile
    # 추가적인 대응 조치 코드 작성
fi

# 메모리 사용량 체크
mem_usage=$(free -m | grep Mem | awk '{print $3/$2 * 100}')
if [[ $mem_usage -gt $mem_threshold ]]; then
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] Memory usage is high: $mem_usage%" >> $logfile
    # 추가적인 대응 조치 코드 작성
fi

# 기타 필요한 모니터링 작업 추가

위 스크립트에서는 CPU 사용량과 메모리 사용량을 체크하며, 임계치를 초과할 경우 로그에 기록합니다. 필요에 따라 추가적인 대응 조치 코드를 작성할 수 있습니다.

2. 시스템 로그 모니터링하기

시스템 로그는 시스템의 동작 상황과 이벤트를 기록하는 중요한 정보를 담고 있습니다. 이러한 로그를 모니터링하여 잠재적인 문제를 조기에 감지할 수 있습니다. 가장 기본적인 로그 파일은 /var/log 디렉토리에 위치하며, 다음과 같은 명령어로 확인할 수 있습니다.

tail -f /var/log/syslog

위 명령어를 통해 실시간으로 시스템 로그를 모니터링할 수 있습니다. 필요에 따라 다른 로그 파일을 모니터링할 수도 있습니다.

3. 프로세스 상태 확인하기

리눅스 시스템에서 특정 프로세스의 동작 상태를 주기적으로 체크하여 문제를 해결할 수 있습니다. ps 명령어를 사용하여 현재 실행 중인 프로세스 목록을 확인할 수 있습니다.

ps aux | grep <프로세스_이름>

위 명령어를 통해 해당하는 프로세스의 상태를 확인할 수 있습니다. 필요에 따라 추가적인 동작을 수행할 수 있습니다.

결론

리눅스 장애 대응을 위해서는 장애 예방을 위한 모니터링 스크립트를 작성하고, 시스템 로그를 모니터링하며, 프로세스 상태를 체크하는 등의 작업이 필요합니다. 이를 통해 장애 상황을 조기에 감지하고 적절한 조치를 취할 수 있습니다.