6.14 解读Apache日志
当你一步步建好你的WWW站点,并且已经在Internet上展现出来的时候。这时你可能就会关心谁造访过你的站点,或者想知道你的Apache服务器现在的运行状态与性能如何。下面我们一起通过解读Apache的日志来实现这个伟大的愿望。
1.盯着Apache服务器
Apache允许通过WWW监视服务器的配置信息与运行状态。
⑴ 观看配置信息
如果你的Apache象缺省配置一样加入了mod_info模块的话,你就可以通过访问http://localhost/server-info查看服务器信息。
⑵ 使用状态页
如果你的Apache象缺省配置一样加入了mod_status模块的话,你就可以通过访问http://localhost/apache-status查看服务器的运行状态信息,其中包括:
¨ 服务器系统的当前时间;
¨ 服务器最近一次重启时间;
¨ 服务器启动后的运行时间;
¨ 到目前为止服务的访问总数;
¨ 到目前为止传输的字节总数;
¨ 服务请求的子进程数;
¨ 空闲子进程数;
¨ 每个进程状态、子进程服务的请求数以及该子进程传输的字节总数;
¨ 每秒平均请求数、每秒传输的字节数、每次请求平均传输字节数;
¨ 目前每个子进程CPU占用及Apache的总的CPU占用率;
¨ 当前主机及处理的请求。
2.什么是日志文件
日志文件是Apache工作的记录,Apache包括了mod_log_config模块,它用来记录日志。在缺省情况下,它用通用日志格式CLF规范来写。CLF日志文件内对每个请求均有一个单独行,形如:host ident anthuser date request status bytes
其含义如下:
¨ host客户端主机的全称域名或IP地址;
¨ ident存放客户端报告的识别信息;
¨ authuser如果是基于用户名认证的话,值为用户名;
¨ date请求的日期与时间;
¨ request客户端的请求行;
¨ status返回到客户端的三们数字的HTTP状态码;
¨ bytes除去HTTP头标外,返回给客户端的字节数。
3.分析日志文件
有了日志文件后,我们可以利用UNIX的一些工具和一批专门的日志分析工具对日志文件进行分析。
实例一:列出访问过本网站的主机名或IP:
对于这个需求,我们可以通过一个Unix的一个脚本语句来完成:
cat /var/log/httpd/access_log | awk '{print $1}'
用上面的方法虽然可以得到访问过本网站的主机名或IP,但是由于有些是多次访问的,我们希望在上面得到的结果的基础上做一些优化,使得列出的表中,每个主机只出现一次。我们可以使用:
cat /var/log/httpd/access_log | awk '{print $1}' | wc –l
当然,我们可以根据需要选择第三方提供日志分析工具甚至自己开发一些日志分析工具来满足我们的需求。常见的第三方日志分析工具有:WebTrends、Wusage、wwwstat、http-analyze、pwebstats、WebStat Explorer、AccessWatch。
4.一些提示
日志一方面是我们分析网站的第一手资料,一方面却是吞噬大量磁盘空间的罪魁祸首。所以别忘了定期转储或删除一些老的日志文件。