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 "\033[32mPlease wait start cut log...\033[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


    免責聲明!

    本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



     
    粵ICP備18138465號   © 2018-2025 CODEPRJ.COM