• Nginx高性能服务器安装、配置、运维 (6) —— Nginx日志及日志分割


     

    七、Nginx日志及日志分割

    (1)Nginx日志文件

    查看Nginx配置文件:

    找到access_log,yum安装默认存储在/var/log/nginx目录下,且默认main格式:

    main格式定义:

    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
             '$status $body_bytes_sent "$http_referer" '
                 '"$http_user_agent" "$http_x_forwarded_for"';

    以上含义:

    访问IP  -  访问用户[访问时间]  请求方法(GET/POST)    请求体body长度   referer来源信息

    http-user-agent用户代理/蜘蛛   被转发的请求的原始IP

    查看默认main格式的日志文件:

    (2)Nginx日志分割

     Nginx不同于apache,需要将其日志进行定期切割,不然日志文件的日积月累会越加庞大,导致读取缓慢,为此需要做定时切割任务。

     实验性步骤:

    a.查看 日志文件位置

     

     b.撰写日志分割脚本

     

     脚本代码:

    base_path='/var/log/nginx'                    #设定默认日志文件所在目录
    log_path=$(date -d yesterday +"%Y%m")             #设定新日志文件目录
    day=$(date -d yesterday +"%Y%m%d%H%M")           #设定日期变量 
    mkdir -p $base_path/logs/$log_path                #创建日志存放目录(按月)
    mv $base_path/access.log $base_path/logs/$log_path/access_$day.log    #移动Nginx默认日志文件并按date变量重命名
    kill -USR1 `cat /var/run/nginx.pid`                 #重读日志

     c.Crontab 定时执行:

     代码:*/1 * * * * sh /var/log/nginx/cutlog.sh           #每分钟执行一次

    d.每隔1分钟刷新访问服务器,发现自动化脚本已被执行,每分钟生成一个日志文件:

    最终自动化执行脚本代码:

    base_path='/var/log/nginx'
    log_path=$(date -d yesterday +"%Y%m")
    day=$(date -d yesterday +"%Y%m%d")
    mkdir -p $base_path/logs/$log_path
    mv $base_path/access.log $base_path/logs/$log_path/access_$day.log
    kill -USR1 `cat /var/run/nginx.pid`

    01 00 * * * /var/log/nginx/cutlog.sh           #设定每天凌晨0点执行

     (本文由kayvan编辑发表,内容主要收集于互联网,转载请注明出处:http://www.cnblogs.com/kayvan

  • 相关阅读:
    StringUtils 之 hasLength()
    XML命名空间详解
    Spring bean属性 abstract、parent
    Springboot thymeleaf <thymeleaf‐layout‐dialect.version>2.2.2</thymeleaf‐layout‐dialect.version>标签导入报错
    Springboot 处理静态资源
    git命令
    nftables--linux
    debian handbook手册
    tcp和ip header
    linux内核参数-rp_filter
  • 原文地址:https://www.cnblogs.com/kayvan/p/3978785.html
Copyright © 2020-2023  润新知