root@zhangmengjunlinux ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.confphp
common表明访问日志的类型名字,咱们看一配置文件,在主配置文件咱们能看到日志的格式,名字 查找/common
linux
最好用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日这是按天切割的,那改一下期