阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用webalizer分析Nginx日志

168次阅读
没有评论

共计 4739 个字符,预计需要花费 12 分钟才能阅读完成。

一、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、安装相关需要的依赖包软件

[root@www webalizer-2.23-08]# 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 可以下载后使用下面的不检测依赖关系方式安装,不然会报一堆依赖错误

[root@www ~]# rpm -ivh –force –nodeps gd-devel-2.0.35-11.el6.x86_64.rpm

2、编译安装 webalizer 软件

[root@localhost ~]# tar xf webalizer-2.23-08-src.tgz

[root@localhost ~]# cd webalizer-2.23-08

[root@localhost webalizer-2.23-08]# ./configure –prefix=/usr/local/webalizer –enable-bz2 –enable-geoip

参数说明:

–enable-bz2    打开对 bz2 压缩文件的支持

–enable-geoip  通过 IP 进行位置定位

[root@www webalizer-2.23-08]# make && make install

3、创建相关目录和修改配置文件

[root@www ~]# mkdir /usr/local/nginx-1.12.1/html/webalizer

[root@www ~]# cp /usr/local/etc/webalizer.conf.sample /etc/webalizer.conf

[root@www ~]# vim /etc/webalizer.conf

LogFile        /usr/local/nginx-1.12.1/logs/access.log  需要分析的日志

LogType        clf  定义了正在处理的日志类型

OutputDir      /usr/local/nginx-1.12.1/html/webalizer  webalizer 分析日志输出文件的目录

HistoryName    webalizer.hist  指定 webalizer 生成的历史文件的名称

Incremental    yes  增量处理日志,允许使用多个部分日志文件

IncrementalName        webalizer.current  指定文件名以保存增量数据

ReportTitle    Usage Statistics for  作为标题显示的文本

HostName      192.168.10.10    定义报表的主机名,这是在标题中使用的

上面的配置文件配好后,可以指定配置文件分析日志文件然后生成网页文件

[root@localhost ~]# /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… [05/31/2018 18:23:11]

Generating report for May 2018

Saving history information…

Generating summary report

174 records (163 ignored) in 1 seconds, 174/sec

下面是生成的网页文件

使用 webalizer 分析 Nginx 日志

为了让网页文件动态更新,可以把命令写入定时任务,定时执行。

Webalizer 这种工具是把分析的结果形成一个文件,文件里有图片有表格等,并且这个文件可以以网页的形式打开。以下是常用的参数。

-t  指明报告题目的主机名可以是网站的名称

-F 日志格式类型有 clf /ftp/ squid

-p  递增模式,没分析一次后就会产生一个历史文件,这样下次在分析的时候,就可以不处理分析过的部分。

-o  指定存放分析结果内容的文件。

-n  指定的服务器的主机名

三、webalizer 基本使用

1、webalizer 语法格式及参数说明

分析一个 nginx 的 access 日志,并查看 index.html

webalizer access_log

webalizer 参数说明

Usage: webalizer [options] [log file]

-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.linuxidc.com

-o dir = output directory to use // 指定输出目录,分析结果将会保存到这个目录

-t name = report title‘name’// 报告文件的标题

-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。

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计4739字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中