zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    作业五:团队项目——项目启动及需求分析
    结对编程项目---四则运算
    PSP记录个人项目耗时情况
    代码复查
    是否需要有代码规范?
    编写一个能自动生成小学四则运算题目的程序。
    目前流行的源程序版本管理软件和项目管理软件的优缺点
    在Github注册账户
    浏览完整部教材,列出不懂的5-10个问题
    FZU 1683 纪念SlingShot(矩阵水)
  • 原文地址:https://www.cnblogs.com/kayvan/p/3978785.html
Copyright © 2011-2022 走看看