# sample logrotate configuration file
errors sysadmin@my.org
compress
/var/log/messages {
rotate 5
weekly
postrotate
/sbin/killall -HUP syslogd
endscript
}
"var/log/httpd/access.log" /var/log/httpd/error.log {
rotate 5
mail www@my.org
errors www@my.org
size=100k
sharedscripts
postrotate
/sbin/killall -HUP httpd
endscript
}
/var/log/news/* {
monthly
rotate 2
missingok
errors newsadmin@my.org
postrotate
kill -HUP `cat /var/run/inn.pid`
endscript
nocompress
}
제일 첫줄은 코멘트이고 다음 2줄은 logrotate 전체의 옵션이다.
즉, 로그 파일 처리중 발생하는 오류는 sysadmin@my.org에게 메일로 알리고
로그 파일은 압축하는것을 기본으로 한다는 내용이다.
다음은 각각의 로그 파일에 대해 처리 옵션을 지정하고 있다.
먼저 /var/log/messages란 로그 파일은
1주일에 한번씩 새로운 로그 파일을 만들고(weekly)
이전 파일은 5주간 보관한 다음 제거한다.
(rotate 5) 로그 파일이 새로 생성된 다음에는 /sbin/killall -HUP syslogd 명령이 실행된다. (postrotate ... endscript)
다음은 /var/log/httpd/access.log 와 /var/log/httpd/error.log 2개의 파일을 함께 지정하고 있다.
이들 파일은 크기가 100K 이상으로 커지면 새로운 로그 파일을 생성하고(size=100k)
5개의 로그 파일을 보관한 다음(rotate 5) 가장 오래된 로그 파일은
제거하지 않고 압축되지 않은 상태로 www@my.org에게 메일로 보내진다.(mail www@my.org)
로그 파일 처리중에 발생하는 오류는 www@my.org에게 보고하고(errors www@my.org)
2개의 로그 파일을 같이 처리할 때 postrotate 스크립트는 각 로그 파일을 처리할때 마다
실행되지 않고 한번만 실행된다(sharedscripts)는 내용이다.
만일 로그 파일에 공백문자가 포함된다면 처음과 같이 "로 둘러싸서 지정할 수 있다.
마지막은 /var/log/news 디렉토리 안의 모든 로그 파일들에 대한 지정이다. 각 로그 파일들은 1달에 1번씩 새로 만들어지고(monthly) 오류는 newsadmin@my.org에 게 보고된다. 로그파일이 없더라도 오류를 발생시키지 않으며(missingok) 보관하는 로그파일은 압축하지 않는다.(nocompress) 여러 파일들을 처리하더라도 앞에서 파일을 와일드 문자(*)로 지정했기 때문에 하나의 파일처리로 인식되며 몇가지 파일에서 오류가 발생하더라도 오류 메일은 한통이 보내진다.
apache 로그 로테이트
[root@www httpd]# vi /etc/logrotate.d/httpd
/var/log/httpd/*log {
missingok
notifempty
sharedscripts
delaycompress
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}
# 설정 적용 시키기
# logrotate /etc/logrotate.conf
# 한번 실행하기
# /usr/sbin/logrotate -f /etc/logrotate.conf
출처: https://skibis.tistory.com/55 [Skibi's Notepad]
rotate [숫자] : 로그 파일 해당 갯수 이상되면 삭제
maxage [숫자] : 해당일수 이상된 로그 파일 삭제
size 100k , size 100M size 10G 지정한 용량이 되면 로그로테이트를 실행
create 권한 유저 그룹 : 퍼미션을 지정하여 rotation된 로그 파일을 생성
create 0600 root root
notifempty : log 내용이 없으면 rotation 하지 않음
monthly : 월 단위로 로테이트
daily : 일 단위로 로테이트
weekly : 주 단위로 로테이트
compress : rotate 된 로그 gzip 압축
nocompress : 압축을 하지 않음
mail [메일주소] : 로테이트 설정에 의해 보관주기가 끝난 파일을 메일로 발송
mailfirst [메일주소] : 로테이트 시 신규파일 이전의 로그를 메일로 발송
nomail : 메일로 통보받지 않음
errors [메일주소] : 로테이트 실행시 에러가 발생하면 이메일로 통보
prerotate-endscript : 사이의 명령어를 로그파일 처리전에 실행
postrotate-endscript : 사이의 명령어를 로그파일 처지후에 실행
extension : 로테이트 후 생성되는 파일의 확장자를 지정
copytruncate : 이 옵션을 넣지 않으면 현재 사용중인 로그를 다른 이름으로 move하고 새 로그 파일을 생성
############################ 애러 발생######################
Set "su" directive in config file to tell logrotate which user/group should be used for rotation.
이와 관련된 애러가 발생하면....
vi /etc/logrotate.conf 파일에..
/var/log/rsyslog
{
rotate 6
daily
missingok
notifempty
delaycompress
compress
su root root ### 추가
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
su root root 내용 추가
'memo > Linux' 카테고리의 다른 글
snmp_설정 (0) | 2023.01.14 |
---|---|
rsyslog 설치 및 zabbix 수집 구성 (0) | 2023.01.14 |
journalctl_사용법 (0) | 2023.01.14 |
cockpit 웹 접속 시스템 관리 프로그램 (0) | 2023.01.14 |
centos 초기 설정(네트워크,한글,시간) (0) | 2023.01.14 |