2016-08-02 293 views
1

我試圖運行GoAccess例如:GoAccess設置的WebSocket服務器偵聽端口7890和本地主機

# goaccess -f access.log -o report.html --real-time-html 

有兩種

Parsing... [41] [0/s] 

或終端沒有輸出。我等了很久。然後CTRL + C:

^CSIGINT caught! 
Stopping WebSocket server... 

也許我缺少的步驟:

「要輸出HTML報表,設置的WebSocket服務器偵聽端口7890和本地主機」。

「連接重置」在my.ip.address.here:7890

我猜nginx沒有涉及到這一點,因爲它的日誌只顯示對其他網頁的調用。

是否有其他配置或日誌可能需要查看?

UPDATE:

更加清楚一點,並已這一步得到:

$ sudo goaccess -f /var/log/nginx/access.log.1 -o /usr/share/nginx/www/report.html \\ 
--real-time-html --ws-url=domain.com 
Parsing... [84] [0/s] 

我可以:

telnet domain.com 7890 
Trying 45.55.xxx.xxx... 
Connected to domain.com. 
Escape character is '^]'. 

在瀏覽器:domain.com:7890/report.html返回連接重置。

會有人澄清這條道路應該代表:

/usr/share/nginx/www/report.html 

report.html應該實際存在和它的路徑必須在服務器的系統特定的地方嗎?

回答

2

我有一些問題讓實時報告發揮作用,最終發現他們爲什麼不爲我工作。這可能不適用於你。

我正在通過SSL運行的我的網站目錄中生成實時報告。不幸的是,Goaccess實時報告根本不適用於SSL。

我做了什麼來解決這個問題,我建立了一個新的域goaccess.mydomain.com並將它設置爲在Nginx上的port80上運行。然後使用.htpasswd文件保護/位置,然後將實時報告生成到該新網站的文件夾中。

靜態報告通過SSL工作100%,而不是實時。

因此,我現在每天使用Cron所做的是爲我想要監視的站點生成實時報告。

goaccess -f /var/log/nginx/site1-access.log -a -o /var/www/goaccess.mydomain.com/site1.html 
goaccess -f /var/log/nginx/site2-access.log -a -o /var/www/goaccess.mydomain.com/site2.html 

然後當我想在某個網站上的實時報告,我只是運行

goaccess -f /var/log/nginx/site1-access.log -a -o /var/www/goaccess.mydomain.com/site.html.html --real-time-html --ws-url=goaccess.mydomain.com 

我要求他們注意自己的文檔中的HTTPS的問題,因爲這讓我兜兜的年齡。

+0

在我確認這一點之前可能需要幾個星期(至少),所以如果任何人發現答案不是一個解決方案,請評論我接受它,因爲它解決了問題並作爲解決方案是有意義的。希望這很酷。 – MikeiLL

+1

按照我的要求,GoAccess更新了常見問題解答和文檔,並提供了有關HTTPS的說明。 https://goaccess.io/faq和https://goaccess.io/man – MitchellK

2

從GoAccess'網站引述:

生成實時HTML報告的過程非常相似, 創建靜態報表的過程。

只需生成一個靜態報告並將輸出html文件放置在您的Web服務器www公用文件夾的 下。您需要添加幾個 附加的實時標誌。使用--real-time-html是必需的。

# goaccess -f access.log -o /usr/share/nginx/www/rt.goaccess.io/report.html --real-time-html --ws-url=host 

當在瀏覽器中打開生成的報告,該報告將試圖建立一個WebSocket連接至--ws-URL指定的主機 =。請注意,主機應該指向正在運行GoAccess的 位置並解析日誌。另外,請確保 主機是有效的主機,並且不應該包含http。

如果不使用--ws的URL,它會嘗試建立的WebSocket 連接到本地主機,這意味着GoAccess應該運行在本地計算機上 (同一臺機器上運行的瀏覽器)

從手冊頁看來,默認情況下,GoAccess在端口7890上運行。如上所述,除非您的訪問日誌位於本地計算機上,否則您可能需要指定--ws-url來指定GoAccess WebSocket服務器的位置。

+0

仍有問題。 report.html應該在服務器上存在,請問它指向它的路徑是什麼? – MikeiLL

+0

'report.html'文件由GoAccess生成。你必須在你的web服務器(例如,nginx/apache)的默認公共www位置放置'report.html',這樣你就可以從你的瀏覽器訪問它,例如'www.example.com/report.html'和'--ws -url = host'必須指向GoAccess正在運行的位置並讀取訪問日誌(通常與Web服務器相同)。確保在運行GoAccess的位置打開端口7890。 –