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

    • 相关阅读:
      POJ 1995
      POJ 3233
      HDU 2815
      POJ 2417
      POJ 3243
      HDU 3579 线性同余方程组
      HDU 1573
      POJ 2115
      POJ 2891
      HDU 2035 不忍直视的水
    • 原文地址:https://www.cnblogs.com/wangchengshi/p/10966778.html
    Copyright © 2011-2022 走看看