1、前言
Visitors - fast web log analyzer 設計為可快速分析 Linux、Windows、Unix-link 等架設 Web 伺服器的 Log,使用方式很簡單只要使用命令列並指定 Log 名稱及輸出流量分析報告格式 (Txt / Html) 即可,因此很適合線上即時查看流量。文章目錄
1、前言2、實作環境
3、安裝及設定
步驟1.下載 visitors 套件
步驟2.產生 visitors 執行檔
步驟3.產生分析圖表
步驟4.設定排程
4、參考
5、Me FAQ
Q1.make: cc: Command not found?
Q2.gcc: error trying to exec 'cc1plus': execvp: No such file or directory?
Visitors 特色如下:
- 不需安裝,每秒可處理 150,000 行 (視機器效能而定,但至少比其它分析軟體快多了)。
- 設計上採用指令模式並可輸出 (Txt / Html),因此使用 SSH 登入主機時能夠非常方便且即時查看流量。
- 從 Visitors v0.3 以後便支援即時統計、遊客流量統計。
- 可清鬆指定產生的流量分析報表項目,相對應參數請參考 Visitors on line documentation。
- Visitors 為可攜式 C 語言程序,因此可方便使用在不同的系統中。
- 產生的 HTML 報表並不包含圖片或外部的 CSS,因此能方便的將報表透過電子郵件來寄送。
- Visitors 為使用 GPL 授權的自由軟體,所以使用它並不用付費,如果您有興趣想訂製符合您需要的報表歡迎與原作者連絡 antirez (at) invece (dot) org。
Visitors 官網資源:
2、實作環境
- CentOS 5.1 (Linux 2.6.18-53.1.4.el5)
- gcc-c++-4.1.2-14.el5
- visitors-0.7
3、安裝及設定
步驟1.下載 visitors 套件
至 Visitors 下載 visitors-0.7.tar.gz。# wget http://www.hping.org/visitors/visitors-0.7.tar.gz //下載套件
# tar zxvf ~/visitors-0.7.tar.gz //解開 visitors 壓縮檔
步驟2.產生 visitors 執行檔
若無安裝 C+ compiler 就利用 yum -y install gcc-c++ 安裝吧,否則等一下將無法產生 visitors 執行檔。# rpm -qa gcc-c++ //確認是否安裝 C+ compiler
gcc-c++-4.1.2-14.el5
產生 (編譯 complier) visitors。
# cd ~/cd visitors_0.7
# make
cc -c -O2 -Wall -W -g visitors.c
cc -c -O2 -Wall -W -g aht.c
cc -c -O2 -Wall -W -g antigetopt.c
cc -c -O2 -Wall -W -g tail.c
cc -o visitors -O2 -Wall -W -g visitors.o aht.o antigetopt.o tail.o
# cp visitors /usr/local/bin/ //複製執行檔至 /usr/local/bin 下
步驟3.產生分析圖表
接下來就是開始分析報表吧,相關參數說明如下:- -A:分析所有報表項目。
- -m 10:項目最多顯示 10 行 (Requested pages、Requested images and CSS...)。
- Web Log:200801.log。
- -o html:輸出的報表格式。
- /home/web/200801.html:報表輸出的路徑及檔案名稱。
若在你的 web log 中有您不想分析的網站時 (例如自已的網站),可加上參數 (ex. -P http://www.weithenn.org) 即可。
# /usr/local/bin/visitors -A -m 10 200801.log -o html > /home/web/200801.html
--
7055 lines processed in 1 seconds
0 invalid lines, 0 blacklisted referers
此次實作環境中所使用的機器處理效能,大概是每秒 10.6 萬行左右。
CPU0: Intel(R) Xeon(R) CPU 5130 @ 2.00GHz *2
Mem: 2075284k total
以下是測試分析不同行數的 web log 分析速度
分析 Log 內容為 5.6 萬行,分析時間花費為 1 秒。# wc -l 200708.log | awk '{print$1}'
56133 //5.6 萬行
# /usr/local/bin/visitors -A -m 50 200708.log -o html > /home/web/200708.html
--
56133 lines processed in 1 seconds //分析時間花費 1 秒
0 invalid lines, 0 blacklisted referers
分析 Log 內容為 31 萬行,分析時間花費為 3 秒。
# wc -l 2007.log | awk '{print$1}'
318290 //31 萬行
# /usr/local/bin/visitors -A -m 100 2007.log -o html > /home/web/2007.html
--
318290 lines processed in 3 seconds //分析時間花費 3 秒
0 invalid lines, 0 blacklisted referers
步驟4.設定排程
因為我的 web log 都是每天產生的,所以就寫個簡單的 shell script 然後排程執行吧。# vi /usr/local/sbin/visitors.sh //建立 shell 檔內容如下
#!/bin/sh
TODAY=`date +%Y%m%d`
LOG="/home/log/apache"
DES="/home/web"
VISITORS=/usr/local/bin/visitors
SHOW="50"
${VISITORS} -A -m ${SHOW} ${LOG}/${TODAY}.log -o html > ${DES}/${TODAY}.html
# chmod +x /usr/local/sbin/visitors.sh
最後設定排程作業。
# crontab -e
55 23 * * * /usr/local/sbin/visitors.sh //每天 23:55 執行
4、參考
- Visitors - fast web log analyzer
- Visitors, on line documentation for 0.7
- Visitors - ScreenShot
- 1秒で10万行を処理するフリーの超高速なログ解析ソフト「Visitors」 - GIGAZINE - IT四重奏
- Birds Of a Feather | ログ解析ツール Visitors のプチ改造
- HowtoForge Forums - Notes for CentOS 4.1 install Archive
- HowtoForge Forums - CentOS 4.4 ~ cc: Command not found
5、Me FAQ
Q1.make: cc: Command not found?
Error Message:當執行 make 欲產生 visitors 執行檔時發生錯誤 make: cc: Command not found?
# make
cc -c -O2 -Wall -W -g visitors.c
make: cc: Command not found
make: *** visitors.o Error 127
Ans:
在 Google 上找到這篇 HowtoForge Forums - CentOS 4.4 ~ cc: Command not found,原因是因為機器沒有裝 C compiler 所以就無法順利執行了。(The C compiler is missing on your server. Install the GCC packages) 安裝 gcc-c++ 套件後就可以順利產生了。
# yum -y install gcc-c++
Q2.gcc: error trying to exec 'cc1plus': execvp: No such file or directory?
Error Message:當執行 make 欲產生 visitors 執行檔時發生錯誤 gcc: error trying to exec 'cc1plus': execvp: No such file or directory ?
# make
gcc: error trying to exec 'cc1plus': execvp: No such file or directory
Ans:
應該也是沒有安裝 gcc-c++ 造成的,請安裝吧。相關資訊請參考 gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory | MDLog:/sysadmin。
# yum -y install gcc-c++