使用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支持多種平臺,比如UNIXlinuxNT, 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-develgd-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

 

下面是生成的網頁文件

image.png

爲了讓網頁文件動態更新,可以把命令寫入定時任務,定時執行。

 

Webalizer 這種工具是把分析的結果形成一個文件,文件裏有圖片有表格等,並且這個文件可以以網頁的形式打開。以下是常用的參數。

-t  指明報告題目的主機名可以是網站的名稱

-F 日誌格式類型有clf /ftp/ squid

-p  遞增模式 ,沒分析一次後就會產生一個歷史文件,這樣下次在分析的時候,就可以不處理分析過的部分。

-o  指定存放分析結果內容的文件。

-n   指定的服務器的主機名

 

三、webalizer基本使用

1webalizer語法格式及參數說明

分析一個nginxaccess日誌,並查看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.kimnote.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  //顯示numuser-agent 信息

-C num = Display num top countries // 顯示 num個國家信息

-R num = Display num top referrers //顯示numreferrer信息

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

 

2webalizer結果分析

通過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:0023: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

3webalizer 缺點分析

在我使用中發現如下的不足:

日誌內容的過濾功能缺失

不能按每秒、每分鐘訪問量的統計

如果一個服務有多個服務器,則分析起來比較費勁,特別是分析×××行爲時

不能同時分析多個文件(第三點)

不能多線程(不是很重要)

界面太難看

 

4webalizer 功能擴展

比較遺憾的是webalizer沒有對指定的ipip段的分析,也不能支持對某個時間段的分析。

上述功能是很常用的功能,比如,服務器在某個時間段內受到了×××,想找出×××者ip。之所以webalizer分析速度驚人,如果日誌是按天滾動的access日誌,則基本在幾秒內就能找出×××者IP


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