1、Apache 通路日志

輸入指令 cat /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回車,見下圖,
這個虛拟機的通路日志就在 /logs/111.com-access_log 裡面,輸入指令 ls /usr/local/apache2.4/logs/ ,可以看到通路日志檔案,見下圖,
可以使用指令 cat /usr/local/apache2.4/logs/111.com-access_log,檢視一下内容,回車,見下圖,
這邊顯示的日志太簡單,看不出什麼重要資訊,可以定義一下日志的格式,打開主配置檔案,輸入指令 vim /usr/local/apache2.4/conf/httpd.conf,回車,搜尋 /LogFormat,見下圖,
LogFormat 後面就是日志的格式,後面白色單詞為 common 的是預設格式。上一行的 User-Agent,是使用者代理的意思,例如浏覽器和curl。Referer 表示在浏覽器上記錄上一次通路的網址。現在更改虛拟主機配置檔案,輸入 :q!,回車,強制退出上圖界面。輸入指令 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回車,見下圖,
更改上圖紅色框框的内容為 combined,儲存并退出。接着往下操作,
然後用浏覽器通路 111.com/123.php ,見下圖,
接着回到 putty ,輸入指令 cat /usr/local/apache2.4/logs/111.com-access_log,檢視最後幾行,見下圖,
明顯比之前的豐富。
2、通路日志不記錄靜态檔案
現在登入一個網站,按F12(筆記本電腦按Fn+F12),右側就會出現一個界面,見下圖,
選擇 Network 頁面,再重新整理網頁,就能看到下圖界面,
可以看到,通路的是一個網站,但是加載的東西卻非常多。每一行都表示一個元素,這些請求和通路都會被記錄在通路日志裡。把滑鼠放在行項目上就顯示一個位址,點選進去也可以看到位址,見下圖,
這個位址就是一個請求,會被記錄在通路日志裡。如果每一條都記錄在日志裡的話,産生的内容會非常多,占用的記憶體也非常大,這明顯是不合理的。是以需要更改配置檔案,将圖檔、css、js等内容排除掉,不做記錄。接下來更改虛拟主機的配置檔案,輸入指令 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回車,見下圖,
在上圖紅色框框的位置,插入以下内容:
SetEnvIf Request_URI "..gif$" img
SetEnvIf Request_URI "..jpg$" img
SetEnvIf Request_URI "..png$" img
SetEnvIf Request_URI "..bmp$" img
SetEnvIf Request_URI "..swf$" img
SetEnvIf Request_URI "..js$" img
SetEnvIf Request_URI ".*.css$" img
下面一句的後面,加入 env=!img,儲存并退出。“”雙引号裡面内容是正規表達式,後面的 img 是标記,env=!img 意思為将标記為 img 的内容都不做記錄。
這邊先不重新加載配置檔案,也就是說剛剛更改的内容暫不生效,先做 一個實驗,輸入指令 curl -x127.0.0.1:80 111.com/aghjkk.jpg -I,回車,見下圖,
aghjkk.jpg 是不存在的檔案,随機填寫的。檢視日志的時候,還能看到這條 jpg 的記錄。接着重新加載配配置檔案,見下圖,
來檢查一下 jpg 和 png,是否有記錄,具體操作見下圖,
可以看到,jpg5 有記錄,jpg 和 png 都沒有記錄。
圖檔使用 putty 上傳比較麻煩,這邊不示範了。
使用指令 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回車,見下圖,
将 env=!img 這些字元,删除掉,儲存并退出。重新加載一下配置檔案,接着通路 jpg、png,見下圖,
可以看到删除 env=!img,通路 jpg、png 都會被記錄。驗證這一點後,再把 env=!img 加上去,這邊不示範了。
需要注意的是 img 這個名字是随意的,取名 lys 也是可以的。
3、通路日志切割
輸入指令 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回車,見下圖,
更改上圖紅色框框的内容,儲存并退出。rotatelogs 是 apache 自帶的切割工具,-l 以目前系統的時間(CST)為基準,不指定 -l 就會以 UTC 時間為基準切割日志。再定義一下日志的名字,%Y%m%d 表示年月日。然後定義切割一次的時間,一般是一天,換算成秒就是 86400。
重新加載配置檔案,見下圖,
現在還沒有日志生成,要做一些通路,才可以看到通路日志,見下圖,
可以看到通路日志裡面,就是剛剛通路的那一條。接着驗證,見下圖,
現在的日志是每天一個,還需要做一個計劃,把超過一個月或是兩個月的日志删除掉,這樣才不會占用空間,并且讓日志切割變的有意義,查找的時候也會很友善。