당사 서버의 /var/log 하위 보안 로그는 다음과 같이 1G를 초과합니다.
du -sh * | grep sec
0 secure
4.2G secure-20210726
1.8G secure-20210801
1.2G secure-20210804
따라서 우리는 최대 크기가 100M에 도달한 후 보안 로그를 교체하기로 결정했습니다.
따라서 /etc/logrotate.conf에 다음을 추가합니다.
more /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
dateext
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
minsize 1M
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0600 root utmp
rotate 1
}
# system-specific logs may be also be configured here.
/var/log/secure {
monthly
minsize 1M
maxsize 100M
rotate 5
}
/var/log/secure
/etc/logrotate.d/syslog
그런 다음 중복 항목을 피하기 위해 행을 제거했습니다.
마지막으로 로그 회전을 새로 고칩니다.
logrotate /etc/logrotate.conf
잠시 후 /var/log에서 로그 보안을 확인했습니다.
du -sh * | grep sec
0 secure
4.2G secure-20210726
1.8G secure-20210801
1.2G secure-20210804
하지만 위에서 본 것처럼 아무것도 바뀌지 않습니다.
그럼 내 구성에 문제가 있는 걸까요?
답변1
구성에는 아무런 문제가 없습니다. 현재 로그 파일에 회전 조건을 적용하며, 회전된 파일의 logrotate
속성(등)을 확인하지 않습니다 .secure-20210726
회전 제한에 도달할 만큼 충분한 파일이 있는 경우에만 회전된 파일의 변경 사항을 볼 수 있으며, 이때 가장 오래된 파일이 삭제됩니다. 압축을 활성화하고 기존 파일을 수동으로 압축할 수 있습니다.
답변2
글쎄, 타임스탬프를 보면 변경하기 전에도 파일의 마지막 성공적인 순환 날짜는 2021년 8월 4일이었습니다. 이 날은 대략 오늘과 우리 시간대의 플러스 또는 마이너스이므로... 이미 무엇을 볼 것으로 예상하셨을 것입니다. ? logrotate는 일반적으로 cron 작업이나 시스템 타이머를 통해 하루에 한 번 시작되므로 그 전에는 아무 일도 일어나지 않습니다.
수동으로 호출하면 logrotate /etc/logrotate.conf
거의 아무 일도 일어나지 않습니다. logrotate는 데몬이 아니기 때문에 명시적으로 "구성을 다시 로드"할 필요가 없으며 logrotate는 종종 밤에 실행되므로 로그 파일이 회전할 만큼 오래되지 않았다는 것을 알 수 있습니다.
구성에 따라 secure
100M 이상으로 성장하지 않는 한 약 한 달 안에 순환이 표시됩니다. (개인적으로 크기 옵션이 유용하다고 생각하는 경우가 거의 없기 때문에 이렇게 말합니다. 작은 오래된 로그 파일이 생성되더라도 정기적인 회전을 선호하고 로그 파일이 폭발하는 일이 발생하면 logrotate는 어쨌든 저장하지 않으므로 그냥 변경합니다. daily
내가 몇 일 동안 보관하고 싶은지 규칙을 정하고 파악하세요)