最佳Nginx日誌分析工具Goaccess

很是小又精悍的 Nginx 日誌分析工具 Goaccess,處理速度很是快,我用 XShell 查看,還能夠生成 html 報告,先看圖 php

最佳 Nginx 日誌分析工具 GoAccess   Best Nginx log analyzer a0266da1ac649a3a最佳 Nginx 日誌分析工具 GoAccess   Best Nginx log analyzer 3a966303ef6baaf7最佳 Nginx 日誌分析工具 GoAccess   Best Nginx log analyzer 4a9096e679782f92

最佳 Nginx 日誌分析工具 GoAccess   Best Nginx log analyzer 9a8e462964e4da52最佳 Nginx 日誌分析工具 GoAccess   Best Nginx log analyzer 39ca1719fc1c0c9c最佳 Nginx 日誌分析工具 GoAccess   Best Nginx log analyzer 639a4ff93e05e519

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

 

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

命令行直接查看 apache

# goaccess -f access.log -c -a

出來圖了,日誌格式選 NCSA
最佳 Nginx 日誌分析工具 GoAccess   Best Nginx log analyzer 03a6e8d1142c6916 服務器

也能夠生成 HTML 報告 ssh

goaccess -f /var/log/nginx/access.log -a > report.html
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 )

Trouble Shooting

沒法使用F1 檢視help 訊息的替代方案

Ctrl + h

沒法使用F10 完成設定畫面的替代方案

vi ~/.goaccessrc

color_scheme 1
date_format %d/%b/%Y
log_format %h %^ %^ [%d:%^] "%r" %s %b "%R" "%u"

其餘log_format 參考:

Common Log Format (CLF): %h %^[%d:%^] "%r" %s %b
Common Log Format (CLF) with Virtual Host: %^:%^ %h %^[%d:%^] "%r" %s %b
NCSA Combined Log Format: %h %^[%d:%^] "%r" %s %b "%R" "%u"
NCSA Combined Log Format with Virtual Host: %^:%^ %h %^[%d:%^] "%r" %s %b "%R" "%u"
W3C: %d %^ %h %^ %^ %^ %^ %r %^ %s %b %^ %^ %u %R

變動熱鍵

cd /path/to/goaccess-0.5

vi goaccess.c

#將F1熱鍵改成F2
找到[F1]Help [O]pen detail view 
改成[ F2 ]Help [O]pen detail view

找到Case 265: 
改成Case 266 :

vi commons.c

#將Help訊息的F1改成F2
找到」 ^F1^ or ^CTRL^ + ^h^ [main help]「, 
改成」 ^ F2 ^ or ^CTRL^ + ^h^ [main help]「,

vi goaccess.1

#將manpage的F1字眼改成F2
找到.IP 「F1″ 
改成.IP 「 F2 」

vi settings.c

#將F10熱鍵改成F9
找到mvwprintw (win, 2, 2, 「[SPACE] to toggle – [F10] to proceed」); 
改成mvwprintw (win, 2, 2, 「[SPACE] to toggle – [ F9 ] to proceed」);

找到Case 274: 
改成Case 273 :

相關文章
相關標籤/搜索