管理Apache服务器访问日志
1.相关配置文件说明
一个优秀的Linux网络管理员会密切关注服务器日志系统,这些日志可以提供异常访问的线索。Apache可以记录所有的访问请求,同样,错误的请求也会记录。Apache配置文件中,需要关心的和日志相关的配置文件有两个:
$ CustomLog /www/logs/access_log common #记录对Web站点的每个进入请求#
$ ErrorLog /www/logs/error_log #记录产生错误状态的请求#
CustomLog用来指示Apache的访问日志存放的位置(这里保存在/www/logs/access_log中)和格式(这里为common);ErrorLog用来指示Apache的错误信息日志存放的位置。对于不配置虚拟主机的服务器来说,只需直接在httpd.conf中查找CustomLog配置进行修改即可。而对于具有多个虚拟服务器的Web服务器来说,需分离各个虚拟服务器的访问日志,以便对各个虚拟服务器进行访问统计和分析,因此,需要在虚拟服务器配置中进行独立的日志配置。
2.Web服务器日志轮循
Web服务器日志轮循比较好的方式有三种:第一种方法是利用Linux系统自身的日志文件轮循机制logrotate;第二种方法是利用Apache自带的日志轮循程序rotatelogs;第三种是使用在Apache的FAQ中发展已经比较成熟的日志轮循工具cronolog。对于大型的Web服务器来说,往往使用负载均衡技术提高Web站点的服务能力,这样后台有多个服务器提供Web服务,大大方便了服务的分布规划和扩展。如果有多个服务器,需要对日志进行合并,统一进行统计分析。因此为了保证统计的精确性,需要严格按照每天的时段来自动生成日志。
(1)用logrotate实现日志轮循
首先讨论采用Linux系统自身的日志文件轮循机制logrotate的方法。logrotate是Linux系统自身带的一个日志轮循程序,是专门对各种系统日志(syslog、mail)进行轮循的程序。该程序是由运行程序的服务crond每天凌晨4:02运行的。在/etc/cron.daily目录下可以看到logrotate文件:
#!/bin/sh/
$ usr/sbin/logrotate /etc/logrotate.conf
每天凌晨crond都会启动/etc/cron.daily目录下的logrotate脚本来进行日志轮循。在/etc/logrorate. conf中可以看到如下内容:
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp -- we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1
}
# system-specific logs may be also be configured here.
从logrotate的配置文件中可以看到,除了wtmp以外,需要滚动的日志的配置都保存在/etc/logroate.d目录下。因此只需要在该目录下创建一个名为apache的配置文件,来指示logrotate如何轮循Web服务器的日志文件即可。这种方法的优点是不需要其他第三方工具就可以实现日志轮循。但是对于重负载的服务器和使用负载均衡技术的Web服务器来说,这种方法不是很实用,因为它是对相应服务进程发出一个"-HUP"重启命令来实现日志的截断归档的,这样会影响服务的连续性。
(2)用rotatelogs实现日志轮循
Apache提供了不把日志直接写入文件,而是通过管道发送给另外一个程序的能力。这样就大大加强了对日志进行处理的能力。这个通过管道得到的程序可以是任意程序,如日志分析、压缩日志等。要实现将日志写到管道的操作,只需要将配置中日志文件部分的内容替换为"|程序名"即可,例如:
# compressed logs
$ CustomLog "|/usr/bin/gzip -c >> /var/log/access_log.gz" common
这样就可以使用Apache自带的轮循工具rotatelogs来对日志文件进行轮循。rotatelogs基本是按时间或大小来控制日志的。
$ CustomLog "|/www/bin/rotatelogs /www/logs/secfocus/access_log 86400" common
例:
CustomLog "|/usr/sbin/rotatelogs /var/www/vhosts/591wed.com/statistics/logs/access_log_%Y_%m_%d 86400" plesklog
ErrorLog "|/usr/sbin/rotatelogs /var/www/vhosts/591wed.com/statistics/logs/error_log_%Y_%m_%d 86400"
上面内容表示,Apache访问日志被发送给程序rotatelogs;rotatelogs将日志写入/www/logs/ secfocus/access_log,并每隔86 400秒(1天)对日志进行一次轮循。轮循以后的文件名为/www/logs/ secfocus/access_log.nnn,这里nnn是开始记录日志的时间。因此,为了将日志按天对齐需要在凌晨00:00启动服务,使得每天轮循得到的日志刚好是完整一天的日志,以提供给访问统计分析程序进行处理。如果是00:00开始生成新的日志,那么轮循得到的日志就是access_log.0000。
(3)用cronolog实现日志轮循
首先需要下载和安装cronolog,可以到http://www.cronolog.org下载最新版本的cronolog。下载完毕以后,解压安装即可。这样就完成了cronolog的配置和安装,默认情况下,cronolog安装在/usr/local/sbin下。修改Apache日志配置命令如下所示:
$ CustomLog "|/usr/local/sbin/cronolog /www/logs/secfocus/%w/access_log" combined
这里%w表示按照日期在不同的目录下保存日志,这种方式会保存一周的日志。为了进行日志分析,需要每天将该日志文件复制(或移动,如果不希望保存一周的日志)到一个固定的位置,以方便日志分析统计文件进行处理(使用crontab -e)。添加定时任务如下:
$ 5 0 * * * /bin/mv /www/logs/secfocus/`date -v-1d +\%w`/access_log
/www/logs/secfocus/access_log_yesterday
再使用日志统计分析程序,对文件access_log_yesterday进行处理。对于这种情况,各个服务器定义或移动日志文件时就不能使用access_log_yesterday了,而应该带上服务器编号(例如服务器IP地址等信息)加以区分。然后在各个服务器上运行网站镜像和备份服务rsyncd,再将每个服务器每天的安装配置文件通过rsyncd下载到专门进行访问统计分析的服务器上进行合并。合并多个服务器的日志文件(如log1、log2、log3),并输出到log_all中的方法是:
$ sort -m -t " " -k 4 -o log_all log1 log2 log3
-m表示使用merge优化算法;-k 4表示根据时间进行排序;-o表示将排序结果存放到指定的文件中。
转载于:https://www.cnblogs.com/591wed/archive/2012/07/10/2584978.html
管理Apache服务器访问日志相关推荐
- phpstudy mysql日志_phpstudy日志在哪里,怎么开启apache的访问日志
如题: 新安装的phpstudy默认apache访问日志是没有开启的,默认开启的只有一个错误日志,如果想打开访问日志,需要自己配置一下,方法也简单,找到对应的文件取消日志那行前面的#这个符号就行,(摘 ...
- 本地Apache服务器访问时502 Server dropped connection 错误解决方法
本地Apache服务器访问时502 Server dropped connection 错误解决方法 参考文章: (1)本地Apache服务器访问时502 Server dropped connect ...
- Apache服务器访问过慢分析及解决
起因:线上的一台服务器,最近总是出现 访问 很慢的情况发生,点击一个链接要2秒钟以上才能打开,按照我们对于访问人数的估计,服务器应该不至于响应这么慢,从而需要针对这个问题进行分析,来解决网站访问过慢. ...
- tomcat 服务器访问日志配置方法
最近需要配置tomcat访问日志,通过造访他人的博客,再根据apache官方的一些文章,才逐渐清晰了许多 配置方法很简单: 在server.xml里的<host>标签下加上 <Val ...
- 【linux】apache的访问日志详解及演练
文章目录 前言 一. apache日志分类 二. apache的日志格式详解 1. 输出最近的一段访问日志 2. 日志的字段所代表的内容如下: 3. apache访问日志配置文件参数详解 三. 配置修 ...
- Apache服务器访问权限设置
安装完Apache服务器后访问localhost提示无权限访问,此时需要对conf文件夹下的httpd.conf文件进行修改 在httpd.conf文件中找到如下代码 <span style=& ...
- windows下安装awstats来分析apache的访问日志
一.啰嗦两句 之前在Windows下用Apache时,也曾经配置过Awstats,然后换了工作,改用Linux+nginx,渐渐把Apache忘记了.又换了工作,又得用Apache,这回版本更新到2. ...
- iis服务器的网站日志,IIS web服务器访问日志
用户每打开一次网页,iis 都会记录用户IP.访问的网页地址.访问时间.访问状态等信息,这些信息保存在 iis日志文件里,方便网站管理员掌握网页被访问情况和 iis 服务器运行情况.如果网页被恶意访问 ...
- Apache 配置访问日志
1.在主配置文件中定义日志格式 [root@localhost ~]# vim /usr/local/apache2/conf/httpd.conf <IfModule log_config_m ...
最新文章
- 联合国《2017年信息经济报告》
- PXE部署映像(WinPE 2.0)
- 关于OPENGL的各个变换的顺序
- 《Linux防火墙(第4版)》——1.3 传输层机制
- java arm 编译器下载_最全盘点:18款在线C/C++/Py/Java编译器,一个比一个强大(附地址)...
- mysql命令详细解_mysql命令详解
- Ubuntu on Windows,在Windows上的Ubuntu
- 浏览器的工作原理整理
- Mac OS X下的截屏功能和使用技巧
- FileUtils工具类的使用
- java 编辑pdf表格_Java 生成pdf表格文档
- 多测师肖sir__金牌高级讲师软件测试___疑难杂症之app端口占用
- R语言实例:根据中国省份简称绘制着色图
- 计算机系统时间设置打不开,电脑时间或日期不对的修改方式
- 图神经网络(一)图信号处理与图卷积神经网络(4)图滤波器
- JPEG2000帧格式详解(一)
- python 处理异常_Python异常处理:
- 百度云主机wordpress设置伪静态方法
- (笔记)斯坦福机器学习第十讲--特征选择
- Armbian挂载硬盘(以及自动挂载)