Linux----------nginx日志分析

目录

    nginx常规日志分析 {此篇借鉴 小马哥 Maximilian Kalbfell}

    Nginx日志的格式在nginx.conf里面配置,常见的格式配置如下:
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';
    access_log logs/access.log main;

    解释:
    $remote_addr, $http_x_forwarded_for 记录客户端IP地址
    $remote_user 记录客户端用户名称
    $request 记录请求的URL和HTTP协议
    $status 记录请求状态
    $body_bytes_sent 发送给客户端的字节数,不包括响应头的大小; 该变量与Apache模块mod_log_config里的“%B”参数兼容。
    $bytes_sent 发送给客户端的总字节数。
    $connection_requests 当前通过一个连接获得的请求数量。
    $http_referer 记录从哪个页面链接访问过来的
    $http_user_agent 记录客户端浏览器相关信息
    $request_length 请求的长度(包括请求行,请求头和请求正文)。
    $request_time 请求处理时间,单位为秒,精度毫秒; 从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止。

    Nginx 是一个非常轻量的 Web 服务器,但是访问日志不会自动切割也算nginx一大缺点,一下附加一个自动切割nginx日志的脚本,供大家参考。(这里使用最简单的MV方式)

    #!/bin/bash
    S_LOG=/usr/local/nginx/logs/access.log
    D_LOG=/data/backup/`date +%Y%m%d`
    echo -e "33[32mPlease wait start cut log...33[1m"
    sleep 2
    if [ ! -d $D_LOG ];then
    mkdir -p $D_LOG
    fi
    mv $S_LOG $D_LOG
    kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
    echo "-------------------------------------------"
    echo "The Nginx log Cutting Successfully!"
    echo "You can access backup nginx log $D_LOG/access.log files."
    vim /var/spool/cron/root (相当于crontab -e)
    0 0 * * * /bin/sh /data/sh/auto_nginx_log.sh >>/tmp/nginx_cut.log 2>&1
    

    此篇借鉴 小马哥 Maximilian Kalbfell

    原文地址:https://www.cnblogs.com/wangchengshi/p/10966778.html