GoAccess是一款開源的實時web紀錄檔分析器和互動式檢視器,用於視覺化檢視HTTP統計資訊,可以系統的終端上執行,也可以通過瀏覽器執行;
本文通過使用GoAccess分析Nginx的紀錄檔檔案,從而統計HTTP的請求情況;
當前伺服器:Ubuntu 22.04.1 LTS
本文是基於Docker容器,所以先在Docker安裝Nginx(Nginx安裝)
首先Nginx會產生紀錄檔檔案,GoAccess就是利用這個紀錄檔檔案的資訊來分析、統計HTTP資訊,然後會生成一個視覺化報表,我們會將這個報表替換掉Nginx的index.html歡迎頁面,從而直接展示視覺化報表,所以這裡的Nginx要對映html檔案到宿主機,同時Goaccess的輸出報表的檔案也對映到此目錄下,且名稱為index.html;
docker run -d --name nginx -p 8801:80 -v /opt/nginx/html:/usr/share/nginx/html -v /opt/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /opt/nginx/logs:/var/log/nginx -v /opt/nginx/conf/conf.d:/etc/nginx/conf.d nginx
首先我們會啟動Nginx,同時做好卷對映,Nginx相關檔案都放在/opt/nginx/
目錄下;
/opt/nginx/html
對應容器中路徑 /usr/share/nginx/html
,目前是Nginx歡迎頁,後面會用來存放紀錄檔分析後的視覺化報表頁面
/opt/nginx/conf/nginx.conf
對應容器中路徑 /etc/nginx/nginx.conf
,是Nginx的組態檔
/opt/nginx/logs
對應容器中路徑/var/log/nginx
,Nginx的紀錄檔檔案,後面要傳遞給GoAccess做為分析紀錄檔源
到這Nginx就啟動起來了,記住這個index.html頁面與access.log檔案,後面會將index.html替換,而access.log會被用來做分析,下面安裝設定GoAccess。
搜尋
docker search GoAccess
拉取
docker pull allinurl/goaccess
設定
之前說過要對映組態檔,所以我們設定下GoAccess的紀錄檔格式,這個很重要,必須對應Nginx的紀錄檔的格式來匹配,可以看看官方檔案。預設的Nginx紀錄檔格式如下:
知道了Nginx的紀錄檔格式,那麼我們需要將GoAccess的匹配引數與之對應,參考
所以得出的組態檔為:
log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
date-format %d/%b/%Y
time-format %H:%M:%S
啟動
docker run --restart=always -d -p 7890:7890 -v /opt/goaccess/data:/srv/data -v /opt/nginx/html:/srv/report -v /opt/nginx/logs:/srv/logs --name goaccess allinurl/goaccess --no-global-config --config-file=/srv/data/goaccess.conf --output=/srv/report/index.html --log-file=/srv/logs/access.log --real-time-html
然後啟動GoAccess,也做好卷對映,相關檔案在/opt/goaccess/
下,
/opt/goaccess/data
對應容器中路徑/srv/data
,是GoAccess的設定路徑
/opt/nginx/html
對應容器中路徑/srv/report
,用來存放視覺化報表,由--output
引數決定
/opt/nginx/logs
對應容器中路徑/srv/logs
,這裡是將Nginx的產生的紀錄檔檔案路徑對映到goaccess容器,對紀錄檔做分析
GoAccess引數--config-file
設定為/srv/data/goaccess.conf
,這裡的/srv/data
對映了宿主機/opt/goaccess/data
;引數--output
設定為/srv/report/index.html
,這裡的/opt/nginx/html
又對映到nginx容易,所以nginx可以直接存取這個html頁;
坑
注意組態檔一定不能弄錯,不然就會是這樣,一直重啟,這是因為還沒有將組態檔設定好,組態檔我們對映了opt/goaccess/data
,只需要在此目錄下建立好goaccess.conf
並設定格式即可;
由於這裡已經啟動了,目錄已經自動建立好了,沒啟動前還是乖乖建立目錄、建立檔案;這裡只需要建立檔案了;
開啟對映的ip地址檢視是否設定成功,如果沒啟動的話大概率是組態檔弄錯了,多試著改幾次組態檔即可;