对于所有公司或icp来说,在保证网站稳定正常运行外,还需要了解网站访问量和分析报表,这对于了解和监控网站的运行状态,对于提高网站的服务能力和服务水平似乎必不可少的。通过对web服务器的日志文件进行分析和统计,能够有效的掌握系统运行的情况及站点内容的被访问情况,加强对整个站及其内容的维护与管理;
Apache服务器具备强大的日志功能,管理员可以方便、准备、及时地了解服务器状况;可以更好地防范黑客的攻击。
Apache规定了4类日志,分别为:错误日志、访问日志、传输日志以及Cookie日志。其中Apache2.0默认设置的有错误日志和访问日志,如果需要分析其他日志,则需进行相关配置。
1.错误日志
错误日志是Apache服务器的标准日志文件,记录了服务器运行期间遇到的各种错误和一些服务器何时启动等的信息。
在这个文件中,管理员可以准确、清晰地看到各种错误提示:文件没找到、用户认证错误或者PHP、CGI的语法错误等。通过这些准确的错误描述,管理员就可以较为顺利地解决这些问题了。
2.配置访问日志
通过Apache的访问日志可以了解到访问服务器的相关信息,比如,有哪些人访问了服务器,都访问了哪些内容等相关信息。Apache服务器一旦启动就会自动生成访问日志(/var/log/httpd/access_log文件)
管理web网站需要监视其速度、web内容传送,服务器每天的吞吐量,和web网站的外来访问,了解网站各个页面
的访问情况,根据页面的点击率来改善网页的内容和质量,提高内容的可读性,跟踪包含有商业交易的步骤以及管理web网站幕后的数据;
1、日志的分类
apache的标准中规定了4类日志;
*错误日志
*访问日志
*传输日志
*cookie日志
其中传输日志和cookie日志在apache2.0时已经取消了,只讨论错误日志和访问日志;
2、日志相关配置指令;
apache中有如下4条与日志相关的配置指令;
指令 格式 说明
-----------------------------------------------------------------------------
ErrorLog 错误日志文件名; 指定错误日志存放路径
-----------------------------------------------------------------------------
LogLevel 错误日志记录等级; 指定错误日志的记录等级
-----------------------------------------------------------------------------
LogFormat 记录格式说明串,格式昵称; 为一个日志记录格式命名
-------------------------------------------------------------------------------
CustomLog 访问日志文件名 格式昵称 指定访问日志存放路径和记录格式;
“|程序名 访问日志文件名”格式昵称 指定访问日志有指定程序生成并制定格式(管道日志)
-------------------------------------------------------------------------------
前两条是配置错误日志,后两条是配置访问日志
3、配置错误日志;
1)、apache默认的错误日志配置
ErrorLog "logs/error_log"
LogLevel warn
配置错误日志只需要说明日志文件的存放路径和日志记录登记即可;
2)、日志记录等级;
紧急程度 等级 说明
-----------------------------------------------------------------
1 Emerg 出现紧急情况时的系统不可用,如系统宕机等
------------------------------------------------------------------
2 A lert 需要立即引起注意的情况
------------------------------------------------------------------
3 Crit危险情况的警告
-----------------------------------------------------------------
4 Error 除了emerg、alert、crit的其他错误;
--------------------------------------------------------------
5 warn 警告信息
---------------------------------------------------------------
6 notice 需要引起注意的情况,但不如error warn重要
------------------------------------------------------------------
7 info 值得报告的一般信息
-------------------------------------------------------------------
8 debug 由运行与debug模式的程序所产生的消息
---------------------------------------------------------------
如果指定了登记warn,那么就记录紧急程度为1至5的所有信息;
[Fri May 07 10:32:00 2010] [error] [client 192.168.0.10] File does not exist: /usr/local/apache2/htdocs/favicon.ico
[Fri May 07 10:32:03 2010] [error] [client 192.168.0.10] File does not exist: /usr/local/apache2/htdocs/favicon.ico
每一行的错误日志都有
日期和时间 错误等级 错误消息
4、配置访问日志
1)、访问日志的分类;
为了便于分析apache的访问日志,apace的默认配置文件中,按记录的信息不同,将访问日志分为4类;并由LogFormat指令定义了昵称
格式分类 格式昵称 说明
--------------------------------------------------------------------
普通日志格式 common 大多数日志分析软件都支持这种格式
(common log format.CLF)
--------------------------------------------------------------------
参考日志格式 referer 记录客户访问站点的用户身份
(referer log format)
--------------------------------------------------------------------
代理日志格式 agent 记录请求的用户代理
(agent log format)
--------------------------------------------------------------------
综合日志格式 combined 综合以上三种日志信息
(combined log format)
--------------------------------------------------------------------
由于综合日志格式简单地结合了3种日志信息,所以在配置访问日志时,要么使用3个文件分别记录,要么使用一个综合文件记录。
5、日志滚动
要使系统重新使用空的日志文件 ,可以执行如下命令
#cd /usr/loca/apache2/log
# mv error_log error_log.01
#mv access_log access_log.01
当重启apache时新的error_log和access_log
下面我们使用日志分析软件webalizer来统计
1)、安装webalizer
# yum install webalizer
# rpm -qa |grep webalizer
webalizer-2.01_10-30.1
# rpm -qa |grep webalizer
webalizer-2.01_10-30.1
[root@dns logs]# rpm -ql webalizer
/etc/cron.daily/00webalizer
/etc/httpd/conf.d/webalizer.conf
/etc/webalizer.conf
/usr/bin/webalizer
/usr/bin/webazolver
/usr/share/doc/webalizer-2.01_10
/usr/share/doc/webalizer-2.01_10/README
/usr/share/man/man1/webalizer.1.gz
/var/lib/webalizer
*生成的HTML文件存放在下面的路径
/var/www/usage
/var/www/usage/msfree.png
/var/www/usage/webalizer.png
2)、配置webalizer
#ln -s /var/www/usage /usr/local/www/usage
# webalizer /usr/local/apache2/logs/access_log
http://ip/usage