Centos7配置httpd日志轮询

本文介绍了在CentOS7上配置httpd日志,包括设置组合日志格式,日志轮询以避免单个日志文件过大,以及忽略网站元素和健康检查日志,以优化日志记录并提高分析效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

httpd的日志格式有两种,分别是:
通用日志(Common Log Format)
组合日志(Combined Log Format)
工作当中一般会使用组合日志,因为组合日志记录的日志内容较多,便于进行后续的日志分析。

4.1 配置组合日志
在主配置文件的lon_config模块中,定义了两种类型的日志格式,combined和common:

[root@http-2 conf]# cat httpd.conf
<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

一般情况下,需要使用默认格式的日志即可。当然,httpd支持日志格式的改动,添加一些日志参数,可以得到更详细的日志。
如果要使用组合日志,只需要在CustomLog中,添加combined参数即可:

[root@http-2 extra]# vi httpd-vhosts.conf
<VirtualHost *:80>
    ServerAdmin 164767965@qq.com
    DocumentRoot "/web/www/"
    ServerName 192.168.235.83
    ErrorLog "logs/www-error_log"
    CustomLog "logs/www-access_log" combined
</VirtualHost>

重启服务:

[root@httpd-2 ~]# apachectl -t
Syntax OK
[root@httpd-2 ~]# apachectl graceful

查看访问日志:
通用日志格式:

[root@http-2 conf]# tail -l /var/log/httpd/www-access_log
192.168.235.1 - - [06/Jul/2019:19:53:20 +0800] "GET /favicon.ico HTTP/1.1" 404 209

组合日志格式:

[root@http-2 conf]# tail -l /var/log/httpd/www-access_log
192.168.235.1 - - [07/Jul/2019:03:51:08 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "http://192.168.235.83/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"

4.2 日志轮询配置
日志轮询是干什么用的?
网站访问量都是很大的,一直将日志存放到一个文件中,会导致这个文件很大,备份或者查询都不方便。日志轮询的工作就是可以按照设定的时间切割日志,比如每过一个小时就把日志自动切割开,生成一个新的日志文件,未来一个小时将日志存放到这个新日志文件当中,一直这样循环下去。日志轮询访问用户少的话可以不用配置,多的话需要配置。
安装日志切割软件cronolog:

[root@http-2 ~]# yum -y install cronolog

切割日志配置:

[root@http-2 ~]# which cronolog
/usr/sbin/cronolog
[root@http-2 ~]# vi /etc/httpd/conf/extra/httpd-vhosts.conf 
<VirtualHost *:80>
    ServerAdmin 164767965@qq.com
    DocumentRoot "/web/www/"
    ServerName 192.168.235.83
    ErrorLog "logs/www-error_log"
CustomLog "|/usr/sbin/cronolog  /var/log/httpd/www-access_%Y%m%d.log" combined
    #调用cronolog命令切割日志,使用命令的全路径
    #以天为单位进行切割,以小时就是%Y%m%d%H,以周就是%w
    #使用日志的全路径
</VirtualHost>

重启服务:

[root@httpd-2 ~]# apachectl -t
Syntax OK
[root@httpd-2 ~]# apachectl graceful

查看生成的日志文件:

[root@http-2 ~]# ll /var/log/httpd/
-rw-r--r-- 1 root root   155 Jul  7 04:10 www-access_20190707.log
[root@http-2 ~]# cat /var/log/httpd/www-access_20190707.log 
192.168.235.1 - - [07/Jul/2019:04:10:40 +0800] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0"

4.3 忽略网站元素日志
在工作中,保留日志,很多时候是为了计算访问量,而不需要计算图片等访问元素的日志。因为打开一个页面才算是一个访问量,可以使用mod_setenvif模块,将js、css图片等元素的日志忽略。

访问网页时,标题处总是有个小图片。当你打开网页时,除了有访问页面的日志,还有这个图片元素的访问日志。因此日志文件中的访问数量=真实访问数量+网站元素访问数量。

[root@http-2 ~]# vi /etc/httpd/conf/httpd.conf
在文件最后插入三行:
<FilesMatch "\.(css|js|gif|jpg|ico|swf)">
setEnv IMAG 1
</FilesMatch>

在虚拟主机配置文件中,调用IMAG:
[root@http-2 ~]# vi /etc/httpd/conf/extra/httpd-vhosts.conf   
<VirtualHost *:80>
    ServerAdmin 164767965@qq.com
    DocumentRoot "/web/www/"
    ServerName 192.168.235.83
    ErrorLog "logs/www-error_log"
    CustomLog "|/usr/sbin/cronolog  /var/log/httpd/www-access_%Y%m%d.log" combined env=!IMAG
</VirtualHost>

重启服务:

[root@httpd-2 ~]# apachectl -t
Syntax OK
[root@httpd-2 ~]# apachectl graceful

这样就只记录访问量的访问日志,不会记录ico文件的日志:“GET /favicon.ico HTTP/1.1” 404 209。

4.4 忽略健康检查日志
在实际工作用,httpd服务器前端都有负载均衡设备,负载均衡设备会定期向httpd服务器发送健康检查的请求,httpd服务器默认也会记录这些健康检查日志,而这些日志没有实际参考价值。因此,需要将健康检查日志过滤掉。
因为实验没有负载均衡设备,看不出效果。
修改虚拟主机配置文件:

[root@http-2 ~]# cat /etc/httpd/conf/extra/httpd-vhosts.conf   
SetEnvIf Request_URI "^check\.txt$" lbnolog  # 最上边加一句
<VirtualHost *:80>
    ServerAdmin 164767965@qq.com
    DocumentRoot "/web/www/"
    ServerName 192.168.235.83
    ErrorLog "logs/www-error_log"
    CustomLog "|/usr/sbin/cronolog  /var/log/httpd/www-access_%Y%m%d.log" combined env=!{IMAG,lbnolog}       #调用lbnolog
</VirtualHost>

重启服务:

[root@httpd-2 ~]# apachectl -t
Syntax OK
[root@httpd-2 ~]# apachectl graceful
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值