天天看點

Linux 日志分析工具之awstats

        官方網站:AWStats is a free powerful and featureful tool that generates advanced web, streaming, ftp or mail server statistics, graphically. This log analyzer works as a CGI or from command line and shows you all possible information your log contains, in few graphical webb pages. It uses a partial information file to be able to process large log files, often and quickly. It can analyze log files from all major server tools like Apache log files (NCSA combined/XLF/ELF log format or common/CLF log format), WebStar, IIS(W3C log format) and a lot of other web, proxy, wap, straming servers, mail servers and some ftp servers.

        Awstats 是一個免費的日志分析工具,用perl開發。可以用于分析各種linux下的應用程式産生的日志,包括 apache/squid/samba/resin/tomcat 等等。在這裡,我們主要用它來分析apache日志。

        統計包括通路,通路者,頁面,點選,高峰時間,作業系統,浏覽器,搜尋引擎,關鍵字,機器人通路,端開的連結和更多的阻力截圖排序。

        Awstats是一個非常簡潔而且強大的統計工具。它可以統計您站點的如下資訊:

一:通路量,通路次數,頁面浏覽量,點選數,資料流量等精确到每月、每日、每小時的資料

二:通路者國家、通路者IP、作業系統、浏覽器等

三:Robots/Spiders的統計

四:紡客持續時間

五:對不同Files type 的統計資訊

六:Pages-URL的統計

七:其它資訊(搜尋關鍵字等等) 

通路次數、獨特訪客人數,

通路時間和上次通路,

使用者認證、最近認證的通路,

每周的高峰時間(頁數,點選率,每小時和一周的千位元組),

域名/國家的主機訪客(頁數,點選率,位元組,269域名/國家檢測, geoip 檢測),

主機名單,最近通路和未解析的 IP 位址名單

大多數看過的進出頁面,

檔案類型,

網站壓縮統計表(mod_gzip 或者 mod_deflate),

使用的作業系統 (每個作業系統的頁數,點選率 ,位元組, 35 OS detected),

使用的浏覽器,

機器人通路(檢測 319 個機器人),

蠕蟲攻擊 (5 個蠕蟲家族),

搜尋引擎,利用關鍵詞檢索找到你的位址,

HTTP 協定錯誤(最近查閱沒有找到的頁面),

其他基于 URL 的個性報導,連結參數, 涉及綜合行銷領域目的.

貴網站被加入"最喜愛的書簽".次數.

螢幕大小(需要在索引頁補充一些 HTML 标簽).

浏覽器的支援比例: Java, Flash, RealG2 reader, Quicktime reader, WMA reader, PDF reader.

負載平衡伺服器比率叢集報告.

        Awstats 的運作需要 perl 環境的支援,從awstats 官方文檔來看,它對apache http server 的支援是非常完美的。如果使用的 nginx,要運作awstats有點麻煩。首先nginx對perl 的支援是比較弱的,甚至官方也不建議使用;另外在日志格式上需要修改後才能正常運作。

awstats官方網站: http://awstats.sourceforge.net/   

perl官方網站: http://www.perl.com/    

awstats項目位址:http://sourceforge.net/projects/awstats/

        AWStats的功能很多,我在此主要用它來分析apache伺服器的日志。安裝使用之前還是說說大緻的工作原理,AWStats提供一系列的perl腳本實作:服務配置,日志讀取,報表生成等功能。

        而功能實作的具體執行過程是:首先,當然是apache将通路情況記錄到日志中,AWStats每次執行更新時讀取這些日志,分析日志資料,将結果存儲到資料庫中,(這個資料庫是AWStats自帶的【就是一文本檔案】,并不需要第三方軟體支援。),最後AWStats提供一個cgi程式通過web頁面來顯示資料庫中所統計的資料。

AWStats的工作模式是這樣的:

分析日志:運作後将日志統計結果歸檔到一個AWStats的資料庫(純文字)裡;

輸出日志:分兩種形式

一種是通過cgi程式讀取統計結果資料庫輸出(Linux中);

一種是運作背景腳本将輸出導出成靜态檔案(Windows中);

其他同類日志統計分析工具有:

AWStats

Analog

Webalizer

環境資訊約定:

日志檔案位置:/usr/local/apache/logs

系統:CentOS6.5 X64

awstats安裝位置:/usr/local/awstats

JAWStats安裝位置:/htdoc/stats/

這裡我們配置的站點域名:www.test.com

WEB伺服器:Apache 2.2

靜态頁面檔案輸出路徑:/usr/local/apache/data(可選)

Requirements:

To use AWStats, you need the following requirements:

Your server must log web access in a log file you can read.

You must be able to run perl scripts(.pl files) from command line and / or as CGI(Perl 5.007003 or higher required to run AWStats 6.9 or higher)

If not, you can solve this by downloading last Perl version at  ActivePerl (Win32) or  Perl.com(Unix/Linux/Other)

1、安裝 perl

awstats 是由 perl 語言編寫的,不管是在Windows還是Linux下,都需要安裝perl。是以要首先準備好 perl 環境,通常linux系統都是自帶了perl的。

2、下載下傳 awstats 工具(Last stable version is 7.4),并解壓至正常目錄 /usr/local

3、安裝 awstats

由于 wget 下來的封包件的權限是非 root使用者的,是以需要修改權限,否則稍後 *.pl 無法運作。

Awstats 會自動檢測httpd.conf 配置檔案,并在其配置檔案末尾添加如下語句:

awstat 目錄:

安裝目錄: /usr/local/awstats

配置檔案: /etc/awstats

資料檔案: /var/lib/awstats

3、檢視awstats配置檔案

        awstats_configure.pl 還将根據安裝過程中您的回答(要分析的網站域名)資訊,生成配置檔案。結束這個向導以後,我們對www.test.com站點的awstats配置檔案已經配置好了。下面我們來檢視并修改一下這個配置檔案。

接下來,編輯配置檔案,AWStats 支援針對多個子域名生成分析日志,主要修改以下幾行:

LogFile 指明apache的access log所在,這裡也可以使用變量,例如:LogFile="/data/log/imysql.cn-access_log.%YY-24%MM-24%DD",具體的請檢視 相關文檔。

LogFormat 表示日志格式,我在apache的日志格式中,采用 combined,是以這裡寫成4。如果apache裡設定的是 common,則在這裡寫 2,具體的對應關系可以看 Awstats文檔。

SiteDomain 要分析的域名

DirData 分析結果存放位置(awstas資料庫)

如果apache 進行了日志切割, 這裡需要随機應變

    在上面的我們講解了awstats的yum安裝與源碼安裝,同時配置了一個監控執行個體,下面我們就執行一下這個監控執行個體www.test.com。

1、更新awasts資料庫

        現在我們需要用awstats來生成對apache日志的統計分析資訊。由于我們用的awstats是支援perl的FCGI動态化通路頁面,是以此處我們隻需要直接更新資料庫即可。FCGI程式會自動将資料庫以動态頁面的形式展現出來,無須再手動生成靜态頁面了。

接下來我們來檢視一下分析結果

如果還想通過web server檢視分析結果,就需要讓web server支援cgi才行了。在這裡,我使用apache作為web server,是以我在編譯apache時,加上了選項:--enable-cgi。

LoadModule cgid_module modules/mod_cgid.so

注意cgi腳本的執行權限,一定要apache使用者擁有執行權限,否則可能提示Server Internal 錯誤。

注,如果,你順利的執行了上面的所有操作。那麼OK,現在你已經可以通過通路:http://localhost/awstats/awstats.pl?config=www.test.com ,效果如下圖:

Linux 日志分析工具之awstats

cron更新資料庫

    由于要得到新的統計資訊,就必須更新資料庫,也就是說重新做讀取日志。分析日志提取裡面新增的部分進行分析,将更新的資料存入資料庫的過程。最好就讓它定時執行。

    最後需要說明的是,在文中已經多次提到過,要能反應最新資訊就必須更新資料庫。也就是說你可能已經對它進行了多次通路,但是檢視統計頁面發現沒變化。這是因為這些日志還沒有更新到資料庫.簡單的方法就是定時執行。

假設我有兩個站點:

www.test.com

mail.test.com 

配置多站點監控(也就是配置 多個awstats 配置檔案即可。分析多個域名的日志,就是把 awstats_configure.pl 多操作幾次)

注,配置 mail.test.com的 配置檔案,其實步驟和上面www.test.com一樣,隻是在域名的地方做更改即可。下面我們就再來示範一下,

好了,下面步驟和上面www.test.com配置步驟一樣,我這裡就不重複說明。

1、IP 位址國家、區域顯示問題

    Awstats預設安裝之後是不具有識别通路者的國家和地區資訊的,是以需要安裝插件支援Awstats列出通路者的國家和地區,便于分析GeoIP免費的是國家/IP的資料表,GeoIPCityLite是地區的資料表。

(1).MaxMind目前免費提供了GeoIP 和GeoIPCityLite 資料包:可以定期每個月從以下位址下載下傳

2、中文亂碼問題

    Awstats是一套非常好用的免費的日志分析軟體,他是用perl實作的,支援web log、ftp log和mail log;而且它還能自動根據你浏覽器的字元設定來選取語言(支援中文)。但是預設安裝的話有個問題,就是用來搜尋的關鍵字如果是中文的話顯示出來是亂碼的。 之是以搜尋的關鍵字句會變成亂碼的原因,主要是因為現在的搜尋引擎都是使用UTF8,而Awstats是使用decodeUTFkeys這個plugin來處理搜尋引擎的UTF8關鍵字,預設是沒有打開的,是以在顯示上會出現亂碼。要解決中文亂碼問題,方法也很簡單,

在配置檔案中把decodeutfkeys這個plugin打開就可以了。在配置檔案中找到:

#LoadPlugin="decodeutfkeys"

去掉前面的#就可以了。

這樣我們的中文顯示就完成了,但是打開LoadPlugin="decodeutfkeys"這個插件在一些機器上會報錯,下面我們來示範一下報錯的情況。

Linux 日志分析工具之awstats

從上面的報錯可以看出這是缺少 Perl 的 URI:Escape子產品,下面我們解決一下這個問題:

    AWStats是在Sourceforge上發展很快的一個基于Perl的WEB日志分析工具。相對于另外一個非常優秀的開放源代碼的日志分析工具Webalizer,AWStats的優勢在于:

1.界面友好:可以根據浏覽器直接調用相應語言界面(有簡體中文版)

2.基于Perl:并且很好的解決了跨平台問題,系統本身可以運作在GNU/Linux上或Windows上(安裝了ActivePerl後);分析的日志直接支援Apache格式 (combined)和IIS格式(需要修改)。Webalizer雖然也有Windows平台版,但目前已經缺乏 維護;AWStats完全可以實作用一套系統完成對自身站點不同WEB伺服器:GNU/Linux/Apache和Windows/IIS伺服器的統一統計。

3.效率比較高:AWStats輸出統計項目比Webalizer豐富了很多,速度仍可以達到Webalizer的1/3左右,對于一個日通路量 百萬級的站點,這個速度都是足夠的;

4.配置/定制友善:系統提供了足夠靈活但預設也很合理的配置規則,需要修改的預設配置不超過3,4項就可以開始運作,而且修改和擴充的插件還是 比較多的;

5.AWStats的設計者是面向精确的"Human visits"設計的,是以很多搜尋引擎的機器人通路都被過濾掉了,是以有可能比其他日志統計工具統計的數字要低,來自公司内部的通路也可以通過IP過濾 設定過濾掉。

6.提供了很多擴充的參數統計功能:使用ExtraXXXX系列配置生成針對具體應用的參數分析會對産品分析非常有用。

AWStats 是一個免費的強大而有個性的工具,帶來先進的網絡,流量,FTP或郵件伺服器統計圖. 本日志分析器作為CGI或從指令行在數個圖形網頁中顯示你日志中包含的所有可能資訊. 它利用一部分檔案資料就能經常很快地處理大量日志檔案, 它能分析日志檔案來自從各大伺服器工具 ,如 Apache日志檔案 s (NCSA combined/XLF/ELF log format or common/CLF log format), WebStar, IIS (W3C的日志格式)及許多其他網站,Proxy(代理伺服器)、Wap、流量伺服器、郵件伺服器和一些 FTP伺服器。

看一看這個比較表在最著名統計工具 (AWStats, Analog, Webalizer,...)之間有何特點和不同的想法。AWStats 是一個在GNU通用公共許可證下發行的免費軟體. 你可以看看這個許可證圖表而知道你可以/不可以做。由于AWStats工程來自網上資訊,但也作為CGI、 它可以與允許進入Perl、CGI與日志的大型網站主辦提供商一起工作。

http://www.cnblogs.com/fnng/archive/2012/08/31/2666175.html

http://freeloda.blog.51cto.com/2033581/1346412

http://blog.fity.cn/post/389/

http://zzxtbl.blog.51cto.com/7620672/1650825

1、安裝環境

windows Server 2008 R2

apache 2.2

awstats版本為7.3

Windows系統下配置 apache 日志切割方法:

A、使用 cronolog 日志輪轉工具

從 http://cronolog.org/download/  可以下載下傳 cronolog程式, 把下載下傳的 cronolog程式放到 apache 的bin 目錄下(詳細參數參加: http://cronolog.org/usage.html)

Linux 日志分析工具之awstats

B、使用 rotatelogs 程式

rotatelogs 是 apache 自帶的管道日志程式,參數如下(參考:http://lamp.linux.gov.cn/Apache/ApacheMenu/programs/rotatelogs.html )

Linux 日志分析工具之awstats

二、安裝備忘

1、注意:由于awstats依賴于perl,是以提前安裝perl環境

下載下傳perl:   http://www.activestate.com/activeperl/downloads

或者直接在百度搜尋下載下傳: activeperl 

根據自己的環境選擇不同的安裝包,通常下載下傳 ActivePerl_5.x.msi 可執行程式,然後安裝

2、配置 apache 支援 perl (CGI)

3、解壓AWStats

下載下傳AWStats(國内環境的話,需要自帶工具)

http://sourceforge.net/projects/awstats

自行選擇需要解壓的路徑

4、設定配置檔案

定位到awstats-7.3\tools下,執行 awstats_configure 檔案,這個檔案的主要功能就是設定WEB容器的路徑,log路徑等。

配置完後,APACHE的 httpd.conf 下會生成類似一下的内容

同時在awstats-7.3\wwwroot\cgi-bin檔案夾下會生成一個 awstats.domain.com.conf 檔案

4、修改配置檔案

5、生成資料

6、修改awstats檔案

7、浏覽器打開

在浏覽器中輸入類似的位址 http://localhsot/awstats/awstats.pl?config=domain.com,正常情況下即可看到結果

進階配置

1、增加一個顯示來訪IP歸屬地的功能

執行如下指令

ppm install Geo::IP::PurePerl

ppm install Geography::Countries

ppm install IP::Country

ppm install Geo-IPfree

ppm install Net-Xwhois

安裝GeoIP

http://dev.maxmind.com/geoip/legacy/geolite/

修改awstats.domain.com.conf檔案,找到如下内容

# 開啟 GeoIP 反查子產品

LoadPlugin="geoip GEOIP_STANDARD D:/awstats/awstats-x.x/wwwroot/cgi-bin/ipdata/GeoIP.dat"

# 開啟 IP 反查的外挂

LoadPlugin="geoipfree"

# 開啟 decodeutfkeys 外挂,解決”用以搜尋的關鍵詞”亂碼

LoadPlugin="decodeutfkeys"

更新配置檔案

perl.exe awstats.pl -config=domain.com -update

2、定期更新

通過win的計劃任務搞定

3、加一個需要使用者名才可以通路的功能

由于要求在内網通路,是以沒有涉及

參考閱讀:

http://luestudy.blog.51cto.com/8480481/1395362

http://blog.chinaunix.net/uid-7354272-id-2643593.html

怎樣在windows下安裝Perl

http://jingyan.baidu.com/article/380abd0aa6c7371d90192c1b.html

awstats 分析 nginx 日志

1、安裝nginx 以及 awstats 的過程就不講解了, 可以參考上面的内容。

2、本文主要介紹通過讓 awstats 對日志統計的結果生成靜态頁面,然後通過 Nginx 輸出以達到統計 Nginx 通路日志的效果,其中還包括如何讓 Nginx 自動切割日志檔案。對于nginx的日志,我的做法是按天切割。

跟 Apache HTTP Server(以下稱 Apache)不同的是,Apache 可以将日志輸出通過管道的方式進行重新定向,依此來進行自動的日志切割。Nginx 在現今版本上還沒能跟 Apache 一樣,通過%YY等參數按日期分批建立日志,但是通過給 nginx 程序發送一個特定的信号,可以使 nginx 重新生成日志檔案。我們可以定期執行一個 Shell 腳本來切換日志,重新命名或轉移,具體的腳本如下:

将以上腳本内容儲存為檔案名為 logcron.sh 存到自定的目錄中,例如 /opt/nginx/sbin/logcron.sh

使用 Crontab 讓該腳本程式在每天晚上 11 點 59 分自動執行,即可做到按天建立日志。

需要注意的是,nginx的日志應該遵循以下格式,才可以被awstats識别,如定義日志格式

執行 tools 目錄中的 awstats_configure.pl 配置向導,建立一個新的統計。

以上步驟預設會産生配置檔案 ==>> /etc/awstats/awstats.slog.fity.cn.conf

awstats 配置檔案的命名規則:awstats.website.conf

修改配置檔案

用浏覽器檢視到統計的詳細結果  http://youhostname/awstats/awstats.www.slog.fity.cn.html

至此,使用 awstats 已能完全支援 Nginx 的日志統計。

認證通路

一般站長都不願随便讓人知道自己站的真實流量,是以要把 Awstats 統計結果頁面進行密碼保護。Nginx 使用的是跟 Apache 一樣的密碼加密格式,這裡需要用到 apache 自帶的工具 htpasswd。

如果你在本機上預設裝有 Apache,這你就隻需在它的程式目錄下運作

如果你想給你的awstats加上通路密碼,可以見這裡:nginx為目錄或網站加上密碼認證

問題彙總

當再次輸入網址時,在頁面上隻出現了一行字:

Content-type: text/html; charset=gb2312 Cache-Control: public Last-Modified: Sat Feb 11 13:14:37 2016 Expires: Sat Feb 11 13:14:37 2016 

如果出現,是因為浏覽器不支援frame(似乎是伺服器端問題),請在頁面上右鍵選擇檢視源檔案,有這樣一行字:Your browser does not support frames.You must set AWStats UseFramesWhenCGI parameter to 0 to see your reports.

好,現在去修改awstats.conf 配置檔案,把UseFramesWhenCGI參數設成0。

http://www.ibm.com/developerworks/cn/linux/l-cn-awstats-nginx/

http://blog.sina.com.cn/s/blog_8db76d6d0101342m.html

http://lodar.net/methods-of-apache-web-log-daily-rotation/

http://www.linuxde.net/2013/06/14027.html

http://www.cnblogs.com/cocowool/archive/2010/09/07/1820626.html

http://www.cnblogs.com/cocowool/archive/2010/09/10/1823504.html

繼續閱讀