由于从多个websocket服务加载错误数据,Goaccess在实时HTML报告中显示错误数据



我需要使用--real-time html选项运行多个goaccess进程来分析多个日志。我的命令是:

/usr/bin/goaccess --real-time-html -o /data/html/log1/index.html -f log/log1.log --port=7890
/usr/bin/goaccess --real-time-html -o /data/html/log2/index.html -f log/log2.log --port=7891
...

当只有一个进程在运行时,一切都很好,我可以在Chrome上看到websocket的数据帧,每个数据帧的长度通常相同;

但当两个或多个进程正在运行时,会发生两件事:

  1. 在运行goaccess进程的终端上,"SIGPIPE catch!"不断出现
  2. 在网页上,仪表板不连续地显示错误的数据,我注意到浏览器接收到的websocket数据帧的长度非常不同(这意味着网页从其他goaccess进程接收到不同的WebSockets数据帧(,当数据帧长度与仅运行1个goaccess进程时的数据长度相似时,网页上显示的数据是正确的,当数据帧长度不同时,数据是错误的

似乎即使我使用"--port"选项运行goaccess进程,为每个WebSocket进程指定不同的端口,多个WebSocket服务仍然是混合的。

要运行多个实例,需要确保以下内容:

  1. 在不同的端口--port上运行每个实例
  2. 不同管道(FIFO(--fifo-in=/path/in.1 --fifo-out=/path/out.1
  3. (可选(IFF如果您使用的是磁盘上存储,那么您将需要不同的存储DB文件的路径--db-path=/path/instance1/

示例

goaccess -f /prod/access.log -o /var/www/html/prod.html --real-time-html --ws-url=192.168.1.2 --port=7890 --fifo-in=/tmp/prod.in --fifo-out=/tmp/prod.out

goaccess -f /dev/access.log -o /var/www/html/dev.html --real-time-html --ws-url=192.168.1.2 --port=7891 --fifo-in=/tmp/dev.in --fifo-out=/tmp/dev.out

相关内容

  • 没有找到相关文章

最新更新