设为首页 收藏本站
查看: 1710|回复: 0

[经验分享] apache日志切割

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2016-3-24 08:20:26 | 显示全部楼层 |阅读模式
对于搭建的网站来说,访问的话就会有访问日志。

就对我们所搭建的discuz论坛来说,访问这个论坛就会有日志产生。
[iyunv@No ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
找到以下内容:  
    ErrorLog "logs/dummy-host.example.com-error_log"
    CustomLog "logs/dummy-host.example.com-access_log" common

ErrorLog是错误日志,CustomLog就是访问日志。
customlog就是apache的访问日志。
CustomLog "logs/dummy-host.example.com-access_log"  common
//common表示日志的类型,名字。
日志的路径是一个相对路径,在/usr/local./apache2/logs下。

修改为以下内容:
1
2
ErrorLog "logs/test.com-error_log"
CustomLog "logs/test.com-access_log" combined




:wq
//日志类型修改成combined

[iyunv@No ~]# apachectl -t
Syntax OK
[iyunv@No ~]# apachectl graceful
重新加载过apache后,刷新几次网页,现在我们来查看一下访问日志。
[iyunv@No ~]# tail /usr/local/apache2/logs/test.com-access_log
可以看到很多的访问信息,我们以其中一条为例子,来看一下每段的含义。

#192.168.179.1——[17/Nov/2015:19:11:43 +0800] "GET /forum.php
mod=ajax&action=forumchecknew&fid=2&time=1447758300&inajax=yes HTTP/1.1" 200 64 "http://www.iyunv.com/forum.php?mod=forumdisplay&fid=2" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 UBrowser/5.5.6743.204 Safari/537.36"

在apache的配置文件中找到以下内容,此内容和上面的访问日志是一一对应的。
[iyunv@No ~]# vim /usr/local/apache2/conf/httpd.conf
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

%h就是来源ip即客户端ip,%l和%u是不存在的所以用——表示,%u是用户user,
%t时间,\"%r\" 表示动作,这里的动作是GET。
\“%{Referer}i\”指的是,它从哪里跳过来的。 比如你访问的一个网页地址是 http://123.com/1.html 这个页面中有一个网址http://234.com/2.html 你直接点这个链接进入到了 234.com/2.html 那这时候,日志中会记录一条日志 2.html 它的referer是 http://123.com/1.html
"%{User-Agent}i\"是浏览器的标示,可以用标示限制一些访问,比如用curl访问的我们可以去做一个限制,让它访问时候显示403.
%>s 可以用于记录请求的最终状态.

日志如果不去管理会越来越多,会占用磁盘的很多空间。就需要我们去做日志切割,然后每隔一段时间去清除旧的访问日志。


日志切割:
[iyunv@No ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
找到
ErrorLog "logs/test.com-error_log"
CustomLog "logs/test.com-access_log" combined
修改为:
1
2
CustomLog "|/usr/local/apache2/bin/rotatelogs  -l
/usr/local/apache2/logs/cest.com-access_%Y%m%d_log 86400" combined




|/usr/local/apache2/bin/rotatelogs -l   :切割工具。
/usr/local/apache2/logs/clnice.com-access_log_%Y%m%d_log 86400
使用绝对路径,防止切割工具找不到这个日志。
//%Y%m%d   加上时间戳,四位的年,两位的月,两位的日
86400是秒相当于一天,就以一天为间隔切割。

错误日志是比较少的,可以不设置日志分割。

保存虚拟配置文件,重新加载apache后,刷新几下discuz论坛网页,我们再来看logs目录下的日志文件。可以看到test.com-access_20160323_log 这样格式的日志文件。


[iyunv@No logs]# apachectl -t
Syntax OK
[iyunv@No logs]# apachectl graceful
[iyunv@No logs]# ls
access_log  httpd.pid                     test.com-access_log
error_log   test.com-access_20160323_log  test.com-error_log



apache 日志切割问题

apache的日志是可以自动切割的。
方法一: 使用 cronolog 为每一天建立一个新的日志
CustomLog "|bin/cronolog logs/access_%Y%m%d.log" combined

也可以按小时
CustomLog "|bin/cronolog logs/access_%Y%m%d%h.log" combined

方法二:使用 rotatelogs 每一天记录一个日志
CustomLog "|bin/rotatelogs -l logs/access_%Y%m%d.log 86400" combined

每小时
CustomLog "|bin/rotatelogs -l logs/access_%Y%m%d%H.log 3600" combined

再看apache rotatelogs语法

rotatelogs [ -l ] logfile [ rotationtime [ offset ]] | [ filesizeM ]

选项

-l

使用本地时间代替GMT时间作为时间基准。注意:在一个改变GMT偏移量(比如夏令时)的环境中使用-l会导致不可预料的结果。所以一定要加上-l 否则出现的日志时间和实际时间是相差8小时的。

logfile

它加上基准名就是日志文件名。如果logfile中包含”%”,则它会被视为用于strftime()的格式字符串;否则它会被自动加上以秒为单位的”.nnnnnnnnnn”后缀。这两种格式都表示新的日志开始使用的时间。

rotationtime

日志文件滚动的以秒为单位的间隔时间。

offset

相对于UTC的时差的分钟数。如果省略,则假定为”0″并使用UTC时间。比如,要指定UTC时差为”-5小时”的地区的当地时间,则此参数应为”-300″。

filesizeM

指定以filesizeM文件大小滚动,而不是按照时间或时差滚动。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-194931-1-1.html 上篇帖子: apache不记录指定文件类型日志 下篇帖子: apache用户认证 切割
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表