飘灵儿 发表于 2015-1-14 20:42:32

Linux教程之日记剖析工具Awstats实战之Nginx篇

欢迎大家来到仓酷云论坛!媒介:
Awstats是在SourceForge上开展很快的一个基于Perl的WEB日记剖析工具,一个充实的日记剖析让Awstats显现您以下材料:

会见次数、共同访主人数,会见工夫和前次会见,利用者认证、比来认证的会见,每周的岑岭工夫(页数,点击率,每小时和一周的千字节),域名/国度的主机访客(页数,点击率,字节,269域名/国度检测,geoip检测),主机名单,比来会见和未剖析的IP地点名单年夜多半看过的收支页面,档案范例,网站紧缩统计表(mod_gzip大概mod_deflate),利用的操纵体系(每一个操纵体系的页数,点击率,字节,35OSdetected),利用的扫瞄器,呆板人会见(检测319个呆板人),蠕虫打击(5个蠕虫家属),搜刮引擎,使用关头词检索找到你的地点,HTTP协定毛病(比来查阅没有找到的页面),其他基于URL的本性报道,链接参数,触及综合行销范畴目标.贵网站被到场"最喜好的书签".次数.屏幕巨细(必要在索引页增补一些HTML标签).扫瞄器的撑持比例:Java,Flash,RealG2reader,Quicktimereader,WMAreader,PDFreader.负载均衡办事器比率集群呈报.

Awstats的运转是必要PERL情况的撑持,从awstats的文档来看,它对ApacheHTTPServer的撑持长短常完善的,而当我们把Web办事器换成Nginx后,要运转awstats变得很贫苦。起首Nginx自己对Perl的撑持是对照弱的,乃至官方也不倡议利用;别的在日记格局上有必要修正后才干运转。
利用awstats能够剖析apache日记,一样也能够剖析nginx日记。本文将具体先容主动准时切割nginx的会见日记,并利用awstats来准时剖析nginx日记及完成统计了局可供宁静便利的查阅。


情况:

CentOS6.4x86_64ip:192.168.1.113域名:www.sunsky.com(server和client都经由过程hosts文件剖析)nginx-1.2.9编译装置,路径/usr/local/nginx,办事开启形态日记纪录格局为nginx默许的,切勿变动,不然会形成awstats没法剖析日记。log_formatmain$remote_addr-$remote_user[$time_local]"$request"$status$body_bytes_sent"$http_referer""$http_user_agent""$http_x_forwarded_for";awstats-7.2.tar.gz

1、日记主动切割
关于nginx的日记切割,因为没有像apache一样往用cronolog工具,这里我们就写一个剧本,让它能够在天天00:01主动实行,切割今天的日记(交由awstats剖析),紧缩前天的日记(紧缩日记可减小存储空间,为避免awstats没有剖析完就被紧缩,以是只紧缩前天的日记)。

vim/server/scripts/cut_nginx_log.sh

输出以下内容:

#!/bin/shyesterday=`date-d"yesterday"+"%Y%m%d"`before_yesterday=`date-d"-2day"+"%Y%m%d"`Nginx_Dir="/usr/local/nginx"Nginx_logs="/app/logs"Log_Name="www_access"cd/tmp[-d$Nginx_Logs]&&cd$Nginx_logs||exit1[-f$Log_Name.log]&&/bin/mv$Log_Name.log${Log_Name}_${yesterday}.log||exit1if[$?-eq0-a-f$Nginx_Dir/logs/nginx.pid]thenkill-USR1`cat$Nginx_Dir/logs/nginx.pid`fi[-f${Log_Name}_${before_yesterday}.log]&&/usr/bin/gzip${Log_Name}_${before_yesterday}.log||exit1

实行crontab-e将该剧本到场准时义务中

10***/bin/sh/server/scripts/cut_nginx_log.sh>/dev/null2>&1

如许天天清晨00:01就可以主动完成日记的切割,紧缩等功效了

由于本次实行下的nginx此时已有日记了,别的为了后文awstats能对切割过的日记举行剖析,以是这里我们要运转一下此剧本,来将现有日记举行切割天生今天的日记便利后文操纵。

/bin/sh/server/scripts/cut_nginx_log.sh>/dev/null2>&1

2、Awstats的装置与设置

1.安排awstats
起首我们要下载awstats软件包,并将其放在惯例目次(/usr/local)下
wgethttp://awstats.sourceforge.net/files/awstats-7.2.tar.gztarzxfawstats-7.2.tar.gzmvawstats-7.2/usr/local/awstats因为wget下载上去的包中权限长短root的,以是这里要修正权限,不然稍后*.pl将没法运转

chown-Rroot.root/usr/local/awstatschmod+x/usr/local/awstats/tools/*.plchmod+x/usr/local/awstats/wwwroot/cgi-bin/*.pl

接上去我们要实行awstats/tools下的awstats_configure.pl设置导游,用来天生awstats的设置文件,awstats设置文件的定名划定规矩是awstats.website.conf。

cd/usr/local/awstats/tools/./awstats_configure.pl

此时会呈现以下提醒

-----AWStatsawstats_configure1.0(build1.9)(c)LaurentDestailleur-----ThistoolwillhelpyoutoconfigureAWStatstoanalyzestatisticsforonewebserver.YoucantrytouseittoletitdoallthatispossibleinAWStatssetup,howeverfollowingthestepbystepmanualsetupdocumentation(docs/index.html)isoftenabetteridea.Aboveallif:-Youarenotanadministratoruser,-Youwanttoanalyzedownloadedlogfileswithoutwebserver,-Youwanttoanalyzemailorftplogfilesinsteadofweblogfiles,-Youneedtoanalyzeloadbalancedserverslogfiles,-YouwanttounderstandallpossiblewaystouseAWStats...ReadtheAWStatsdocumentation(docs/index.html).----->RunningOSdetected:Linux,BSDorUnix----->CheckforwebserverinstallEnterfullconfigfilepathofyourWebserver.Example:/etc/httpd/httpd.confExample:/usr/local/apache2/conf/httpd.confExample:c:Programfilesapachegroupapacheconfhttpd.confConfigfilepath(nonetoskipwebserversetup):>none#这里让填写网页办事器的设置文件路径,由于我们用的不是apache,以是这里要填noneYourwebserverconfigfile(s)couldnotbefound.YouwillneedtosetupyourwebservermanuallytodeclareAWStatsscriptasaCGI,ifyouwanttobuildreportsdynamically.SeeAWStatssetupdocumentation(filedocs/index.html)----->Updatemodelconfigfile/usr/local/awstats/wwwroot/cgi-bin/awstats.model.confFileawstats.model.confupdated.----->Needtocreateanewconfigfile?DoyouwantmetobuildanewAWStatsconfig/profilefile(requirediffirstinstall)?y#扣问是不是创立一个新的设置文件,这里填y----->DefineconfigfilenametocreateWhatisthenameofyourwebsiteorprofileanalysis?Example:www.mysite.comExample:demoYourwebsite,virtualserverorprofilename:>www.sunsky.com#这里让填写你的网站域名,假造主机名大概任意一个设置名----->DefineconfigfilepathInwhichdirectorydoyouplantostoreyourconfigfile(s)?Default:/etc/awstatsDirectorypathtostoreconfigfile(s)(Enterfordefault):>#这里要填写你设置文件寄存路径,我们利用它默许的路径/etc/awstats,以是间接回车便可----->Createconfigfile/etc/awstats/awstats.www.sunsky.com.confConfigfile/etc/awstats/awstats.www.sunsky.com.confcreated.----->AddupdateprocessinsideaschedulerSorry,configure.pldoesnotsupportautomaticaddtocronyet.Youcandoitmanuallybyaddingthefollowingcommandtoyourcron:/usr/local/awstats/wwwroot/cgi-bin/awstats.pl-update-config=www.sunsky.comOrifyouhaveseveralconfigfilesandpreferhavingonlyonecommand:/usr/local/awstats/tools/awstats_updateall.plnowPressENTERtocontinue...#提醒不克不及主动到场crontab准时义务,必要稍后本人增加,我们按回车持续便可ASIMPLEconfigfilehasbeencreated:/etc/awstats/awstats.www.sunsky.com.confYoushouldhavealookinsidetocheckandchangemanuallymainparameters.Youcanthenmanuallyupdateyourstatisticsforwww.sunsky.comwithcommand:>perlawstats.pl-update-config=www.sunsky.comYoucanalsobuildstaticreportpagesforwww.sunsky.comwithcommand:>perlawstats.pl-output=pagetype-config=www.sunsky.comPressENTERtofinish...#提醒设置文件创立完成和怎样更新设置及创建静态呈报页,这里我们回车便可停止这个设置导游

2、修正awstats设置文件
完成设置文件的创立以后,我们还必要对/etc/awstats/awstats.www.sunsky.com.conf里的一些参数举行修正。
CentOS6.4x86_64ip:192.168.1.113域名:www.sunsky.com(server和client都经由过程hosts文件剖析)nginx-1.2.9编译装置,路径/usr/local/nginx,办事开启形态日记纪录格局为nginx默许的,切勿变动,不然会形成awstats没法剖析日记。log_formatmain$remote_addr-$remote_user[$time_local]"$request"$status$body_bytes_sent"$http_referer""$http_user_agent""$http_x_forwarded_for";awstats-7.2.tar.gz0这里变动的目标是指定awstats必要剖析的nginx的日记文件路径。这里的路径人人要按本人的日记路径来填。
1
sed-is#DirData="/var/lib/awstats"#DirData="/usr/local/awstats/data"#g/etc/awstats/awstats.www.sunsky.com.conf




这里变动的目标是指定awstats的数据库设置文件(即awstats的数据库(纯文本))。
因为,此处没有/usr/local/awstats/data目次,以是我们要创立出来

1
mkdir/usr/local/awstats/data



以上的两个交换操纵举行完以后必定要用下令检察交换是不是乐成,以便尽早发明忽略。

1
2
grep"LogFile="/etc/awstats/awstats.www.sunsky.com.conf
grep"DirData="/etc/awstats/awstats.www.sunsky.com.conf



查询交换了局准确以后,便可举行上面的步调。


3、创立awstats统计了局寄存目次
如今我们要创立awstats统计了局的数据库寄存目次
1
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl-update-config=www.sunsky.com



假如屏幕输入相似上面的提醒就申明设置文件都准确无误了
1
2
3
4
5
6
7
8
9
10
11
12
Create/Updatedatabaseforconfig"/etc/awstats/awstats.www.sunsky.com.conf"byAWStatsversion7.2(build1.992)
Fromdatainlogfile"/app/logs/www_access.log"...
Phase1:Firstbypassoldrecords,searchingnewrecord...
Searchingnewrecordsfrombeginningoflogfile...
Jumpedlinesinfile:0
Parsedlinesinfile:0
Found0droppedrecords,
Found0comments,
Found0blankrecords,
Found0corruptedrecords,
Found0oldrecords,
Found0newqualifiedrecords.



正文:awstats.pl会到/etc/awstats目次下搜刮,依据读取到的设置文件运转步伐,往读取-config中的参数,把www.sunsky.com扩大成awstats.www.sunsky.com.conf
剖析日记:运转后将如许的日记统计了局回档到一个awstats的数据库(纯文本)里;
然后是输入:分两种情势
1、一种是经由过程cgi步伐读取统计了局数据库输入;
2、一种是运转背景剧本将输入导出成静态文件;
统计剖析完成后,了局还在Awstats的数据库中。在Apache上,能够间接翻开Perl步伐的网页检察统计。但Nginx对Perl撑持其实不好,以是要换个***,使用awstats的工具将统计的了局天生静态文件,这里便利我们仍是用剧本来完成
1
vim/server/scripts/awstats.sh



输出以下内容
1
2
3
4
5
#!/bin/sh
Awstats_Dir="/usr/local/awstats"
[-d/www/awstats]||mkdir/www/awstats
$Awstats_Dir/wwwroot/cgi-bin/awstats.pl-update-config=www.sunsky.com
$Awstats_Dir/tools/awstats_buildstaticpages.pl-update-config=www.sunsky.com-awstatsprog=$Awstats_Dir/wwwroot/cgi-bin/awstats.pl-lang=cn-dir=/www/awstats



剧本内容解说:
1
2
3
4
5
/usr/local/awstats/tools/awstats_buildstaticpages.plAwstats静态页面熟成工具
-update-config=www.sunsky.com更新设置项
-awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.plAwstats日记更新步伐路径
-lang=cn言语为中文
-dir=/www/awstats统计了局输入目次



awstats_buildstaticpages.pl会依据-config的参数往读取内里的DirData路径下的数据库设置文件,然后天生静态的html文件,天生的文件重定向到/www/awstats目次下。
3、设置nginx完成宁静会见
接上去我们要设置nginx使其能宁静的会见到剖析的数据
1
vim/usr/local/nginx/conf/nginx.conf



在server{}内增加以下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
server{
listen80;
server_namewww.sunsky.com;
location/{
root/www/sunsky;
indexindex.htmlindex.htm;
access_log/app/logs/www_access.logcommonlog;
}
location~^/awstats/{
root/www/;
indexawstats.www.sunsky.com.html;#依据本人的网站域名举行变动首页文件
autoindexon;
access_logoff;
charsetgb2312;
auth_basic"Restricted";#有些网站不肯意公然网站流量信息,以是加个认证
auth_basic_user_file/usr/local/nginx/htpasswd.pass;#该文件由apache的加密认证工具htpasswd创立
}
location~^/icon/{
root/usr/local/awststs/wwwroot;
indexindex.html;
access_logoff;
charsetgb2312;
}
}



因为nginx没有好的加密认证工具,必要借助apache的htpasswd来完成加密认证功效
1
htpasswd-c-m/usr/local/nginx/htpasswd.passsunskyadmin#用户名为sunskyadmin



设置终了以后,反省nginx语法,然后文雅重启以后,用巡游器会见www.sunsky.com/awstats,输出账号暗码以后便可检察统计信息了。
至此,awstats已能够完成对Nginx的日记统计及静态化的宁静会见功效了。
4、设置awstats主动运转
为了让全部日记的统计历程能够完成主动化,将awstats.sh剧本到场crontab准时义务中往,此时分离下面的准时切割义务,我们的crontab内里会有多出来两条准时义务
1
2
10***/bin/sh/server/scripts/cut_nginx_log.sh>/dev/null2>&1
01***/bin/sh/server/scripts/awstats.sh>/dev/null2>&1



到此,我们全部日记会见工具awstats在nginx上的设置就完成了。固然此篇是基于静态页面的显现的,前面会再写一篇博文日记剖析工具Awstats实战之Nginx篇-剖析了局静态化出来和人人一同交换进修的。

本文出自“sunsky”博客,请务必保存此出处http://sunsky.blog.51cto.com/4824967/1316979


如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!

飘飘悠悠 发表于 2015-1-16 21:42:31

Linux教程之日记剖析工具Awstats实战之Nginx篇

了解Linux的网络安全,系统的安全,用户的安全等。安全对于每位用户,管理员来说是非常重要的。

深爱那片海 发表于 2015-1-25 23:29:34

你需要提供精确有效的信息。Linux这并不是要求你简单的把成吨的出错代码或者数据完全转储摘录到你的提问中。

小魔女 发表于 2015-2-4 18:00:08

然我们对Linux的学习首先是通过对它的产生,发展,到今天仍然在不断完善开始的。

山那边是海 发表于 2015-3-1 01:49:26

Linux最大的特点就是其开源性,这一点是十分难得的,这也是它能够存在到现在的原因之一。

若相依 发表于 2015-3-10 13:01:18

再次,Linux是用C语言编写的,我们有学习C语言的基础,读程序和编写代码方面存在的困难小一点,也是我们能较快掌握的原因之一。?

只想知道 发表于 2015-3-17 09:11:35

Windows有MS-DOS?方式,在该方式下通过输入DOS命令来操作电脑;Linux与Windows类似,也有命令方式,Linux?启动后如果不执行?X-WINDOWS,就会处于命令方式下,必须发命令才能操作电脑。?

若天明 发表于 2015-3-24 06:10:27

笔者五分钟后就给出了解决方法: “首先备份原文件到其他目录,然后删掉/usr/local/unispim/unispimsp.ksc,编辑 /usr/local/unispim/unispimsp.ini,最后重启动计算机
页: [1]
查看完整版本: Linux教程之日记剖析东西Awstats实战之Nginx篇