awstats分析apche日志

好吧。之前写过关于apache日志的文章,本意是了解一下apache日志的配置和基础解读为apache日志分析打好基础,应用到生产之后能够对网站的维护和日常生产做出指导作用。


写在前面的话:
因为我的实际生产环境AS4、AS5、AS6都有,所以都做了实验,并且现在都已经应用在生产中了。但实际这个东西三版系统中除了最后jawstats的应用有点问题以外,其它都一样,所以这里用AS4做基础的实验环境。


实验环境:AS4UP4 (AS5、AS6通用)
采用的软件包:
awstats: 采用的是现在为止最新的稳定版(2016-03-03)
本体:http://prdownloads.sourceforge.net/awstats/awstats-7.4.tar.gz
jawstats: 这里要说明一下,这个界面比awstats友好多了,但最新版在09年初就已经停止更新了,所以这里到后面会有一点小问题。
本体:http://static.jawstats.com/src/jawstats-0.7beta.tar.gz
语言包:http://www.jawstats.com/src/languagepack.zip



一、系统设置
由于是实验性质,所以采用了绝对安全环境下进行的一些设置(为了避免软件引起的干涉),在实际环境中请慎重考虑一下:


Selinux关闭,这个不关可能在apache另做的别名和系统默认的apache文件夹以外的文件夹无法被顺得加载。
#setenforce 0
这个是临时关闭,重启之后失效
或者
#vim /etc/selinux/config
把SELINUX=Enforcing 改成 SELINUX=disabled
这个重启之后就永久关闭了。


 perl的安装,这个不多说了,系统光盘里都有。awstats需要这个做支持,7.4版本要求在版本在5以上,这个应该不是难事,AS4自带的就是5。


二、设置
首先说明一下,awstats是基本LAMP的软件,而本身我们也是为了分析apache日志,所以LAMP环境是必须的。实验中我是直接完全安装,现在RPM包全装完了。源码包的安装方式参看:


使用的三个包
awstats这个是从apache日志中提取信息并成生分析数据的软件,这是整个分析系统的核心。
Jawstats直接利用awstats生成的数据,转换到一个更加友好界面展现出来,其实就是awstats的一个插件。
Languagepack是jawstats的语言包
SO,一步步来。


安装awstats
awstats对日志的分析支持的模式是 combined,所以之前做的日志要改变一下。
# vim /etc/httpd/conf/httpd.conf    //编辑apache配置文件

CustomLog 改成
CustomLog "| /usr/sbin/rotatelogs /etc/httpd/logs/access_log%Y%m%d 86400 480" combined

# service httpd restart    //重启apache
打开浏览器访问一下http://IP
#ll /etc/httpd/logs/


日志文件就已经生成了。


现在可以来处理awstats了
# tar zxvf awstats-7.4.tar.gz
# mv awstats-7.4 /usr/local/awstats
# cd /usr/local/awstats/tools/
# ./awstats_configure.pl


这里要求的是apache配置文件的完整路径。


apache配置文件找到之后,会写入和awstats相关的别名设置。


模板配置文件也会生成,保存在/usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf


这里是利用模板,直接配置需要分析的模板了。


这里是网站名称,可以写全域名,我这里直接写localhost了。


这里说明是配置文件存放路径,默认是/etc/awstats,默认就直接回车了。


之后apache就会直接重启,之后会提示日志分析命令和web访问路径。基本配置到此完成,现在准备生成分析数据。
这里说明一下,如果找不到libmysql.so.14.0或者以上版本的同名文件重启apache是会失败的,但无伤大雅,可以自己手动重启。AS4系统中内置包名是mysql-4.1.20-1.RHEL4.1.i386.rpm,其它几个系统类同。


# mkdir /var/lib/awstats   //这个是日志分析后数据保存的路径,必须手动新建
# vim /etc/awstats/awstats.localhost.conf  
//修改localhost的配置文件,因为配置文件里的apache源日志文件名是通用的,要改成之前设置的那个
LogFile改成如下:
LogFile="/etc/httpd/logs/access_log%YYYY%MM%DD"

# /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=localhost  
//生成数据,命令照打,如下是成功的。



# crontab -e       //apache的日志是不断产生的,所以要加入计划任务。
*/1 * * * * /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=localhost
# service crond restart

# chown apache.apache -R /usr/local/awstats/  //把权限改成apache用户,否则无法正常访问

打开浏览器
http://IP/awstats/awstats.pl?config=localhost


完成。




安装jawstats
# mkdir jawstats
# tar zxvf jawstats-0.7beta.tar.gz -C jawstats   //jawstats解开是文件状态,所以要指定文件夹
# mkdir language
# unzip languagepack.zip -d language      
# cp   language/* ./jawstats/languages/
# mv jawstats /var/www/html/
# cd /var/www/html/jawstats/
# cp config.dist.php config.php
# vim config.php   //编译配置文件


全局变量
$sDefaultLanguage      = "zh-cn";  //这里只需要把默认的语言改掉就行了


$aConfig["localhost"] = array(
  //这里是指定读取网站的名称,这里写错了会读错日志,和awstats设置一样,即刚刚在awstats中输入的网站名称。
  "statspath"   => "/var/lib/awstats/", 
  //awstats生成的数据文件目录
  "updatepath"  => "/usr/local/awstats/wwwroot/cgi-bin/awstats.pl",
  //也就是awstats.pl文件的目录
  "siteurl"     => "localhost",
  //这个是jawstats进去之后标题的链接
  "sitename"    => "localhost",
  //这个是jawstats进去之后给出的网站标题,主要是标明哪个网站
  "theme"       => "default",
  "fadespeed"   => 250,
  "password"    => "mypassword",
  //更新站点数据的密码,jawstats有个功能,其实感觉用F5刷新就行了,如果你等不急awstats每分钟刷新一次的频率的话,可能试下这个。
  "includes"    => "",
  "language"    => "zh-cn"
  //默认语言
);



关于jawstats第一步就完成了。这里有两个地方要说明一下。
1.jawstat,在09年初就断更了。PHP5.3发布之后很多PHP规则都改变了,它里面很多内置函数因为这个原因都无法使用,所以它是不支持PHP5.3以上的版本的。SO,AS6就失败了。
2.由于awstats的版本一直在更新,所以jawstats是不能完全支持最新版本的awstats的,例如查看浏览器和操作系统就无法完成。要支持的话,可以使用awstats6.95的版本。不过其实这些功能awstats本身都有,看个人取舍。


以上设置完成之后,awstats和jawstats的目录都是不设防的,所有人都可以访问。一般情况下为了安全起见是要做一下访问控制的,网上大多数人用的都是.htpasswd,不过如果有固定IP地址或者VPN的话可以直接用ACL进行控制。
下面分别说明一下:
.htpasswd方法
例awstats在apache配置文件中原始的文件夹权限
<Directory "/usr/local/awstats/wwwroot">
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
修改为:
<Directory "/usr/local/apache/htdocs/www/awstats">
AuthType Basic
AuthName "Auth Youself"    //这里是提示信息
AuthUserFile /usr/local/awstats/wwwroot/.htpasswd
Require user admin
</Directory>
然后
/usr/bin/htpasswd -c /usr/local/awstats/wwwroot/.htpasswd  用户名  密码


jawstats亦以此类推,复制一下即可。


ACL方法:
例awstats在apache配置文件中原始的文件夹权限
如下
<Directory "/usr/local/awstats/wwwroot">
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>


修改为:
<Directory "/usr/local/awstats/wwwroot">
    Options None
Order deny,allow   
//这里deny,allow的位置要注意,写在后面的覆盖前面的,写反了allow将不会生效
    Deny  from all
Allow from 允许的IP
</Directory>


Jawstats可以以此类推,如下:
Alias /jawstats "/var/www/html/jawstats"      //我这里新建了一个别名
<Directory "/var/www/htmlt/jawstats">
    Options None
    Order deny,allow
    Deny from all
Allow from 允许的IP
</Directory>


无论哪种方法,不要忘记重启apache服务。

awstats的优化
刚刚建好的awstats最大的问题在于无法通过IP识别来源的国家,这个需要其它插件的支持。
要下三个包

http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz  主程序
http://www.maxmind.com/download/geoip/api/pureperl/Geo-IP-PurePerl-1.19.tar.gz
http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz 城市信息

先安装GeoIP
# tar zxvf GeoIP.tar.gz
# cd GeoIP-1.4.8/
# ./configure --prefix=/usr/local/geoip
# make
# make install

安装Geo-IP-PurePerl
# tar zxvf Geo-IP-PurePerl-1.19.tar.gz
# cd Geo-IP-PurePerl-1.19
# perl Makefile.PL   
# make
# make test
# make install

更新数据库
# gunzip GeoLiteCity.dat.gz
# mv GeoLiteCity.dat /usr/local/awstats/wwwroot/cgi-bin/ 
//数据库GeoLiteCity.dat移到目标目录

# vim /usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf
做如下修改:
LoadPlugin="decodeutfkeys"
LoadPlugin="graphgooglechartapi"
LoadPlugin="geoip GEOIP_STANDARD /usr/local/geoip/share/GeoIP/GeoIP.dat" 
//这里是安装目录,其实是GeoIP数据库GeoIP.dat的路径
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /usr/local/awstats/wwwroot/cgi-bin/GeoLiteCity.dat"

//这行别搞错了,原来是以GeoIPCity.dat结尾的。如果只注释那么是得不到想要的结果的。

# /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=localhost
更新过后,应该就可以得出结果了


本来GeoIP是有自动更新功能的,但帐号需要购买,所以只能定时下载更新包了。
http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz


///另,开启了IP来源识别,打开监控网页的整体会变慢,而且统计图片很可能会显示不出来——当然这个和机器的配置还有设置有关系。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章