美文网首页
Nginx系列3:nginx日志配置与日志切割

Nginx系列3:nginx日志配置与日志切割

作者: joyitsai | 来源:发表于2019-04-01 15:02 被阅读0次

    1. 日志配置

    我们观察nginx的server段,可以看到如下类似信息
    #access_log logs/host.access.log main; 其中,access_log指令用于声明nginx日志的文件路径和日志格式。
    这说明该server的访问日志的文件是 相对路径 logs/host.access.log ,使用的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"';
    

    main格式是我们定义好一种日志的格式,并起个名字,便于引用:

    • 1. 日志格式是指记录哪些选项:

    默认的日志格式main

    • 远程IP($remote_addr)
    • 远程用户($remote_user)
    • [用户时间($time_local)]
    • 请求方法("$request")
    • 请求状态吗($status)
    • 请求体body长度 ($body_bytes_sent)
    • referer来源信息("$http_referer")
    • 用户代理/蜘蛛($http-user-agent)
    • 被转发的请求的原始IP($http_x_forwarded_for)

    2. 日志切割

    实际应用: shell+定时任务+nginx信号管理,完成日志按日期存储

    • 分析思路:

    (1) 凌晨02时00分, 把昨天的日志重命名,放在相应的目录下
    (2) 再USR1信息号控制nginx重新生成新的日志文件

    • 具体脚本 logsback.sh:

    #!/bin/bash
    base_path=/usr/local/nginx/logs
    log_path=$(date -d yesterday +%Y%m)
    day=$(date -d yesterday +%d)
    
    #在logs/目录下,创建以`年月`命名的文件夹,存放当月的日志文件
    mkdir -p $base_path/$log_path
    
    #将logs/目录中的日志文件备份到 logs/年月文件夹/sccess_日.log的新日志文件中
    mv $base_path/access.log  $base_path/$log_path/access_$day.log
    
    #重新生成新的日志文件,当日日志到此切割一次
    kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
    
    • 定时任务:

    要想.sh脚本每天在凌晨一点钟执行一次,完成当日的日志切割,就需要用crontab 编辑定时任务,每天02时00分(建议在02-04点之间,系统负载小):
    0 2 */1 * * sh /xxx/path/logsback.sh

    crontab文件的含义:

    用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:
    minute hour day month week command

    其中:
    minute: 表示分钟,可以是从0到59之间的任何整数。
    hour:表示小时,可以是从0到23之间的任何整数。
    day:表示日期,可以是从1到31之间的任何整数。
    month:表示月份,可以是从1到12之间的任何整数。
    week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
    command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

    相关文章

      网友评论

          本文标题:Nginx系列3:nginx日志配置与日志切割

          本文链接:https://www.haomeiwen.com/subject/kzwmbqtx.html