🎯 실습 목표
리눅스에서 서비스가 생성하는 로그는 계속 누적되기 때문에
자동으로 압축/백업/삭제되도록 관리하는 것이 필수다.
이 실습에서는 logrotate를 활용해 로그 파일을 주기적으로 정리하고,
보관 주기, 백업 개수, 압축 여부 등을 직접 설정해 보았다.
🖥️ 실습 환경
- Rocky Linux 9.5
- 실습 사용자: root
- 실습 경로: /logrotate
- 도구: logrotate, gzip
⚙️ 실습 과정
✅ 실습 1: 테스트용 로그 생성
테스트를 위해 로그 파일이 존재할 경로를 만들고, 임의의 로그 파일을 생성하였다.
bash
복사편집
mkdir /logrotate vi /logrotate/log.txt
→ log.txt에 임의 텍스트 입력 후 저장
✅ 실습 2: logrotate 설정 파일 작성
로그 순환 설정을 위해 별도 설정 파일을 작성한다.
설정 경로는 /etc/logrotate.d/ 하위에 파일명을 자유롭게 지정할 수 있다.
bash
복사편집
vi /etc/logrotate.d/logrotate-test
conf
복사편집
/logrotate/log.txt { weekly rotate 3 compress missingok notifempty }
- weekly: 주 1회 순환
- rotate 3: 최대 3개까지 보관
- compress: 오래된 로그는 .gz 형식으로 압축
- missingok: 로그가 없어도 무시하고 계속 진행
- notifempty: 파일 내용이 없으면 순환 생략
→ 설정이 끝나면 logrotate가 cron을 통해 주기적으로 자동 실행된다.
✅ 실습 3: logrotate 강제 실행 테스트
정기 주기를 기다리지 않고 바로 동작을 확인하기 위해 -f 옵션으로 강제 실행한다.
bash
복사편집
logrotate -f /etc/logrotate.d/logrotate-test
→ 별다른 출력 없이 조용히 처리됨
✅ 실습 4: 결과 확인
bash
복사편집
ls -l /logrotate
예시 출력:
diff
복사편집
-rw-r--r-- 1 root root 0 May 7 18:30 log.txt -rw-r--r-- 1 root root 110 May 7 18:30 log.txt.1.gz
- 기존 log.txt는 초기화되었고
- .1.gz는 이전 로그의 압축 백업본
→ 이후에도 설정대로 실행되면 .2.gz, .3.gz까지 생성되고,
rotate 3을 넘는 오래된 백업은 자동 삭제된다.
🔐 실무 활용 포인트
- /var/log 디렉터리 내 로그 파일이 많은 시스템일수록 logrotate 설정이 필수다.
- 웹 서버, DB, 사용자 정의 서비스 로그에 대해 각각 다른 정책을 적용할 수 있다.
- 오래된 로그는 자동 압축되므로 디스크 용량을 아끼는 데도 큰 도움이 된다.
- 보안 로그(/var/log/secure 등)는 daily, rotate 30 등으로
보관 주기와 이력 길이를 길게 설정하는 게 좋다.
🧠 실습 요약
항목설정설명
| 순환 주기 | weekly, daily, monthly | 얼마나 자주 정리할지 |
| 백업 개수 | rotate 3 | 최대 몇 개까지 보관할지 |
| 압축 여부 | compress | 오래된 로그를 .gz로 저장 |
| 파일 조건 | notifempty, missingok | 파일 존재 조건 설정 |
| 테스트 실행 | logrotate -f 경로 | 설정을 강제로 실행 |
💬 느낀 점
기존에는 로그가 쌓이면 삭제하거나 직접 초기화했지만,
logrotate를 설정해두면 한 번의 설정으로 완전히 자동화된다는 점이 매우 효율적이었다.
특히 직접 만든 서비스나 스크립트의 로그도
logrotate 설정만 추가하면 운영 환경에서도 지속 가능한 로그 관리 체계를 만들 수 있다는 확신이 생겼다.
'02. 클라우드 보안 공부 > 실습로그' 카테고리의 다른 글
| ✅ [실습로그] 포트 및 네트워크 연결 상태 확인 실습 (netstat, ss, lsof) (0) | 2025.05.05 |
|---|---|
| ✅ [실습로그] 프로세스 확인 및 제어 실습 (ps, top, kill) (0) | 2025.05.05 |
| ✅ [실습로그] 서비스 등록 실습 (systemd, systemctl) (0) | 2025.05.05 |
| ✅ [실습로그] 로그 확인 및 시스템 감사 실습 (last, who, w, journalctl) (0) | 2025.05.05 |
| ✅ [실습로그] 특수 권한 설정 실습 (SUID / SGID / Sticky Bit) (0) | 2025.05.05 |