>  기사  >  운영 및 유지보수  >  Nginx 로그 절단 구성을 구현하는 방법

Nginx 로그 절단 구성을 구현하는 방법

WBOY
WBOY원래의
2023-11-08 12:48:211305검색

Nginx 로그 절단 구성을 구현하는 방법

Nginx 로그 커팅 구성을 구현하는 방법, 특정 코드 예제가 필요합니다.

Nginx는 최신 애플리케이션을 구축하고 실행하는 데 널리 사용되는 매우 인기 있는 고성능 웹 서버이자 역방향 프록시 서버입니다. 운영 및 유지 관리 엔지니어로서 우리는 과도한 로그 파일이 서버 성능에 영향을 미치는 것을 방지하기 위해 서버의 로그를 정기적으로 잘라낼 수 있도록 Nginx 서버의 로그 절단 기능을 구성해야 하는 경우가 많습니다. 다음은 Nginx 로그 절단 구성을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.

1. 로그 잘라내기를 구성해야 하는 이유는 무엇인가요?

Nginx 서버는 기본적으로 모든 액세스 로그와 오류 로그를 동일한 파일에 기록합니다. 디스크 공간이 많아지고, 특정 로그 정보를 찾을 때 효율성도 떨어지게 됩니다. 이 문제를 해결하려면 정기적으로 Nginx 로그를 자르고, 특정 크기나 시간 간격에 따라 로그 파일을 자르고, 오래된 로그 파일을 보관하거나 삭제하여 서버 성능과 관리 효율성을 유지해야 합니다.

2. Nginx 로그 절단 구성 방법

  1. logrotate 도구 설치

logrotate는 다양한 로그 파일을 자동으로 잘라내고 보관하고 삭제하는 데 사용할 수 있는 일반적으로 사용되는 로그 절단 도구입니다. 먼저 서버에 logrotate 도구를 설치해야 합니다. 서버가 Debian/Ubuntu 시스템을 사용하는 경우 다음 명령을 사용하여 설치할 수 있습니다.

sudo apt-get install logrotate

서버가 CentOS/RHEL 시스템을 사용하는 경우 다음 명령을 사용하여 설치할 수 있습니다.

sudo yum install logrotate
  1. 로그 생성 절단 구성 파일

다음으로 수행할 절단 규칙과 작업을 정의하기 위해 Nginx 로그 절단 구성 파일을 생성해야 합니다. 일반적으로 Nginx 로그 파일은 /var/log/nginx/ 디렉터리에 있습니다. 이 디렉터리에 nginx.logrotate라는 파일을 만들고 다음 구성을 편집할 수 있습니다. /var/log/nginx/目录下,我们可以在该目录下创建一个名为nginx.logrotate的文件,并编辑如下配置:

/var/log/nginx/*.log {
    daily
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
    create 0644 nginx nginx
    sharedscripts
    postrotate
        /usr/sbin/nginx -s reopen
    endscript
}

上述配置中,各个参数的含义如下:

  • daily:按照每天的时间间隔进行切割;
  • missingok:如果日志文件不存在,则不报错;
  • rotate 7:保留最近7个切割后的日志文件,旧的日志文件会被删除;
  • compress:对切割后的日志文件进行压缩;
  • delaycompress:延迟压缩,即在下一次切割时再进行压缩;
  • notifempty:如果切割后的日志文件为空,则不执行任何操作;
  • create 0644 nginx nginx:创建新的日志文件时,设置权限为0644,所有者和组为nginx;
  • sharedscripts:在执行切割脚本之前只执行一次脚本;
  • postrotateendscript:在切割完成后执行的脚本,将Nginx服务器重新打开日志文件。
  1. 测试日志切割配置

完成配置文件的编写后,可以使用以下命令进行日志切割的测试:

sudo logrotate -f /etc/logrotate.d/nginx.logrotate

执行上述命令后,logrotate将会按照配置文件的规则对Nginx的日志文件进行切割。你可以通过ls命令查看/var/log/nginx/目录下的日志文件,看是否按照规则进行了切割和压缩。

  1. 设置logrotate的定时任务

为了实现自动的日志切割功能,我们需要将logrotate的执行任务加入到系统的定时任务中。可以编辑/etc/crontab

0 0 * * * root /usr/sbin/logrotate -f /etc/logrotate.d/nginx.logrotate

위 구성에서 각 매개변수의 의미는 다음과 같습니다.

    daily: 일일 시간 간격에 따라 잘라냅니다.

    missingok: 경우 로그 파일이 존재하지 않으면 오류가 보고되지 않습니다.

    7 회전: 마지막 7개의 잘라낸 로그 파일을 유지하고 이전 로그 파일은 삭제됩니다. 🎜🎜압축 code> : 잘라낸 로그 파일을 압축합니다. 🎜🎜delaycompress: 압축을 지연합니다. 즉, 다음 잘라내기를 압축합니다. 🎜🎜notifempty: 잘라낸 로그 파일이 비어 있으면 작업이 수행되지 않습니다. 🎜🎜create 0644 nginx nginx: 새 로그 파일을 생성할 때 권한을 0644로 설정하고 소유자와 그룹을 🎜🎜sharedscripts code>: 자르기 스크립트를 실행하기 전에 한 번만 스크립트를 실행합니다. 🎜🎜<code>postrotateendscript: 자르기가 완료된 후 로그 파일을 다시 열기 위해 실행되는 스크립트입니다. Nginx 서버. 🎜
    🎜로그 절단 구성 테스트🎜🎜🎜구성 파일 작성을 완료한 후 다음 명령을 사용하여 로그 절단을 테스트할 수 있습니다. 🎜rrreee🎜위 실행 후 명령을 실행하면 logrotate는 Nginx 로그 파일을 잘라내는 구성 파일의 규칙을 따릅니다. ls 명령을 사용하면 /var/log/nginx/ 디렉터리의 로그 파일을 보고 규칙에 따라 잘리고 압축되었는지 확인할 수 있습니다. 🎜
      🎜logrotate의 예약 작업 설정🎜🎜🎜자동 로그 절단 기능을 구현하려면 시스템의 예약 작업에 logrotate의 실행 작업을 추가해야 합니다. /etc/crontab 파일을 편집하고 다음 줄을 추가할 수 있습니다: 🎜rrreee🎜 이렇게 하면 매일 자정(0시간, 0분)에 logrotate가 로그 절단 작업을 수행합니다. 🎜🎜요약🎜🎜서버의 성능과 관리성을 유지할 수 있는 Nginx의 로그컷 기능 설정은 매우 필요합니다. logrotate 도구를 설치하고 로그 절단 구성 파일을 생성하고 예약된 작업을 설정하면 자동 로그 절단 기능을 구현할 수 있습니다. 이 기사에 제공된 특정 코드 예제가 Nginx 로그 절단 구성을 구현하는 데 도움이 되기를 바랍니다. 🎜

위 내용은 Nginx 로그 절단 구성을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.