设为首页 收藏本站
查看: 1313|回复: 0

[经验分享] 用 AWStats 对 vsftpd 日志进行统计

[复制链接]

尚未签到

发表于 2015-11-27 13:40:16 | 显示全部楼层 |阅读模式
  转自:http://www.21ds.net/article/15/556
  
  作者:eagerlinuxer

引用自:http://bbs.iyunv.com/forum/viewtopic.php?t=388056

参考文档:

http://awstats.sourceforge.net/docs/awstats_faq.html#FTP
  我自己的补充。如果你的 vsftpd 使用的是 virtual username 的话,要把

红色部分去掉。

引用:



LogFormat="%time3 %other %host %bytesd %url %other %other %method %other
%logname %other %code %other %other"
  同时要重新编译 vsftpd 包里面的 loggin.c 文件

找到代码:  /* Access mode: anonymous/real user, and identity */
if (p_sess->is_anonymous)
{
str_append_text(p_str, "a ");
str_append_str(p_str, &p_sess->anon_pass_str);
}
else
{
str_append_text(p_str, "r ");
str_append_str(p_str, &p_sess->user_str);
}
/* str_append_char(p_str, ' '); # --Edit by Kreny
/* Service name, authentication method, authentication user id */
str_append_text(p_str, "ftp 0 * ");
/* Completion status */
if (succeeded)
{
str_append_char(p_str, 'c');
}
else
{
str_append_char(p_str, 'i');
}
}
  其中 这一行是我修改的。原本会添加一个空格,现在把这个空格去掉就ok了。

代码:


  /* str_append_char(p_str, ' '); # --Edit by Kreny当然,如果要保留上面的 $logname 的话,在这个空格里面添加一个自己喜欢的名字也可以。 以下就是编译前和编译后的log的区别。


--> "a" 和 "ftp" 之间有两个空格

代码:

Sat Nov 20 21:52:54 2004 806 220.112.93.119 43780 /download/file.rar b _ o a ftp 0 * i --> "a" 和 "ftp" 之间只有一个空格

代码:
  Sat Nov 20 21:54:37 2004 3 220.112.93.119 48180 /download/file.rar b _ o a ftp 0 * i
  一、 AWStats简介
  AWStats是在Sourceforge上发展很快的一个基于Perl的WEB日志分析工具。现今它也可以用来分析多种日志包括:Apache 1.3.x and 2.x, IIS 5.0 and 6.0, WebStar, WebLogic, WebSite, Windows Media Server, Tomcat, Squid, Sambar, Roxen, Resin, RealMedia server, Oracle9iAS, Lotus Notes/Domino, Darwin, IPlanet,
IceCast, ZeroBrand, Zeus, Zope, Abyss、proftp、wuftp、vsftp、Postfix, Sendmail, QMail, Mdaemon, www4mail…… HOHO~~够多的了吧。现在就让我来介绍一下,用它来分析vsftp日志的安装配置方法吧。

  二、 安装简介
  1、Awstats的安装CU上有,很详细,下面是两个相关的链接:

RPM包安装:
http://bbs.iyunv.com/forum/viewtopic.php?t=362206&highlight=awstat


Tar包安装:http://bbs.iyunv.com/forum/viewtopic.php?t=120108&highlight=awstat


2、下面是我的安装过程简介:

1)AWStats从6.2 版(beta)开始支持wuftp 格式的vsftp日志文件,所以你想要对你的vsftpd日志进行分析,你就只得到http://awstats.sourceforge.net/#DOWNLOAD 下最新的AWStats-6.2的tgz包了,其它的都不支持喔,呵呵。


2)安装:

tar –zxvf awstats-6.2.tgz
cp –r awstats-6.2 /usr/local/awstats
vi /etc/httpd/conf/httpd.conf #在最后加上下面的几行:
#
# Directives to allow use of AWStats as a CGI
#
Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
Alias /awstatscss "/usr/local/awstats/wwwroot/css/"
Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"
ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"
#
# This is to permit URL access to scripts/files in AWStats directory.
#
Options None
AllowOverride None
Order allow,deny
Allow from all
service httpd restart #重启apache服务
cp /usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf /etc/awstats/awstats.bjftp.conf #考贝配置文件
  OK,AWStats的安装已经基本完成了。说明一下上面的安装过程:AWStats是一个用perl写的CGI脚本,它需要Apache或IIS的支持,才能把相应的统计结果用网页的行式显示出来。所以在把awstats-6.2考贝到/usr/local下后,就需要更改apache的配置文件,定义classes、css 、icon、cgi-bin目录的真实路径和/usr/local/awstats/wwwroot目录的属性,然后重启apache服务。如果是新手,也可以执行/usr/local/awstats/tools/
awstats_configure.pl,通过回答几个问题,去自动做这些工作。
  三、设置awstats的配置文件

这是我主要要向大家介绍的内容。要实现对vsftp的日志的统计,你必须把vsftpd的日志格式改成wuftp格式的,我个人认为vsftpd日志格式十分不适合作日志统计,因为它的每行的列数不都是相同的,这相当不利于日志统计。


1)要生成wuftp格式的日志,你首先得更改/etc/vsftpd.conf文件,在文件最后回上这么几条:

xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/vsftpd.log

(注:如果有vsftpd_log_file=/XXX/XXX请把它注释掉)

上面的设置会使生成的wuftp格式的日志存到/var/log/vsftpd.log文件中。当然,你也可以更改xferlog_file=/xxx/xxx来选择其它的目录文件。这样你生成的vsftpd.log日志格式将是下面的样子:

  Sun May 23 08:34:27 2004 67 192.168.13.102 975291 /lastlog a _ o a -anonymous@ ftp 0 * c
Sun May 23 08:34:28 2004 68 192.168.13.106 975291 /lastlog a _ o a -anonymous@ ftp 0 * c
Sun May 23 08:34:28 2004 68 192.168.13.102 975291 /lastlog a _ o a -anonymous@ ftp 0 * c 2)现在我们来配置一个生成vsftpd日志统计的awstats配置文件。

vi /etc/awstats/awstats.bjftp.conf #把文件中相应的配置设成与下面相同
  LogFile="/var/log/vsftplog" #日志文件的路径、名字
LogType=F #日志文件的类型FTP
LogFormat="%time3 %other %host %bytesd %url %other %other %method %other %logname %other %code %other %other"
#日志文件的格式定义,这点很重要,一定要和你的日志格式一样,在awstats.bjftp.conf文件中有详细的格式定义解释,大家可以看一下。(awstats-6.2以下版本之所以不支持vsftpd日志统计,就是因为它的%time3格式定义与日志的不符)
LogSeparator="\s" #日志各列之间用的分隔符
SiteDomain="bjftp.xxx.com” #域名、服务器名(一定要定义,在生成awstats数据库时要用到)
HostAliases="bjftp.xxx.com bjftp 127.0.0.1 localhost"
DNSLookup=0 #不逆向解析域名
DirData="/home/awstats" #生成的统计数据库的位置(注意,生成的文件可是rw-rw-rw-权限的喔,最好把他改一下。)
DirCgi="/awstats" #CGI统计脚本的执行目录,这个和你在apache中的ScriptAlias定义相对应。
DirIcons="/awstatsicons" #icons在apache对应目录的定义
AllowToUpdateStatsFromBrowser=0 #是否可以用浏览器来执行更新,默认是不可以。如果设成1,你就可以在IE中更新统计了。
NotPageList=""
LevelForBrowsersDetection=0
LevelForOSDetection=0
LevelForRefererAnalyze=0
LevelForRobotsDetection=0
LevelForWormsDetection=0
LevelForSearchEnginesDetection=0
ShowLinksOnUrl=0
ShowMenu=1
ShowMonthStats=UVHB
ShowDaysOfMonthStats=HB
ShowDaysOfWeekStats=HB
ShowHoursStats=HB
ShowDomainsStats=HB
ShowHostsStats=HBL
ShowAuthenticatedUsers=HBL
ShowRobotsStats=0
ShowEMailSenders=0
ShowEMailReceivers=0
ShowSessionsStats=1
ShowPagesStats=PBEX
ShowFileTypesStats=HB
ShowFileSizesStats=0
ShowBrowsersStats=0
ShowOSStats=0
ShowOriginStats=0
ShowKeyphrasesStats=0
ShowKeywordsStats=0
ShowMiscStats=0
ShowHTTPErrorsStats=0
ShowSMTPErrorsStats=0

  其它的一些我就不一一解释了,可以看一下/etc/awstats/awstats.bjftp.conf文件,里面写得很清楚的。只要把/etc/awstats/awstats.bjftp.conf中的相关先项设成这样,一个vsftp的awstats配置文件已经设定好了。下面要做的就是统计日志了。

  四、生成统计网页
  cd /usr/local/awstats/ wwwroot/cgi-bin
./awstats.pl -update -config=bjftp.xxx.com (注意:-config=后的参数要和SiteDomain=中定义的相同。最好不要用root去执行这个命令,因为生成的文件是 all can wirte!!!的) 。这样就会在” DirData”定义的目录---/home/awstats下生成一个或多个awstats072004.bjftp.xxx.com.txt、awstats062004.bjftp.xxx.com.txt它们是以日志有月分来分开的,有几个月的日志就会有几个文件。你可以把上面命令加到crontab中,让它定时更新。


在IE中打入 http:///awstats/awstats.pl?-config=bjftp.xxx.com 就可以看到一张漂亮的日志统计表了。大家可以去http://awstats.sourceforge.net/awstats.ftp.html 看一下一个awstats的FTP日志统计分析结果网页,很不错的。

  五、其它类型日志文件awstats配置方法
  最后,要说的是awstats支持的日志种类很多,从WEB到FTP到MAIL到Media,各种日志都有自己的awstats.xxx.conf的定义,所以大家可以去 http://awstats.sourceforge.net/docs/awstats_faq.html#LOGFORMAT 看一下各种日志的awstats配置文件的定义,还是比较全的,不过E文要过关,呵呵。本人对IIS5、apache1.3*、apache2.*、vsftp日志作了测试统计,都能成功。特别是对apache日志的分析、统计,做得真的是很完美。

  对了还有个问题问大家,有人知道用GeoIP或GeoIPfree的perl模块自定义地区和IP的方法吗?用默认的只能把访问IP的各个国家分出来,不能把国内访问IP的省及市分出来。我已经有IP和省分的对应数据库了,少的就是把它加入perl模块的方法。我想这对日志分析还是很有用的,希望大家帮忙。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-144144-1-1.html 上篇帖子: AWStats的千万级日志解决方案:databasebreak=day + Canlendar.php 日历浏览 下篇帖子: AWStats 7.0 发布, Linux下的安装配置使用备忘
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表