nginx日誌分析工具 goaccess-nginx

提到web服務器就不得不說Nginx。這款由俄羅斯人開發的小巧的web服務軟件近幾年來風靡大江南北;成爲許多草根站長建設網站的首選。但因爲歷史緣由,nginx在日誌分析工具相較於傳統的apache、lighthttp等要匱乏的多。html

筆者今天在這裏爲各位介紹一個牛X的實時日誌分析工具GoAccess。不只安裝簡單,功能強大,而且支持nginx日誌格式。實在是草根站長們手中又一犀利武器,不可不備^_^。linux

目前主流的日誌分析工具多采用html格式呈現給網站管理者或用戶。這樣的作法無可厚非;既然開通了網站,經過瀏覽器查看訪客詳情也符合邏輯。但,這類工具的缺點也十分明顯,實時性較差。爲了提升服務器效能,管理員多會按時歸檔日誌統計信息。這樣一來,不少故障信息都沒法實時分析。若是管理員登陸了文字界面的Linux,查看起來就更方便了。nginx

特點簡介

使用GoAccess就不會有這樣的困擾啦。各位能夠把它做爲傳統日誌分析工具很好的補充。在X windows或text mode下實時查看訪客詳情,顯示界面很友好;GoAccess表示毫無壓力^_^。git

目前,咱們能夠經過這款軟件查看的統計信息有:web

  • 統計概況,流量消耗等
  • 訪客排名
  • 動態Web請求
  • 靜態web請求,如圖片、樣式表、腳本等。
  • 來路域名
  • 404 錯誤
  • 操做系統
  • 瀏覽器和搜索引擎
  • 主機、DNS和ip地址
  • HTTP 響應代碼
  • 引薦網站
  • 鍵盤佈局
  • 自定義顯示
  • 支持超大日誌(分析速度很快)

goaccess_screenshot3M-03L

支持的日誌格式

目前,這款軟件支持Common Log Format (CLF) 和 Combined Log Format(XLF/ELF) 格式的日誌。分析傳統的apache格式日誌固然毫無問題。同時,只要將nginx的日誌格式定義爲apache格式,對它的分析也不在話下(目前,redhat提供的nginx軟件包默認日誌格式和apache基本一致)。apache

goaccess_01

GoAccess安裝注意事項

使用DebianUbuntu的同窗能夠直接經過apt-get來下載安裝軟件。自動解決軟件的依賴問題。Redhat或CentOS用戶能夠有現成rpm包下載安裝;但須要手動解決軟件依賴。ubuntu

下面筆者着重介紹下在類Redhat系統下如何編譯安裝GoAccess:windows

須要用到的幾個庫文件有:centos

  1. glib2
  2. GeoIP
  3. ncurses

這些都時經常使用的庫文件,直接yum安裝就能搞定:瀏覽器

yum install glib2 glib2-devel GeoIP-devel ncurses-devel

wget http://sourceforge.net/projects/goaccess/files/0.5/goaccess-0.5.tar.gz/download
tar zxvf goaccess-0.5.tar.gz
cd goaccess-0.5
./configure --enalbe-geoip --enable-utf8
make && make install

若是你使用的服務器版本不在以上四個之列,能夠去官網的Download頁面查看相應的安裝方式,目前支持的還有git、FreeBSD等。

用法介紹

GoAccess的基本語法以下:

goaccess [ -b ][ -s ][ -e IP_ADDRESS][ -a ] <-f log_file >

參數說明:

  • -f – 日誌文件名
  • -b – 開啓流量統計,若是但願加快分析速度不建議使用該參數
  • -s – 開啓HTTP響應代碼統計
  • -a – 開啓用戶代理統計
  • -e – 開啓指定IP地址統計,默認禁用

用法示例:

最簡單、經常使用的命令就是直接調用goaccess命令啦,不帶任何影響效率的其餘參數

goaccess -f access.log

若是須要查看其餘信息,咱們加入以下參數以顯示HTTP響應代碼、用戶代理、流量消耗

goaccess -f access.log -s -a -b

若是你以爲這樣還不能知足你的需求。別急,goaccess支持linux管道(Pipe),咱們能夠將日誌文件預處理後,再交給goaccess去分析。

zcat access.log.1.gz | goaccess

讓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 -b

goaccess-general

GoAccess日誌分析的速度

大部分服務器對日誌分析的速度都比較敏感,若是在分析日誌時形成服務器其餘服務的不穩定,那還不如不用呢。據GoAccess官方的說法:使用AMD Sempron 2.31GHz的CPU+2GB內存,開啓GoAccess全部功能,該軟件每秒能夠處理10萬行日誌。固然,若是使用的CPU更強勁,擁有更多的內存,GoAccess的表現會更加出色。

相關文章
相關標籤/搜索