nginx tengine 訪問日誌分片

2022-02-11 09:39:02 字數 955 閱讀 3558

nginx日誌按天分片是運維的基本要求,不僅可以減小檔案大小,方便檢索關鍵資料,也可以定時刪除過期的日誌。可是nginx和tengine預設並不支援檔案分片,因此需要額外處理。

另外,日誌分片需要借助ngx_http_log_module模組,預設通過yum安裝的nginx並不攜帶此模組,需要額外編譯。而tengine預設自帶了ngx_http_log_module模組,因此建議使用者直接原始碼編譯tengine即可。

日誌分片的原理是利用命名管道。linux下一切皆檔案,因此建立命名管道作為linux的訪問日誌,由第三方程式連線命名管道,獲取資料後按時間進行分片。這裡的第三方程式既可以是由使用者自己編寫的處理程式,也可使用開源的軟體,如 cronolog。下文採用cronolog實現日誌分片。

建立命名管道:mkfifo /opt/logs/nginx/access.log

啟動cronolog:

cronolog /opt/logs/nginx/access.log.%y-%m-%d <  /opt/logs/nginx/access.log &

cronolog /opt/logs/nginx/error.log.%y-%m-%d < /opt/logs/nginx/error.log &

修改nginx配置檔案:

http內

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

重啟nginx:nginx -s reload

用python指令碼分析apache訪問日誌

1.我有乙個名為access log的apache的日誌檔案,為了快速能知道這個日誌檔案中有哪些ip訪問了這個apache服務並且每個ip訪問了多少次,我還想知道客戶用了哪些瀏覽器訪問該apache服務並且這個瀏覽器用的次數。2 1 我用函式式程式設計的方法。import re defcount f...

10月28日上午 PHP資料訪問

1.建乙個連線 連線php和mysql db new mysqli localhost root 666 text1 造了乙個mysqli,開啟乙個連線,造了乙個連線物件。第乙個引數是ip位址或網域名稱,本地的就是localhost 第二個是使用者名稱 第三個是伺服器密碼 第四個是資料庫名稱 2.判...

Nginx訪問日誌 日誌切割 靜態檔案不記日誌

十二周三次課 1月4日 12.10 nginx訪問日誌 在主配置檔案中定義格式,在虛擬主機中 server 定義日誌路徑 vim usr local nginx conf nginx.conf 搜尋log format 在虛擬主機中 server 定義日誌路徑 vim usr local nginx...