리눅스 로그관리 - Logrotate 알아보기




    이번 포스팅에서는 리눅스 로그관리에 유용한 logrotate 에 대해서 알아보도록 하겠습니다.






     Logrotate는 무엇인가?



    리눅스에서 서버를 운영하시다 보면 로그를 보고 서버의 상태 혹은 장애를 대비합니다 그래서 대부분의 모든로그는 남기도록 설정하는데 이러한 로그들은 시간이 점점 지나면서 엄청난 크기로 커지게 됩니다


    엄청난 크기로 커지기 전에 로그들을 잘관리하도록 설정하는 기능이 logrotate 입니다






     Logrotate 실행흐름과 구조



    1. Logrotate 실행순서







    2. Logrotate 파일 구조


    Logrotate 파일구조


    데몬 프로그램 : /usr/sbin/logrotate 

    Logrotate 데몬 설정파일 : /etc/logrotate.conf

    Logrotate를 프로세스 설정파일 : /etc/logrotate.d/

    Logrotate 작업내역 로그 : /etc/cron.daily/logrotate





     /etc/logrotate.conf 설정하기





    logrotate(로테이트)의 실행의 모든 설정 파일인 logrotate.conf의 내용 입니다 입니다



    1. 로그 회전주기


    # rotate log files weekly
    weekly
    


    로그 회전을 원하시는 주기를 설정입니다

    yearly : 매년

    monthly : 매월

    weekly : 매주

    daily : 매일





    2. 로그파일 개수


    # rotate log files weekly
    weekly
    
    # keep 4 weeks worth of backlogs
    rotate 5
    


    정리할 로그의 개수를 지정하는 부분입니다 로그 회전주기에 따라 진행됩니다




    3. 새로운 로그파일 생성여부


    # rotate log files weekly
    weekly
    
    # keep 4 weeks worth of backlogs
    rotate 5
    
    # create new (empty) log files after rotating old ones
    create
    



    로그파일을 정리한 후 로그파일을 생성여부입니다

    create : 로그파일 생성

    empty : 로그파일 생성 안함




    4. 파일명 날짜 부여


    # rotate log files weekly
    weekly
    
    # keep 4 weeks worth of backlogs
    rotate 5
    
    # create new (empty) log files after rotating old ones
    create
    
    # use date as a suffix of the rotated file
    dateext
    


    Logrotate가 실행한뒤 로그파일에 날짜를 부여합니다

    dateext : 로그 파일명의 날짜 부여




    5. 로그파일 압축여부


    # rotate log files weekly
    weekly
    
    # keep 4 weeks worth of backlogs
    rotate 5
    
    # 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
    


    로그파일 압축여부 입니다 - (압축하여 로그파일의 크기를 조절할수 있습니다)

    compress : 로그파일 압축




    6. 개별 로그정리 프로세스(데몬) 경로


    # rotate log files weekly
    weekly
    
    # keep 4 weeks worth of backlogs
    rotate 5
    
    # 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
    


    디렉토리를 지정하여 Logrotate를 할수 있습니다

    include [경로] : Logrotate 프로세스(데몬) 지정









     /etc/logrotate.d 설정하기



    apache 로그를 이용한 /etc/logrotate.d 파일 밑에 설정을 해보도록 하겠습니다


    1. apache 로그 Logrotate(로테이트) 설정하기


    [root@server ~]# cat /etc/logrotate.d/apache 
    /server/apache2/logs/*log {
        daily
        rotate 5
        notifempty
        missingok
        compress
        sharedscripts
        postrotate
            /server/apache2/bin/apachectl graceful
        endscript
    }
    


    /etc/logrotate.d/apache 상세설명

     

    daily : 일단위로 실행합니다

     

    rotate 5 : 회전 주기를 설정합니다

     

    notifempty : 로그파일의 내용이 없을경우 rotate 하지 않습니다

     

    missingok : 로그파일이 없을경우 에러메시지를 출력하고 다음으로 실행합니다

     

    compress : 로그파일을 압축합니다

     

    sharedscripts : 여러개의 로그파일을 스크립트로 공유하여 실행합니다

     

    postrotate : 실행 후 스크립트 파일 실행합니다

     

    /server/apache2/bin/apachectl graceful

     

    endscript : 실행 후 스크립트 파일 실행합니다



    2. Logrotate(로테이트) 실행

    [root@server ~]# /usr/sbin/logrotate -f /etc/logrotate.d/apache
    


    3. Logrotate(로테이트) 디버그 모드

    [root@server ~]# /usr/sbin/logrotate -d /etc/logrotate.d/apache
    



    3. Logrotate(로테이트) 실행과정 화면의 표시

    [root@server ~]# /usr/sbin/logrotate -v /etc/logrotate.d/apache
    


    Posted by Server-talk 서버이야기