Мне нужно запустить несколько процессов goaccess с опцией --real-time-html для анализа нескольких журналов.
мои команды:
/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 процесс, все в порядке, и я вижу фреймы данных websocket в Chrome, каждый фрейм данных обычно имеет одинаковую длину;
Но когда запущено 2 или более процессов, происходит 2 вещи:
- На терминале, на котором запущены процессы goaccess, "SIGPIPE catch!" выходил постоянно;
- На веб-странице приборная панель периодически отображает неверные данные, и я замечаю, что фреймы данных веб-сокета, полученные браузером, имеют разную длину (это означает, что веб-страница получает разные фреймы данных веб-сокета от других процессов доступа) когда длина фрейма данных аналогична длине данных, когда выполняется только 1 процесс доступа, данные, отображаемые на веб-странице, являются правильными, если длина фрейма данных различна, данные неправильные.
Кажется, что даже когда я запускаю процесс goaccess с опцией "--port", чтобы указать разные порты для каждого процесса WebSocket, несколько сервисов веб-сокетов все еще смешиваются.