提到web服務器就不得不說Nginx。這款由俄羅斯人開發的小巧的web服務軟件近幾年來風靡大江南北;成爲許多草根站長建設網站的首選。但因爲歷史緣由,nginx在日誌分析工具相較於傳統的apache、lighthttp等要匱乏的多。html
筆者今天在這裏爲各位介紹一個牛X的實時日誌分析工具GoAccess。不只安裝簡單,功能強大,而且支持nginx日誌格式。實在是草根站長們手中又一犀利武器,不可不備^_^。linux
目前主流的日誌分析工具多采用html格式呈現給網站管理者或用戶。這樣的作法無可厚非;既然開通了網站,經過瀏覽器查看訪客詳情也符合邏輯。但,這類工具的缺點也十分明顯,實時性較差。爲了提升服務器效能,管理員多會按時歸檔日誌統計信息。這樣一來,不少故障信息都沒法實時分析。若是管理員登陸了文字界面的Linux,查看起來就更方便了。nginx
使用GoAccess就不會有這樣的困擾啦。各位能夠把它做爲傳統日誌分析工具很好的補充。在X windows或text mode下實時查看訪客詳情,顯示界面很友好;GoAccess表示毫無壓力^_^。git
目前,咱們能夠經過這款軟件查看的統計信息有:web
目前,這款軟件支持Common Log Format (CLF) 和 Combined Log Format(XLF/ELF) 格式的日誌。分析傳統的apache格式日誌固然毫無問題。同時,只要將nginx的日誌格式定義爲apache格式,對它的分析也不在話下(目前,redhat提供的nginx軟件包默認日誌格式和apache基本一致)。apache
使用Debian或Ubuntu的同窗能夠直接經過apt-get來下載安裝軟件。自動解決軟件的依賴問題。Redhat或CentOS用戶能夠有現成rpm包下載安裝;但須要手動解決軟件依賴。ubuntu
下面筆者着重介紹下在類Redhat系統下如何編譯安裝GoAccess:windows
須要用到的幾個庫文件有:centos
這些都時經常使用的庫文件,直接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 >
參數說明:
用法示例:
最簡單、經常使用的命令就是直接調用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官方的說法:使用AMD Sempron 2.31GHz的CPU+2GB內存,開啓GoAccess全部功能,該軟件每秒能夠處理10萬行日誌。固然,若是使用的CPU更強勁,擁有更多的內存,GoAccess的表現會更加出色。