nginx log

Younghwan Cha·2023년 1월 27일
0

nginx

목록 보기
4/7
post-thumbnail

error_log

https://www.digitalocean.com/community/tutorials/nginx-access-logs-error-logs

# Syntax:	error_log file [level];
Default: error_log logs/error.log error;
Context: main, http, mail, stream, server, location

http {
	...
    error_log /dev/stderr
}

access_log

# access_log log_file log_format

http {
	...
    log_format custom '$remote_addr - $remote_user [$time_local] '
    					'"$request" $status $body_bytes_sent '
                        '"$http_referer" "$http_user_agent" "$gzip_ratio"';
                        
    access_log /dev/stdout custom;
}

변수 관련 정보
http://nginx.org/en/docs/varindex.html

logrotate


사용자가 꽤 있는 서비스의 경우 nginx log 가 금방 커져 용량을 차지하게 된다.
이 경우 logrotate 을 통해서 로그 파일을 관리하는 것이 디스크 측면에서 좋다.

logrotate 설정을 위해 /etc/logrotate.d/nginx 에 하단과 같이 작성한다.

/var/log/nginx/*.log {
        daily
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        create 640 nginx adm
        sharedscripts
        postrotate
                if [ -f /var/run/nginx.pid ]; then
                        kill -USR1 `cat /var/run/nginx.pid`
                fi
        endscript
}

위에 기입된 옵션은 다음과 같다.

  • missingok : 로그 파일이 없어도 에러를 내지 않음
  • rotate 52: 로그 파일을 52개까지만 보관(53일 이전것은 삭제), 필요한 경우 숫자를 조정해서 로그 보관 일수를 변경
  • compress: 압축해서 보관
  • notifempty: 빈 로그파일은 로테이트 x.

이후에 아래 명령어를 통해서 logrotate 를 적용한다.

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

[logrotate] https://www.lesstif.com/system-admin/nginx-log-rotate-logrotate-75956229.html

rsyslog 를 통한 DB 사용

rsyslog 를 통해서 database server 에 accesss log 를 전달 할 수 있다.

[nginx log to db] https://smythdesign.com/blog/logging-nginx-to-database/
[nginx log to pg] https://blog.supersetinc.com/2018/04/09/high-performance-logging-nginx-postgres-using-rsyslog/


http://nginx.org/en/docs/ngx_core_module.html

profile
개발 기록

0개의 댓글