by Devin Yang

建立於: 2年前 ( 更新: 2年前 )

在開始前我先說一下,GoAcess也能產出靜態資料只要您有log,
因為我覺的即時感覺比較炫,所以本文將專注在GoAccess即時顯示的部分進行介紹。

雖然Google Analytics(GA)很好用,但試試另一種GA感覺也很不錯,
例如您想了解網站使用者用什麼瀏覽器訪網站。

我在好幾年前自己的筆記有寫過GoAceee這款工具了,但真的太久,久到自己都忘了有這東西。
下方是早期的舊畫面,來回憶一下,本篇我就來Update一下我的最新做法。


開始前,先Show一下新的UI吧,圖中綠色的登號代表了WebSocket是有正確連線的,所以當使用者開啟了網站即時回應在畫面上。


本文我會採phpenv的環境進行說明,因為簡單好設定,但基本上phpenv就是包著docker的bash,不是包著羊度的狼哦。🤪
所以phpenv能跑,您的Docker環境設定好應該也不成問題。
如果您想搜尋phpenv可下關鍵字deviny/phpenv,就能找到囉。

那就直接開始吧,非常簡單。😎

第一步: 在phpenv中,我們可以用如下的指令導出nginx的log,可透過Ctrl+c停止

./console logs --no-log-prefix -f web|tee nginx.log

如果您不是用phpenv可將./console換成docker-compsoe試您的運氣,您的容器服務名稱可能不叫web,請自行調整。

第二步: 開啟另一個終端機,進行簡易驗證,第一步的指令中,會產生nginx.log在phpenv目錄中了。
我們可以下tail -f nginx.log指令,再開網頁,看看log會不會跑,如果會動您差不多成功了。

始用Ctrl+c中斷。

第三步:  查看環境設定檔,phpenv提供簡易的./info指令,可以讓我們查看容器的專案的環境設定
留意HTTP_PORT及FOLDER這兩個設定,跟本次操作有關。

第四步: 設定您的專案路徑,安全考量,您可以用phpenv啟動另一台不公開的WEB,或者把report.html名稱改複雜的名稱(下方指令中)。
在這裡,我直接用目前ccc專案開啟測試,ccc專案內網使用的port 1056,Laravel專案資料夾是/volume1/docker/ccc。
所以,GoAccess指令如下,請自行揣摩:

tail -f nginx.log|
docker run -p 7890:7890 --rm -i -e LANG=$LANG allinurl/goaccess -a -o html --log-format COMBINED --real-time-html - >  /volume1/docker/ccc/public/report.html

在上方兩行指令,全部拷貝貼上終端機,他會將nginx.log的標準輸出丟給goaccess的官方容器處理。
您需留意,換掉我後方的Proejct目錄/volume1/docker/ccc/public/report.html
這個容器預設會開啟port 7890的WebSocket用來傳輸資料。
上方的指令啟動前,您也可以先清一下nginx.log,因為不正確的log檔會啟動失敗。

$ >nginx.log

下圖是我啟動的結果:

我的主機內網IP是192.168.99.130,所以我就能開啟下方網址,看即時分析囉。

http://192.168.99.130:1056/report.html

你如果想改WSS的port,例如換成7800,請冒號兩邊一起換,並加上--port 7800參數,指令如下:

tail -f nginx.log|
> docker run -p 7800:7800 --rm -i -e LANG=$LANG allinurl/goaccess --port 7800 -a -o html --log-format COMBINED --real-time-html - >  /volume1/docker/ccc/public/report.html
 [SETTING UP STORAGE -] {0} @ {0/s}

如果您想深入專研,可以用Docker指令列出幫助說明哦

docker run --rm allinurl/goaccess --help

實際操作畫面如下載圖

以上就是輕鬆快速執行GoAcess的操作啦。

在bash的環境下,我們可以透過nohup及&把這兩個指令放到背景執行。

nohup ./console logs --no-log-prefix -f web|tee nginx.log &
nohup tail -f nginx.log|
docker run -p 7890:7890 --rm -i -e LANG=$LANG allinurl/goaccess -a -o html --log-format COMBINED --real-time-html - >  /volume1/docker/ccc/public/report.html &


最後附上官方下載網址:

https://goaccess.io/download

 

Tags: docker goaccess config

Devin Yang

文章內容無法一一說明,如果您有什麼不了解處,歡迎提問哦:)

No Comment

Post your comment

需要登入才可留言!

類似的文章


docker,dlaravel

D-Laravel 1.5.5變更說明

D-Laravel的fpm image在php 7.2.1以前是使用docker php官方的dockerfile重build的, 並且所以我可以指定了fpm的預設的owner是dlaravel,   --with-fpm-user=USER    Set the user for php-fpm to run as. (default: nobody)   --with-fpm-group=GRP    Set the group for php-fpm to run as.

docker

Devin Yang的Docker初學筆記

這是我初學Docker時的筆記,有點粗糙,有調整了一下下。 但我想對於Docker初學者,應該可以提供一些初步的概念, 歡迎參考看看。

docker

如何簡單的用Docker建立internet命令列的測速程式呢?

如何簡單的用Docker建立internet命令列的測速程式呢? 這裡我們使用python的程式speedtest-cli 會用Docker主要的用例,例如我想要在我的NAS內進行測速, 雖然我的NAS內有python,但沒有pip指令,這時用Docker感覺上安全很多, 當然前題您的NAS需能跑Docker:)。 或者,我在MacOS的環境,我不想安裝speedtest-cli到我的MacOS中。 這時用Docker簡單的自建簡單的執行環境還滿不錯的。