Nginx日誌分析利器GoAccess

Nginx的日誌/var/log/nginx/能夠直接用tail去看,或者用更高級的GoAccess去看,另外GoAccess也能夠生成HTML報告:
http://goaccess.prosoftcorp.com/goaccess_html_report.htmlphp

GoAccess 在 CentOS 上的安裝方法:
1. 須要安裝 GeoIP, ncurses, glib2, 一句搞定
yum -y install glib2 glib2-devel ncurses ncurses-devel geoIP geoIP-devel
html

2. 下載 GoAccess 解壓編譯安裝linux

# wget http://jaist.dl.sourceforge.net/project/goaccess/0.6.1/goaccess-0.6.1.tar.gz
# tar zxvf goaccess-0.6.1.tar.gz
# cd goaccess-0.6.1
# ./configure –enable-geoip –enable-utf8
# make && make install
# make clean
nginx

3. GoAccess 使用方法
進入 Nginx 日誌所在目錄
apache

命令行直接查看 服務器

# goaccess -f access.log -c -a ssh

出來圖了,日誌格式選 NCSA動畫

也能夠生成 HTML 報告 網站

goaccess -f /var/log/nginx/access.log -a > report.html spa

zcat -f /var/log/nginx/access.log* | goaccess -a > report.html

zcat access.log.1.gz | goaccess

或者乾脆分析目前下全部日誌

zcat access.log* | goaccess

若是須要分析某天的日誌,例如10月5號那天的日誌,咱們讓linux管道命令來大顯身手^_^。

sed -n ‘/05\/Dec\/2010/,$ p’ access.log | goaccess -s –b

分析從11月5號到12月5號一個月內的日誌

sed -n ‘/5\/Nov\/2010/,/5\/Dec\/2010/ p’ access.log | goaccess -s –b

當你不但願在服務器上安裝goaccess程序,能夠經過調用本地的goaccess程序來分析服務器上的日誌(很神奇吧^_^):

ssh user@server ‘cat /var/log/apache2/access.log’ | goaccess -s -a

最讓我興奮的功能是goaccess支持排序!這樣你就能夠tab到request這個模塊,然後按s,跳出來的對話框選擇「Time Serverd」  「DESC」  這樣你就能夠很是清楚的知道你的網站是哪些頁面響應很慢了!

附下個人NGINX日誌格式:

log_format  main  ’$remote_addr – $remote_user [$time_local] 「$request」 ‘

            ‘$status $body_bytes_sent 「$http_referer」 ‘

            ‘」$http_user_agent」 $request_time‘;

再附下個人~/.goaccessrc配置:

color_scheme 0
date_format %d/%b/%Y
log_format %h %^[%d:%^] 「%r」 %s %b 「%R」 「%u」 %T

goaccess高級設定:

for Apache HTTP Server 預設設定:

CustomLog logs/access_log common可選Common Log Format (CLF)
CustomLog logs/access_log combined可選NCSA Combined Log Format

for Lighttpd mod_accesslog預設格式 : (需於GoAccess設定畫面手動編輯Log Format)

Log Format: %h %^ %^ [%d:%^] 「%r」 %s %b 「%R」 「%u」
Date Format: %d/%b/%Y

完成設定後產生~/.goaccessrc,往後執行goaccess -f /var/log/httpd/access_log不會再跳出這個設定畫面;若要修改設定,可加上-c參數,例如: goaccess -c -f / var/log/httpd/access_log或直接編輯設定檔案vi ~/.goaccessrc

基本操做

# goaccess -f /var/log/httpd/access_log

t:回到頂端
b:捲到最末
q:關閉視窗或離開程式
上下方向鍵:捲動畫面
數字鍵0 ~ 9,接着按英文字母o或右方向鍵:查看某項目的細節(*注)

*注: 0 表示第十項; Shift + 1 表示第十一項

排除統計某來源IP 
# goaccess -e 123.123.123.123 -f /var/log/httpd/access_log

檢視Host詳細資料的時候顯示來自該Host的User-Agents資訊
# goaccess -a -f /var/log/httpd/access_log

產生HTML報表(靜態報表) 
# goaccess -a -f /var/log/httpd/access_log > result.html

只統計來自某IP的記錄
# grep ^123.123.123.123 /var/log/httpd/access_log | goaccess

注:目前GoAccess沒法即時統計pipe進來的資料,往後改版或許會補強這部份(Ref: man goaccess )

refer:
http://www.cnblogs.com/yjf512/p/3640346.html

相關文章
相關標籤/搜索