0

複数のログを分析するには、 --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
...

実行中のプロセスが 1 つだけの場合、すべて問題なく、Chrome で websocket のデータ フレームを確認できます。通常、すべてのデータ フレームは同じ長さです。

しかし、2 つ以上のプロセスが実行されている場合、次の 2 つのことが起こります。

  1. goaccess プロセスが動作している端末では、「SIGPIPE がキャッチされました!」と表示されます。連続して出てきました。
  2. Web ページでは、ダッシュボードに間違ったデータが断続的に表示されます。ブラウザーが受信した Websocket データ フレームの長さがまったく異なることに気付きました (これは、Web ページが他の goaccess プロセスから異なる Websocket データ フレームを受信して​​いることを意味します)。データ フレームの長さは、1 つの goaccess プロセスのみが実行されている場合のデータの長さと類似しています。Web ページに表示されるデータは正しく、データ フレームの長さが異なる場合、データは正しくありません。

「--port」オプションを指定して goaccess プロセスを実行し、WebSocket プロセスごとに異なるポートを指定しても、複数の WebSocket サービスが混在しているようです。

4

1 に答える 1