Nginx: 로그 설정 과 로그 정시 분할 백업

1. 로그 형식 설정
  • log_format
  • log_format main '$server_name $remote_addr - $remote_user [$time_local] "$request" '
                    '$status $upstream_status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for" '
                    '$ssl_protocol $ssl_cipher $upstream_addr $request_time $upstream_response_time';
    

    설정
    http {
         
            ##
            # Logging Settings
            ##
            log_format main '$server_name $remote_addr - $remote_user [$time_local] "$request" '
                            '$status $upstream_status $body_bytes_sent "$http_referer" '
                            '"$http_user_agent" "$http_x_forwarded_for" '
                            '$ssl_protocol $ssl_cipher $upstream_addr $request_time $upstream_response_time';
            # access_log off;
            access_log /var/log/nginx/access.log main;
            error_log /var/log/nginx/error.log;
    }
    

    수출
    localhost 171.168.1.3 - - [29/Jul/2020:14:16:12 +0800] "GET /nginx/xxx/xx/x?sign=xxxxx HTTP/1.1" 200 200 103 "https://xxx.example.com.cn/nginx/xx/xx/web?type=register&code=043tmemb1loe2A0h7lmb1HQemb1tmemF&state=123" "Mozilla/5.0 (Linux; Android 9; CLT-AL00 Build/HUAWEICLT-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045227 Mobile Safari/537.36 MMWEBID/1269 MicroMessenger/7.0.17.1720(0x27001135) Process/tools WeChat/arm64 NetType/WIFI Language/zh_CN ABI/arm64" "171.168.1.251:59808" - - 171.168.1.5:8070 0.021 0.020
    

    2. 로그 시간 분할 스 크 립 트
  • backup_log_nginx.sh

  • 어제 로 그 를 분할 하기 위해 스 크 립 트 를 만 듭 니 다.
    #!/bin/bash
    PATH_LOG=/var/log/nginx
    YESTERDAY=$(date -d "yesterday" +%Y%m%d)
    
    mv ${PATH_LOG}/access.log ${PATH_LOG}/access_${YESTERDAY}.log
    
    #USR1
    kill -USR1 `ps axu | grep "nginx: master process" | grep -v grep | awk '{print $2}'`
    exit 0
    
  • crontab

  • 정시 작업 설정, 매일 0 시 로그 분할 스 크 립 트 실행
    #  0 0   /root/devtools/backup_log_nginx.sh
    0 0 * * * /root/devtools/backup_log_nginx.sh
    

    3. 효과
    [root@MQ-SERVER nginx]# ls -l
        1451624
    -rw-r--r-- 1 nobody root 256285165 7   31 00:00 access_20200730.log
    -rw-r--r-- 1 nobody root 429102371 8    1 00:00 access_20200731.log
    -rw-r--r-- 1 nobody root 336208264 8    2 00:00 access_20200801.log
    -rw-r--r-- 1 nobody root 351997028 8    3 00:00 access_20200802.log
    -rw-r--r-- 1 nobody root  67568623 8    3 08:54 access.log
    

    좋은 웹페이지 즐겨찾기