로그 관리 - Logrotate 로그 절단 및 저장

2898 단어
쓰기 시작 하 다
배경
최근 에 데이터 와 관련 된 일 을 하고 있 습 니 다. 로그 파일 을 많이 처리 해 야 합 니 다.서버 로그 의 중요성 은 두말 할 필요 가 없습니다. nginx 로 그 는 처리 해 야 할 것 입 니 다.nginx 의 로그 파일 이론 적 으로 선형 으로 지속 적 으로 증가 합 니 다. 그러면 우 리 는 이 데 이 터 를 처리 하고 어떻게 해 야 합 니까? 조사 연 구 를 통 해 필 자 는 Linux 시스템 이 제공 하 는 서비스 logrotate 를 찾 았 습 니 다.
logrotate 는 대량의 로 그 를 생 성 하 는 시스템 을 관리 하기 위해 설계 되 었 다.자동 회전, 압축, 이전, 메 일 알림 로그 시스템 의 다 중 기능 을 갖 추고 있다.모든 로그 파일 은 매일, 매주, 매달 주기 적 으로 처리 하거나 얼마나 늘 어 나 는 지 에 따라 트리거 처리 할 수 있 습 니 다.
기초 지식
로그 순환 이란 현재 로그 압축 파일 을 실현 하고 새로운 로 그 를 시작 하 며 초기 로 그 를 삭제 하 는 것 을 말 합 니 다.로 그 는 일반적으로 응용 프로그램 이 기록 한 시스템 관리자 나 프로그램 개발 자 에 게 유용 한 정보 파일 입 니 다. 예 를 들 어 무엇 을 실행 하고 있 는 지, 무슨 오류 가 발생 했 는 지 등 일련의 정보 입 니 다.
응용 프로그램의 사용 과정 을 추적 하거나 응용 프로그램의 이상 을 해결 해 야 할 때 로 그 는 가장 이상 적 인 도구 입 니 다.불 행 히 도 로그 기록 이 많 을 수록 하 드 디스크 공간 이 더 필요 하 다 는 뜻 이다. 시간 이 지 날수 록 하 드 디스크 는 언젠가는 다 소모 된다.로 그 는 윤전 을 하지 않 으 면 수렴 없 이 미 친 듯 이 올 라 가 고, 이대로 가면 여러 가지 로 시스템 운행 에 지장 을 줄 수 밖 에 없다.
logrotate 는 어떻게 작 동 합 니까?
일반적으로 logrotate 는 corn 의 매일 작업 으로 주기 적 으로 실 행 됩 니 다. 대부분의 Linux 발표 버 전 시스템 (Centos, Ubuntu, Fedora) 에서 찾 을 수 있 습 니 다.
/etc/cron.daily/logrotate

logrotate 가 실행 하 는 빈 도 를 조정 하려 면 cron 설정 에서 조정 할 수 있 습 니 다.필요 하 시 면 cron 에 관 한 제 글 도 보 세 요.
배치 하 다.
시스템 구성
디 렉 터 리 / etc 에서 logrotate 에 대한 설정 파일 과 대응 하 는 디 렉 터 리 를 볼 수 있 습 니 다. 다음 을 직접 볼 수 있 습 니 다.
ls -al|grep logrotate
/etc/logrotate.conf 이 메 인 프로필 과 /etc/lograte.d 이 디 렉 터 리 를 발견 할 수 있 을 것 입 니 다.이 디 렉 터 리 에서 응용 단계 에 대한 logrotate 설정 을 찾 을 수 있 습 니 다. 이것 은 서비스 와 설치 방식 에 달 려 있 습 니 다.일반적으로 패키지 관리 도 구 를 통 해 설 치 된 응용 서 비 스 는 /etc/logrotate.d 디 렉 터 리 에 프로필 을 동시에 생 성 합 니 다.기본적으로 이 디 렉 터 리 에 서 는 syslog 서비스의 설정 파일 을 볼 수 있 습 니 다. logrotate 윤전 시스템 로그 에 사용 할 설정 입 니 다.
응용 설정
모든 응용 서비스 에 대해 로그 순환 설정 을 할 수 있 습 니 다. 필 자 는 웹 서버 의 access 로 그 를 예 로 들 었 습 니 다.
  • nginx 설치 /usr/local/nginx 디 렉 터 리
  • nginx 는 access 를 설정 하 였 습 니 다.log 도착 /var/log/nginx/access.log
  • 윤전 요구: 시간 에 따라 access 로 그 를 윤전 합 니 다.

  • 우 리 는 이 수 요 를 위해 프로필 을 만 듭 니 다. /etc/logrotate.d/nginx-access.conf 파일 의 내용 은 다음 과 같 습 니 다.
    /var/log/nginx/access.log {
        size 2M
        create 777 www web
        rotate 65535
        copytruncate
        compress
        nomail
        olddir /var/log/nginx/old-logs/
    }
    

    이 어 cron 서비스 에서 매 시간 실행 으로 설정 하면 이 루어 집 니 다. 이렇게 간단 합 니 다. cron 설정 이 잘 모 르 는 곳 이 있 으 면 필자 가 cron 에 관 한 또 다른 공 유 를 볼 수 있 습 니 다.
  • crontab -e
  • 01 * * * * logrotate -f /etc/logrotate.d/nginx-access.conf
  • crond restart

  • 이로써 로그 rotate 를 이용 하여 nginx 서버 의 로 그 를 편리 하 게 관리 할 수 있 습 니 다.이 를 바탕 으로 로그 파일 을 구체 적 으로 관리 할 수 있 습 니 다.더 구체 적 이 고 상세 한 도움 은 사용 할 수 있 습 니 다:
    man logrotate
    

    명령 조회.
    참고 문서
    centos-logroate-cron
    ps
    우연히 logrotate - github 이 github 에 올 라 갔 어 요.

    좋은 웹페이지 즐겨찾기