centos中nginx按日期自動(dòng)分割訪問日志的方法
Web 訪問日志 (access_log) 記錄了所有外部客戶端對(duì)Web服務(wù)器的訪問行為,包含了客戶端IP,訪問日期,訪問的URL資源,服務(wù)器返回的HTTP狀態(tài)碼等重要信息。
一條典型的Web訪問日志如下:
192.168.50.195 - - [17/Jun/2016:23:59:12 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36" "-"1
1、 要解決問題:
當(dāng)網(wǎng)站訪問量大后,日志數(shù)據(jù)就會(huì)很多,如果全部寫到一個(gè)日志文件中去,文件會(huì)變得越來越大。文件大速度就會(huì)慢下來,比如一個(gè)文件幾百兆。寫入日志的時(shí)候,會(huì)影響操作速度。另外,如果我想看看訪問日志,一個(gè)幾百兆的文件,下載下來打開也很慢。
注意:使用第三方免費(fèi)的日志分析工具-日志寶,可以上傳nginx、apache、iis的日志文件,它們幫助分析網(wǎng)站安全方面。畢竟專攻,更加專業(yè)。日志寶對(duì)上傳的文件也是做了大小限制的,不超過50m。
2、日志自動(dòng)切割腳本編寫
nignx沒有自動(dòng)分開文件存儲(chǔ)日志的機(jī)制。由于nginx它不會(huì)幫你自動(dòng)分文件保存。所以,需要自己編寫腳本來實(shí)現(xiàn)。
#!/bin/bash # Program: # Auto cut nginx log script. # 2016/6/15 luozhibo # nginx日志路徑 /var/log/nginx/ LOGS_PATH=/var/log/nginx TODAY=$(date -d 'today' +%Y-%m-%d) #echo $TODAY # 移動(dòng)日志并改名 mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${TODAY}.log mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${TODAY}.log # 向nginx主進(jìn)程發(fā)送重新打開日志文件的信號(hào) kill -USR1 $(cat /var/run/nginx.pid)
上面shell腳本的原理是:
先把以前的日志文件移動(dòng)重命名,目的是就是備份。
3、crontab自動(dòng)任務(wù)配置
直接編寫vim /etc/crontab 或者 直接通過echo寫入自動(dòng)任務(wù)
echo '59 23 * * * root /var/log/nginx/nginx_log_division.sh >> /var/log/nginx/cutnginxlog.log 2>&1' >> /etc/crontab
每晚23:59分自動(dòng)執(zhí)行計(jì)劃任務(wù) 以root用戶身份運(yùn)行 將自動(dòng)任務(wù)的執(zhí)行日志(錯(cuò)誤和正確的日志)自動(dòng)寫入cutnginxlog.log “命令 >> 2>&1” 表示以追加方式將正確輸出和錯(cuò)誤輸出都保存到同一個(gè)文件中
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
redhat Server release 5.2 安裝配置簡(jiǎn)明教程
系統(tǒng)安裝:系統(tǒng)安裝采用光盤安裝,以前一直從USB移動(dòng)硬盤安裝,前幾天心血來潮,刻成了DVD,以示嚴(yán)肅和一切從頭開始,呵呵。2009-08-08探討如何減少Linux服務(wù)器TIME_WAIT過多的問題
本篇文章是對(duì)如何減少Linux服務(wù)器TIME_WAIT過多的問題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06Apache Rewrite url重定向功能的簡(jiǎn)單配置
Rewrite url重定向就是實(shí)現(xiàn)URL的跳轉(zhuǎn)和隱藏真實(shí)地址,基于Perl語言的正則表達(dá)式規(guī)范。平時(shí)幫助我們實(shí)現(xiàn)擬靜態(tài),擬目錄,域名跳轉(zhuǎn),防止盜鏈等2010-08-08