본문 바로가기
Technical/System

Linux 로그 수집 기간 변경하는 법

by 채희창 2025. 9. 29.

안녕하세요.

이번에는 Linux 로그 수집 기간 변경하는 방법에 대해서 포스팅 하겠습니다.

 

로그 수집 기간을 조정하여 장애 발생 시 원인 분석과 문제 해결에 활용할 수 있으며, 보안 강화를 위해 원하는 기간으로 설정할 수 있습니다.

 

제가 테스트한 내용을 토대로 포스팅을 할 것이며, 사용 환경이 다를경우 명령어 및 적용 파일 등에서 다를 수 있습니다. 만약에 그런 부분에서 문제가 발생할 경우 댓글로 문의주시면 답변으로 최대한 도움드릴 수 있도록 하겠습니다.

 

제가 테스트 서버로 사용한 서버의 OS는 다음과 같습니다.

● OS : Rocky Linux 8.8

 

↓ ↓ ↓ Linux 로그 수집 기간 변경 작업 시작↓ ↓ ↓

 

1. 작업 중 문제가 생길 수 있으니 작업 전 백업을 권장드립니다.(권장)

# cp /etc/logrotate.d/syslog /etc/logrotate.d/250929_syslog_bk

→ 다음과 같이 명령어를 입력하면 "/etc" 하위 폴더의 "logrotate.d"에서 "syslog" 파일을 "250929_syslog_bk" 이름을 가진 동일한 파일을 생성하게 됩니다.

 

2. 백업을 완료하셨으면, 이제 본격적으로 로그 수집 기간 변경 작업을 하겠습니다.

※ "/etc/logrotate.d"에 "syslog" 대신 "rsyslog" 가 있을 경우 "rsyslog"를 수정해주시고 아래 명령어에 "syslog" 대신 "rsyslog"를 넣어주시면 됩니다.

 

2-1. logrotate 설정 변경 작업

# vi /etc/logrotate.d/syslog

vi로 "syslog" 파일을 열어줍니다~

# 아래 내용 추가 후 저장 후 나가기

/var/log/cron
/var/log/messages
/var/log/secure
/var/log/spooler

# "cron", "messages", "secure", "spooler" 4개의 로그 파일에 동일한 정책을 적용
{
    weekly        # 로그를 1주일 간격으로 로테이션 합니다.
    rotate 26     # 보관할 로그 파일의 개수를 지정합니다.
    dateext       # 보관되는 로그 파일 이름에 날짜를 확장자 형태로 붙입니다.
    missingok   # 지정된 로그 파일이 없어도 에러를 내지 않고 넘어갑니다.
    sharedscripts  # 스크립트가 모든 로그에 대해 한 번만 실행되게 합니다.
    postrotate
       /usr/bin/systemctl kill -s HUP syslog.service >/dev/null 2>&1 || true

# 로그 로테이션 후 실행할 명령어 블록입니다.

# syslog.service에게 재시작 신호을 보내고 로그 파일이 새로 생겼으면 기록을 시작하라고 알려주는 역할입니다.

# >/dev/null 2>&1 → 실행 결과 메시지를 다 버립니다.

# || true → 만약에 실패하더라도 전체 작업이 중단되지 않도록 합니다.
    endscript
}

 

3. 저장 후 문법확인!!

# logrotate -d /etc/logrotate.d/syslog

→ 문법/동작 확인, 실제 실행되지는 않습니다.

# logrotate -f /etc/logrotate.d/syslog

→ 실제 실행, 강제로 즉시 로그 로테이션을 실행하여 테스트해 볼 수 있습니다.

 

여기까지 Linux 로그 수집 기간 변경하는 방법에 대해서 작성하였으며, 해당 작업이 필요할 경우 참고해주시면 감사하겠습니다.

 

감사합니다.

댓글