centos中nginx按日期自動分割訪問日誌

來源:互聯網
上載者:User
Web 存取日誌 (access_log) 記錄了所有外部客戶端對Web伺服器的訪問行為,包含了用戶端IP,訪問日期,訪問的URL資源,伺服器返回的HTTP狀態代碼等重要訊息。
一條典型的Web訪問日誌如下:

192.168.50.195 - - [17/Jun/2016:23:59:12 +0800] "GET / HTTP/1.1"3040"-""Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36""-"

1、 要解決問題:

當網站訪問量大後,日誌資料就會很多,如果全部寫到一個記錄檔中去,檔案會變得越來越大。檔案大速度就會慢下來,比如一個檔案幾百兆。寫入日誌的時候,會影響操作速度。另外,如果我想看看訪問日誌,一個幾百兆的檔案,下載下來開啟也很慢。

注意:使用第三方免費的日誌分析工具-日誌寶,可以上傳nginx、apache、iis的記錄檔,它們協助分析網站安全方面。畢竟專攻,更加專業。日誌寶對上傳的檔案也是做了大小限制的,不超過50m。

2、日誌自動切割指令碼編寫

nignx沒有自動分開檔案儲存體日誌的機制。由於nginx它不會幫你自動分檔案儲存。所以,需要自己編寫指令碼來實現。

#!/bin/bash# Program:#     Auto cut nginx log script.# 2016/6/15  luozhibo # nginx日誌路徑 /var/log/nginx/LOGS_PATH=/var/log/nginxTODAY=$(date -d'today' +%Y-%m-%d)#echo $TODAY# 移動日誌並改名mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${TODAY}.logmv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${TODAY}.log# 向nginx主進程發送重新開啟記錄檔的訊號kill -USR1 $(cat /var/run/nginx.pid)

上面shell指令碼的原理是:

先把以前的記錄檔移動重新命名,目的是就是備份。

3、crontab自動任務配置

直接編寫vim /etc/crontab 或者 直接通過echo寫入自動任務

echo '5923 * * * root /var/log/nginx/nginx_log_division.sh >> /var/log/nginx/cutnginxlog.log2>&1' >> /etc/crontab

每晚23:59分自動執行計畫任務
以root使用者身份運行
將自動任務的執行日誌(錯誤和正確的日誌)自動寫入cutnginxlog.log
“命令 >> 2>&1” 表示以追加方式將正確輸出和錯誤輸出都儲存到同一個檔案中

4、參考連結:

nginx自動切割訪問日誌

以日期為檔案名稱來儲存nginx日誌

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
  • ').text(i)); }; $numbering.fadeIn(1700); }); });

    以上就介紹了 centos中nginx按日期自動分割訪問日誌,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.