nginxgoaccess

GoAccess Set the WebSocket server to listen on port 7890 and localhost


I'm trying to run a GoAccess example:

# goaccess -f access.log -o report.html --real-time-html

There's either

Parsing... [41] [0/s]

OR no output in the terminal. I wait a long time. Then CTRL+C:

^CSIGINT caught!
Stopping WebSocket server...

Maybe I'm missing a step in:

"To output an HTML report and set the WebSocket server to listen on port 7890 and localhost."

"Connection Reset" at my.ip.address.here:7890.

I'm guessing that nginx is not involved in this, as it's logs are only showing calls to other web pages.

Is there some other configuration or logs I might want to look into?

UPDATE:

A little more clear and have gotten this far:

$ 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]

I can:

telnet domain.com 7890
Trying 45.55.xxx.xxx...
Connected to domain.com.
Escape character is '^]'.

In the browser: domain.com:7890/report.html returns Connection Reset.

Would someone clarify what this path is supposed to represent:

/usr/share/nginx/www/report.html

Is report.html supposed to actually exist and does the path need to be to a specific place in the Server's System?


Solution

  • I had some problems getting the realtime reports to work and eventually found out why they were not working for me. This may / may not apply to you.

    I was generating the realtime report in the directory of my website which runs over SSL. Unfortunately Goaccess realtime reports do not work over SSL at all.

    What I did to resolve this was I set up a new domain goaccess.mydomain.com and set it to run on port80 on Nginx. Then protected the / location with an .htpasswd file and then I generate the realtime reports into that new web site's folder.

    The static reports work 100% over SSL just not the realtime.

    So what I do now everyday using Cron is generate the realtime reports for the sites I want to monitor using.

    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
    

    then when I want a realtime report on a certain site I just run

    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
    

    I have asked them to note the https problem in their documentation as this had me going in circles for ages.