2016-08-02 381 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。 –

相关问题