日積月累下,日誌檔案會越來越大,日誌檔案太大嚴重影響伺服器效率,須要定時對日誌檔案進行切割。
切割的方式有按月切割、按天切割、按小時切割,一般都是按天切割。
那麼如何進行切割呢?
思路:建立日誌檔案存放路徑
將日誌檔案以當天時間為名字進行重新命名
傳送kill -usr1訊號給nginx的主程序號,讓nginx重新生成乙個新的日誌檔案
思路知道了,能不能具體點,show me code
下面以每天凌晨00:00切割nginx的訪問日誌access_log為例,詳細講解切割步驟
#!/bin/bash
// nginx的日誌檔案路徑
logs_path="/data1/logs/"
// 建立日誌檔案存放路徑
mkdir -p $$(date -d "yesterday" + "%y")/$(date -d "yesterday" + "%m")/
// 將日誌檔案以當天時間為名字進行重新命名
mv $access.log $$(date -d "yesterday" +"%y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%y%m%d").log
// 傳送kill -usr1訊號給nginx的主程序號,讓nginx重新生成乙個新的日誌檔案
kill -usr1 `cat /var/nginx/nginx.pid`
// 進入編輯crontab
crontab -e
// 輸入配置
// div_nginx_log.sh指令碼的路徑要寫絕對路徑
00 00 * * * /bin/bash /root/div_nginx_log.sh
按上面兩個步驟來,這樣就大功告成了 使用shell指令碼對Nginx日誌進行切分
預設的日誌格式 main http user agent http x forwarded for 如預設的main日誌格式,記錄這麼幾項 遠端ip 遠端使用者 使用者時間 請求方法 如get post 請求體body長度 referer 資訊 http user agent使用者 蜘蛛 被 的請求...
goaccess對nginx日誌進行分析
goaccess旨在成為乙個基於終端的快速日誌分析器,其核心思想是實時快速分析和檢視web伺服器統計資訊,goaccess可分析apache nginx等web日誌,同時還支援生成html json csv等資料報告。環境 rhel7.3 root server1 tar zxf goaccess ...
使用Lumberjack zap進行日誌切割歸檔
為了新增日誌切割歸檔功能,我們將使用第三方庫lumberjack來實現。執行下面的命令安裝lumberjack go get u github.com natefinch lumberjack要在zap中加入lumberjack支援,我們需要修改writesyncer 我們將按照下面的 修改getl...