GoAccess 设置 WebSocket 服务器监听 7890 端口和 localhost
GoAccess Set the WebSocket server to listen on port 7890 and localhost
我正在尝试 运行 一个 GoAccess 示例:
# goaccess -f access.log -o report.html --real-time-html
有
Parsing... [41] [0/s]
或者终端没有输出。我等了很久。然后 CTRL+C:
^CSIGINT caught!
Stopping WebSocket server...
也许我遗漏了以下步骤:
"To output an HTML report and set the WebSocket server to listen on port 7890 and localhost."
"Connection Reset" 在 my.ip.address.here:7890
。
我猜 nginx 没有参与其中,因为它的日志只显示对其他网页的调用。
是否有一些我可能想要查看的其他配置或日志?
更新:
更清楚一点,已经走到这一步了:
$ 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 returns 连接重置。
有人能澄清一下这条路径应该代表什么吗:
/usr/share/nginx/www/report.html
report.html
是否应该实际存在,路径是否需要指向服务器系统中的特定位置?
引用自 GoAccess 的网站:
The process of generating a real-time HTML report is very similar to
the process of creating a static report.
Just generate a static report and place the output html file under
your web server www public folder. You need to add a couple of
additional real-time flags. The use of --real-time-html is required.
# goaccess -f access.log -o /usr/share/nginx/www/rt.goaccess.io/report.html --real-time-html --ws-url=host
Upon opening the generated report in your browser, the report will try to establish a WebSocket connection to the host
specified by --ws-url=. Note that the host should point to the
location where GoAccess is running and parsing logs. Also, make sure
host is a valid host and should not contain http on it.
If you don't use --ws-url, it will attempt to establish the WebSocket
connection to localhost, which means that GoAccess should be running
on your local machine (the same machine running the browser)
从手册页来看,GoAccess 似乎默认在端口 7890 上运行。如其所述,您可能希望指定 --ws-url
以指定 GoAccess WebSocket 服务器的位置,除非您的访问日志位于本地计算机上。
我在使用实时报告时遇到了一些问题,最终发现了为什么它们对我不起作用。这可能/可能不适用于您。
我正在通过 SSL 运行s 在我的网站目录中生成实时报告。不幸的是,Goaccess 实时报告根本无法通过 SSL 工作。
为了解决这个问题,我设置了一个新域 goaccess.mydomain.com 并在 Nginx 的 80 端口上将其设置为 运行。然后使用 .htpasswd 文件保护 / 位置,然后我将实时报告生成到该新网站的文件夹中。
静态报告 100% 通过 SSL 工作,但不是实时的。
所以我现在每天使用 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 问题,因为这让我绕了好久。
要通过 TLS/SSL 连接输出实时数据,您需要使用 --ssl-cert=<cert.crt>
和 --ssl-key=<priv.key>
。
对我有用:)
对于 ssl,将这些参数添加到命令中:
--ssl-cert=<cert.crt> and --ssl-key=<priv.key>.
如果仍然卡住,端口有时需要打开
iptables -A INPUT -i eth0 -p tcp --destination-port 7890 -j ACCEPT
我也注意到了,它需要目标输出文件存在于指定的路径中,然后它才会写入文件。由于某种原因它永远不会创建它。
来晚了,这就是我认为文档所描述的内容,我将逐步向您介绍。首先 运行 这样的命令
我正在使用 NGINX 作为我的服务器
$goaccess /var/log/nginx/access.log -o /var/www/goaccess/report.html --real-time-html --ssl-cert=/path/to/cert --ssl-key=/path/to/key
输入命令后你会看到下一个
[PARSING /var/log/nginx/access.log] {123} @ {0/s}
WebSocket server ready to accept new client connections
现在 ctrl ^C 退出并转到我的 nginx 服务器配置
/etc/nginx/sites-available/mysite 并编辑它。添加以下块
到您的服务器上下文或块
location /goaccess/ {
root /var/www;
}
然后检查配置文件是否正常并像这样重新加载nginx
sudo nginx -t
sudo nginx -s reload
接下来运行第一个命令(goaccess命令)再次启动socket服务器
然后导航到 https://example.com/goaccess/report.html you should now see the report and a green dot on the settings icon showing that the socket server is active and is auto updating report.html you could also try seeing if it works by navigating to another tab and entering https://example.com 并返回检查 logs/statistics.
是否有变化
您现在可以退出套接字服务器并尝试将其设为系统服务
我正在尝试 运行 一个 GoAccess 示例:
# goaccess -f access.log -o report.html --real-time-html
有
Parsing... [41] [0/s]
或者终端没有输出。我等了很久。然后 CTRL+C:
^CSIGINT caught!
Stopping WebSocket server...
也许我遗漏了以下步骤:
"To output an HTML report and set the WebSocket server to listen on port 7890 and localhost."
"Connection Reset" 在 my.ip.address.here:7890
。
我猜 nginx 没有参与其中,因为它的日志只显示对其他网页的调用。
是否有一些我可能想要查看的其他配置或日志?
更新:
更清楚一点,已经走到这一步了:
$ 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 returns 连接重置。
有人能澄清一下这条路径应该代表什么吗:
/usr/share/nginx/www/report.html
report.html
是否应该实际存在,路径是否需要指向服务器系统中的特定位置?
引用自 GoAccess 的网站:
The process of generating a real-time HTML report is very similar to the process of creating a static report.
Just generate a static report and place the output html file under your web server www public folder. You need to add a couple of additional real-time flags. The use of --real-time-html is required.
# goaccess -f access.log -o /usr/share/nginx/www/rt.goaccess.io/report.html --real-time-html --ws-url=host
Upon opening the generated report in your browser, the report will try to establish a WebSocket connection to the host specified by --ws-url=. Note that the host should point to the location where GoAccess is running and parsing logs. Also, make sure host is a valid host and should not contain http on it.
If you don't use --ws-url, it will attempt to establish the WebSocket connection to localhost, which means that GoAccess should be running on your local machine (the same machine running the browser)
从手册页来看,GoAccess 似乎默认在端口 7890 上运行。如其所述,您可能希望指定 --ws-url
以指定 GoAccess WebSocket 服务器的位置,除非您的访问日志位于本地计算机上。
我在使用实时报告时遇到了一些问题,最终发现了为什么它们对我不起作用。这可能/可能不适用于您。
我正在通过 SSL 运行s 在我的网站目录中生成实时报告。不幸的是,Goaccess 实时报告根本无法通过 SSL 工作。
为了解决这个问题,我设置了一个新域 goaccess.mydomain.com 并在 Nginx 的 80 端口上将其设置为 运行。然后使用 .htpasswd 文件保护 / 位置,然后我将实时报告生成到该新网站的文件夹中。
静态报告 100% 通过 SSL 工作,但不是实时的。
所以我现在每天使用 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 问题,因为这让我绕了好久。
要通过 TLS/SSL 连接输出实时数据,您需要使用 --ssl-cert=<cert.crt>
和 --ssl-key=<priv.key>
。
对我有用:)
对于 ssl,将这些参数添加到命令中:
--ssl-cert=<cert.crt> and --ssl-key=<priv.key>.
如果仍然卡住,端口有时需要打开
iptables -A INPUT -i eth0 -p tcp --destination-port 7890 -j ACCEPT
我也注意到了,它需要目标输出文件存在于指定的路径中,然后它才会写入文件。由于某种原因它永远不会创建它。
来晚了,这就是我认为文档所描述的内容,我将逐步向您介绍。首先 运行 这样的命令
我正在使用 NGINX 作为我的服务器
$goaccess /var/log/nginx/access.log -o /var/www/goaccess/report.html --real-time-html --ssl-cert=/path/to/cert --ssl-key=/path/to/key
输入命令后你会看到下一个
[PARSING /var/log/nginx/access.log] {123} @ {0/s}
WebSocket server ready to accept new client connections
现在 ctrl ^C 退出并转到我的 nginx 服务器配置 /etc/nginx/sites-available/mysite 并编辑它。添加以下块 到您的服务器上下文或块
location /goaccess/ {
root /var/www;
}
然后检查配置文件是否正常并像这样重新加载nginx
sudo nginx -t
sudo nginx -s reload
接下来运行第一个命令(goaccess命令)再次启动socket服务器 然后导航到 https://example.com/goaccess/report.html you should now see the report and a green dot on the settings icon showing that the socket server is active and is auto updating report.html you could also try seeing if it works by navigating to another tab and entering https://example.com 并返回检查 logs/statistics.
是否有变化您现在可以退出套接字服务器并尝试将其设为系统服务