使用webalizer分析Nginx日志
使用webalizer分析Nginx日志一、webalizer简介
webalizer是一个高效的、免费的web服务器日志分析程序。其分析结果以HTML文件格式保存,从而可以很方便的通过web服务器进行浏览。Internet上的很多站点都使用webalizer进行web服务器日志分析。
Webalizer是用C写的程序,所以其具有很高的运行效率。在主频为200Mhz的机器上,webalizer每秒钟可以分析10000条记录,所以分析一个40M大小的日志文件只需要15秒。
webalizer支持标准的一般日志文件格式(Common Logfile Format);除此之外,也支持几种组合日志格式(Combined Logfile Format)的变种,从而可以统计客户情况以及客户操作系统类型。并且现在webalizer已经可以支持wu-ftpd xferlog日志格式以及squid日志文件格式了。webalizer支持命令行配置以及配置文件。可以支持多种语言,也可以自己进行本地化工作。webalizer支持多种平台,比如UNIX、linux、NT, OS/2 和 MacOS等。
二、webalizer详细安装步骤
1、安装相关需要的依赖包软件
# yum -y install jpeg libjpeg-devel libpng-devel zlib-devel fontconfig-devel freetype-devel gd gd-devel libX11-devel libXpm-devel
以上依赖包有的源没有,就需要手动下载安装,如果全部能直接yum安装上就更好了。
如果上面的yum源没有的包libjpeg-devel,gd-devel可以下载后使用下面的不检测依赖关系方式安装,不然会报一堆依赖错误
# rpm -ivh --force --nodeps gd-devel-2.0.35-11.el6.x86_64.rpm
2、编译安装webalizer软件
# tar xf webalizer-2.23-08-src.tgz
# cd webalizer-2.23-08
# ./configure --prefix=/usr/local/webalizer --enable-bz2 --enable-geoip
参数说明:
--enable-bz2 打开对bz2压缩文件的支持
--enable-geoip通过IP进行位置定位
# make && make install
3、创建相关目录和修改配置文件
# mkdir /usr/local/nginx-1.12.1/html/webalizer
# cp /usr/local/etc/webalizer.conf.sample /etc/webalizer.conf
# vim /etc/webalizer.conf
LogFile /usr/local/nginx-1.12.1/logs/access.log 需要分析的日志
LogType clf 定义了正在处理的日志类型
OutputDir /usr/local/nginx-1.12.1/html/webalizerwebalizer分析日志输出文件的目录
HistoryName webalizer.hist 指定webalizer生成的历史文件的名称
Incremental yes 增量处理日志,允许使用多个部分日志文件
IncrementalName webalizer.current指定文件名以保存增量数据
ReportTitle Usage Statistics for 作为标题显示的文本
HostName 192.168.10.10 定义报表的主机名,这是在标题中使用的
上面的配置文件配好后,可以指定配置文件分析日志文件然后生成网页文件
# /usr/local/webalizer/bin/webalizer -c /usr/local/webalizer/etc/webalizer.conf
Webalizer V2.23-08 (Linux 3.10.0-327.el7.x86_64 x86_64) English
Using logfile /usr/local/nginx-1.12.1/logs/access.log (clf)
Creating output in /usr/local/nginx-1.12.1/html/webalizer
Hostname for reports is '192.168.10.10'
Reading history file... webalizer.hist
Reading previous run data.. webalizer.current
Saving current run data...
Generating report for May 2018
Saving history information...
Generating summary report
174 records (163 ignored) in 1 seconds, 174/sec
下面是生成的网页文件
为了让网页文件动态更新,可以把命令写入定时任务,定时执行。
Webalizer 这种工具是把分析的结果形成一个文件,文件里有图片有表格等,并且这个文件可以以网页的形式打开。以下是常用的参数。
-t指明报告题目的主机名可以是网站的名称
-F 日志格式类型有clf /ftp/ squid
-p递增模式 ,没分析一次后就会产生一个历史文件,这样下次在分析的时候,就可以不处理分析过的部分。
-o指定存放分析结果内容的文件。
-n 指定的服务器的主机名
三、webalizer基本使用
1、webalizer语法格式及参数说明
分析一个nginx的access日志,并查看index.html
webalizer access_log
webalizer参数说明
Usage: webalizer
-h = print this help message //打印帮助
-V = print version information //打印版本信息
-v = be verbose //显示分析过程信息
-d = print additional debug info //显示调试信息
-F type = Log type. type= (clf | ftp | squid | w3c) //指定日志格式
-f = Fold sequence errors //
-i = ignore history file//无视历史记录文件,可以通过该选项独立分析一个日志文件
-p = preserve state (incremental) //增量分析
-b = ignore state (incremental) //忽略增量分析
-q = supress informational messages//不打印额外信息,
-Q = supress _ALL_ messages//屏蔽所有信息
-Y = supress country graph //不显示来访国家信息
-G = supress hourly graph //不显示时间段统计信息
-H = supress hourly stats //同上
-L = supress color coded graph legends
-l num = use num background lines on graph //
-m num = Visit timout value (seconds) //指定超时时间
-T = print timing information //显示时间信息
-c file = use configuration file ‘file’ //使用配置文件,指定路径
-n name = hostname to use //指定域名,即分析结果中url的前缀。如http://www.kimnote.com
-o dir = output directory to use //指定输出目录,分析结果将会保存到这个目录
-t name = report> -a name = hide user agent ‘name’ //隐藏user-agent信息
-r name = hide referrer ‘name’ //隐藏referrer信息
-s name = hide site ‘name’ //隐藏指定网站信息
-u name = hide URL ‘name’ //隐藏指定url
-x name = Use filename extension ‘name’ //
-O name = Omit page ‘name’ //指定要忽略的页面
-P name = Page type extension ‘name’ //指定页面的扩展名,如.do .action .html .php等。
-I name = Index alias ‘name’
-K num = num months in summary table //索引页最大显示的月数
-k num = num months in summary graph //索引页图表中最大显示的月数
-A num = Display num top agents//显示num个user-agent 信息
-C num = Display num top countries // 显示 num个国家信息
-R num = Display num top referrers //显示num个referrer信息
-S num = Display num top sites //同上
-U num = Display num top URLs //同上
-e num = Display num top Entry Pages //同上
-E num = Display num top Exit Pages //同上
-g num = Group Domains to ‘num’ levels //
-X = Hide individual sites //
-z dir = Use country flags in ‘dir’
2、webalizer结果分析
通过IP过滤日志
加入你想看到 ip地址为 123.123.123.123 的访问情况,在webalizer的基础上加一个参数 –ip 123.123.123.123。
如果想看 10.10. 开头的ip,加参数 –ip 10.10. 就可以。
webalizer --ip 123.123.123.123 access_log
webalizer --ip 10.10. access_log
通过时间过滤日志
增加两个参数 –start、–end,格式为 00:00:00、23:59:59。
webalizer --start 01:00:00 --end 09:00:00 access_log
如项查看 凌晨1点到上网9点的日志,使用如下。
webalizer --start 01:00:00 --end 09:00:00 access_log
3、webalizer 缺点分析
在我使用中发现如下的不足:
日志内容的过滤功能缺失
不能按每秒、每分钟访问量的统计
如果一个服务有多个服务器,则分析起来比较费劲,特别是分析×××行为时
不能同时分析多个文件(第三点)
不能多线程(不是很重要)
界面太难看
4、webalizer 功能扩展
比较遗憾的是webalizer没有对指定的ip、ip段的分析,也不能支持对某个时间段的分析。
上述功能是很常用的功能,比如,服务器在某个时间段内受到了×××,想找出×××者ip。之所以webalizer分析速度惊人,如果日志是按天滚动的access日志,则基本在几秒内就能找出×××者IP。
页:
[1]