Nginx日誌處理

2021-07-04 22:01:02 字數 1094 閱讀 1128

nginx日誌切割一般的做法是:系統設定每天00:00執行指令碼,mv後重新開啟日誌檔案。但在切割後的日誌中,除了昨天的日誌外,還有少量的當天的日誌,例如,0點之前是10號,那麼切割後會有少量11號的日誌,因為執行mv是需要時間的,即使是很短,期間會有少量日誌寫進去。

下面是兩個nginx日誌處理指令碼:

1、每日凌晨日誌分割,生成前天日誌檔案,rsync傳送到日誌伺服器待分析。

2、日誌伺服器合併各站台日誌,排序分離,生成按時間排序的前天、當天日誌檔案

3、web機保留一天日誌,日誌伺服器保留合併、排序後的兩天日誌檔案。

普通的兩個指令碼(甚至沒有考慮效能),可貴之處在於經過自己學習shell,按照需求編寫實現的。

nginx_log.sh

# ip address

ip_address=`/sbin/ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk ''`

mv /usr/local/nginx/logs/access.log $/access_$_$(date -d "yesterday" +"%y%m%d").log

kill -usr1 `cat /usr/local/nginx/logs/nginx.pid`

nginx_log_server.sh

sort -m -t " " -k 3 -o $log_path/$log_name $log_path/access_*_$(date -d "1 days ago" +"%y%m%d").log

regex="\[$(date -d "0 days ago" +"%d\/%b\/%y")"

sed -n "/$regex/p" $log_path/$log_name > $/access_crontab_$(date -d "0 days ago" +"%y%m%d").log

sed -i "/$regex/d" $log_path/$log_name

使用者名稱與密碼都是www.linuxidc.com

nginx日誌處理

今日運維同事發現nginx伺服器磁碟使用率很高,經過排查主要有2個大檔案 nginx logs 目錄下的access.log檔案 nginx 目錄下的on 檔案 client max body size 60m 上傳檔案大小設定 access log on 訪問日誌 access.log檔案,我記得...

Nginx日誌配置處理

一 介紹日誌檔案格式 日誌檔案的記錄是有格式的,我們可以按系統預設的格式去記錄,也可以按我們自定義的格式去記錄。可以用log format指令來設定nginx伺服器的日誌檔案的記錄格式。二 日誌格式說明 http user agent http x forwarded for main 日誌格式 r...

Nginx日誌499報錯處理

499對應的是 client has closed connection 這很有可能是因為伺服器端處理的時間過長,客戶端自己斷開連線解決問題 proxy ignore client abort on 讓 服務端不要主動關閉客戶端的連線。預設 proxy ignore client abort 是關閉...