Apache日誌切割

root@zhangmengjunlinux ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.confphp


wKiom1aFRH6w3lq9AAA06EYUr9E441.pngcommon表明訪問日誌的類型名字,咱們看一配置文件,在主配置文件咱們能看到日誌的格式,名字 查找/commonwKioL1aFRYahPobIAABAAfpV9fk109.pnglinux

最好用combined格式,咱們也能夠自定義一個,就像是chrome

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedioapache

咱們如今用combined格式訪問日誌:customlog "Logs/test.com-access_log"combinedvim

日誌寫在什麼地方呢,你能夠放在Logs下,這個logs是相對路徑,相對於apache目錄來講的瀏覽器

[root@zhangmengjunlinux logs]# cd /usr/local/apache2/logs/ ssh

access_log  error_log  httpd.pidcurl

若是把那兩個日誌打開就會在這個目錄生成,生成這兩個文件ide

[root@zhangmengjunlinux logs]# ls工具

access_log  error_log  httpd.pid      test.com-access_log test.com-error_log

[root@zhangmengjunlinux logs]# cat test.com-access_log

192.168.140.2 - - [30/Dec/2015:23:16:12 +0800] "GET / HTTP/1.1" 301 - "http://www.test.com/forum.php" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36"

192.168.140.2就是它的來源IP,對照着咱們的格式%h 這就是來源IP

- -只不過%L %U 這兩個都是不存在的因此用「_"去替代了 %u是用戶,就好比說咱們去訪問abc的時候,咱們是否是要訪問usr1用戶,而後輸入密碼 abc/12.txt,能夠tail看一下

[root@zhangmengjunlinux logs]#tail test.com-access_log

92.168.140.2 - user1 [30/Dec/2015:23:17:01 +0800] "GET /abc/12.txt HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36"

- user1是否是這裏有user1啊,這就是咱們的user %U用戶,那這些是具體東西咱們均可以在apache的官方網站文檔裏找到它對應的含義

%t:時間[30/Dec/2015:23:17:01 +0800]

%r:就是動做 「GET」或者「POST" 

這個就是referer,什麼叫作referer呢,就是你訪問這個地址的時候它從哪裏來的:"http://www.test.com/forum.php" referer後面是他的user agent也就是瀏覽器的表識"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36",那好比行咱們的谷歌瀏覽器 chrome IE瀏覽器 或者說咱們的curl

192.168.140.100 - - [30/Dec/2015:22:53:33 +0800] "HEAD http://www.test.com/ HTTP/1.1" 301 - "-" "curl/7.19.7 (i386-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2"

瀏覽器不同,訪問的標識是不同的,那就是說這個user agent是頗有用的,咱們能夠根據它去限制一些IP,只要是curl的這些user agent我就可讓它403,

這麼多的訪問記錄。咱們應該去作一個歸檔,天天去作一個切割,今天以今天的日期重命名,明天能夠用明天的日期重命名,而後一個日誌一個日誌的把它作好切割,而後過了一個月之後咱們的老日誌沒用了,咱們要把它刪除掉,爲了防止咱們的磁盤去無限的增加,怎麼作切割呢

[root@zhangmengjunlinux logs]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

方法很簡單,用一個工具,首先是」|「管道符的意思,咱們用這個工具

 CustomLog "|/usr/local/apache2/bin/rotatelogs -l  /usr/local/apache2/logs/test.com-access_%Y%m%d_log 86400" combined

咱們存放日誌的地方要用絕對路徑 /usr/local/apache2/logs

用絕對路徑的目的是防止這個日誌找不到,那麼它的日誌格式須要加一個時間戳,這個就跟date那個命令相似,這個日誌是按天分割的86400秒也就是一天 ErrorLog也以這樣的格式作切割,但畢竟Errorlog是少的,因此不用去作切割,咱們只切割訪問日誌

#apchectl -t 

#syntax ok

#apachectl restart

[root@zhangmengjunlinux logs]# ls

access_log  error_log  httpd.pid  test.com-access_20151230_log  test.com-access_20151231_log  test.com-access_log  test.com-error_log

2015年12月30日這是按天切割的,那改一下期

wKioL1aFUhWibmBgAAA1FHcJXm4519.png

相關文章
相關標籤/搜索