Skip to content

로그 관리 ​

로그가 필요한 이유 ​

장애 발생 시 언제, 어떤 상태에서 문제가 생겼는지 추적하기 위해서다. 로그가 없으면 재현이 어렵고 원인 분석이 불가능하다.

로그 작성 기본 ​

bash
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
LOG_FILE=/var/log/agent-app/monitor.log

echo "[$TIMESTAMP] PID:$PID CPU:${CPU}% MEM:${MEM}% DISK_USED:${DISK}%" >> $LOG_FILE

>> 는 기존 파일에 이어 쓴다. > 는 기존 내용을 덮어쓴다.

로그 용량 관리 (logrotate) ​

로그를 방치하면 디스크를 가득 채운다. logrotate로 자동 관리한다.

bash
# 설정 파일 생성
vi /etc/logrotate.d/agent-app

# 내용
/var/log/agent-app/monitor.log {
    size 10M        # 10MB 초과 시 rotate
    rotate 10       # 최대 10개 파일 유지
    compress        # 이전 파일 gzip 압축
    missingok       # 파일 없어도 오류 없이 진행
    notifempty      # 파일이 비어 있으면 rotate 안 함
}

스크립트 내 직접 구현 방식 ​

bash
LOG_FILE=/var/log/agent-app/monitor.log
MAX_SIZE=$((10 * 1024 * 1024))  # 10MB

if [ -f "$LOG_FILE" ] && [ $(stat -c%s "$LOG_FILE") -ge $MAX_SIZE ]; then
    mv "$LOG_FILE" "${LOG_FILE}.$(date '+%Y%m%d%H%M%S')"
fi

출처: Codyssey-B1/B4-1