Open cheshirrrrre opened 6 years ago
Can you please try to build from development and let me know if that solves the issue for you.
Also, please try simply:
ubuntu@nodeB:~$ /usr/local/bin/goaccess /var/log/nginx/cache_80.log -o /tmp/report.html --real-time-html
Hello.
I've opened 7890 tcp port in firewall for my IP
root@nodeB:~/goaccess# iptables -L -v -n | grep 7890 56 6006 ACCEPT tcp -- !lo * my_ip 0.0.0.0/0 tcp dpt:7890 root@nodeB:~/goaccess#
built dev version
Your build configuration: Prefix : /usr/local Package : goaccess Version : 1.2.1 Compiler flags : -pthread Linker flags : -lnsl -lncursesw -lGeoIP -lpthread
Dynamic buffer : no Geolocation : GeoIP Legacy Storage method : In-memory Hash Database (Default) TLS/SSL : no Bugs : goaccess@prosoftcorp.com
Made some changes in /usr/local/etc/goaccess.conf:
root@nodeB:~/goaccess# cat /usr/local/etc/goaccess.conf | egrep -v "^\s*($|#)" time-format %H:%M:%S date-format %d/%b/%Y log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u" log-format COMBINED
run it
ubuntu@nodeB:~$ /usr/local/bin/goaccess -f /var/log/nginx/cache_80.log -o /var/www/html/goaccess/report.html --real-time-html WebSocket server ready to accept new client connections
new report is where it must be:
root@nodeB:~/goaccess# file /var/www/html/goaccess/report.html /var/www/html/goaccess/report.html: HTML document, ASCII text, with very long lines root@nodeB:~/goaccess#
Ok, who's the owner?
root@nodeB:~/goaccess# ls -la /var/www/html/goaccess/report.html -rw-rw-r-- 1 ubuntu ubuntu 404917 Jan 12 11:20 /var/www/html/goaccess/report.html root@nodeB:~/goaccess#
What's in there?
<!DOCTYPE html><html lang='en'><head><meta charset='UTF-8' /><meta http-equiv='X-UA-Compatible' content='IE=edge'><meta name='google' content='notranslate'><meta name='viewport' content='width=device-width, initial-scale=1'><meta name='robots' content='noindex, nofollow' /><title>Server Statistics</title><style>
and so on
Here's netstat output:
root@nodeB:~/goaccess# netstat -plant | grep 7890 tcp 0 0 0.0.0.0:7890 0.0.0.0:* LISTEN 15381/goaccess
tcp 0 0 goaccess_ip:7890 my_ip:44858 TIME_WAIT
curl
root@vti-MS-7817:~# curl -v http://goaccess_ip:7890/
- Trying goaccess_ip...
- Connected to goaccess_ip (goaccess_ip) port 7890 (#0) GET / HTTP/1.1 Host: goaccess_ip:7890 User-Agent: curl/7.47.0 Accept: /
< HTTP/1.1 400 Invalid Request
- no chunk, no close, no size. Assume close to signal end <
- Closing connection 0
There's no problem in security, cause when i try to reach goaccess by curl on localhost, i get the same answer:
root@nodeB:~/goaccess# curl -v http://localhost:7890/
- Trying ::1...
- connect to ::1 port 7890 failed: Connection refused
- Trying 127.0.0.1...
- Connected to localhost (127.0.0.1) port 7890 (#0) GET / HTTP/1.1 Host: localhost:7890 User-Agent: curl/7.47.0 Accept: /
< HTTP/1.1 400 Invalid Request
- no chunk, no close, no size. Assume close to signal end <
- Closing connection 0 root@nodeB:~/goaccess#
The same file can be opened, cause i've configured nginx site
root@nodeB:~/goaccess# cat /etc/nginx/sites-enabled/goaccess.conf server { listen 8033; root /var/www/html/goaccess; location / { index report.html; auth_basic "Restricted Area"; auth_basic_user_file htpasswd; } }
root@nodeB:/var/www/html/goaccess# netstat -plant | grep 8033 tcp 0 0 0.0.0.0:8033 0.0.0.0:* LISTEN 14344/nginx
tcp 0 0 198.16.81.201:8033 my_ip:54666 ESTABLISHED 14501/nginx: worker
Info from browser console
Request headers (529 B)
Accept text/html,application/xhtml+xm…plication/xml;q=0.9,/;q=0.8 Accept-Encoding gzip, deflate Accept-Language en-US,en;q=0.5 Cache-Control no-cache Connection keep-alive, Upgrade DNT 1 Host goaccess_ip:7890 Origin http://goaccess_ip:8033 Pragma no-cache Sec-WebSocket-Extensions permessage-deflate Sec-WebSocket-Key 6xPZhOVlxDJsHVbrUS/JQA== Sec-WebSocket-Version 13 Upgrade websocket User-Agent Mozilla/5.0 (X11; Ubuntu; Linu…) Gecko/20100101 Firefox/57.0
This seems to be an isolated issue, the only thing I can think of is some sort of invalid output being returned by the web socket server upon upgrading the connection.
Can you try parsing one or two lines from your log instead of the whole access log? Also, are you able to test it on a different machine? e.g., laptop, desktop just to see if it has something to do with that particular machine. Thanks.
Any updates on this? Thanks.
i am also having this issue with the latest dev version.
[user@server logrotate.d]# curl -v http://127.0.0.1:7890/
* About to connect() to 127.0.0.1 port 7890 (#0)
* Trying 127.0.0.1...
* Connected to 127.0.0.1 (127.0.0.1) port 7890 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: 127.0.0.1:7890
> Accept: */*
>
< HTTP/1.1 400 Invalid Request
* no chunk, no close, no size. Assume close to signal end
<
* Closing connection 0
it seems it went away. this may be just an issue in the early processing section.
I am also having this issue in goaccess 1.2
I installed goaccess in docker useing images by myself! ENV:
docker 18.03
goaccess 1.2
docker command
docker run -it -p 7890:7890 -v "/var/log/nginx/:/srv/logs" ubuntu:14.04
I run goaccess command in docker container
goaccess -f /srv/logs/access.log -o state.html --real-time-html --date-spec=hr --hour-spec=min --ws-url=goaccess.haitian.com
I visit it in Chrome:
Request URL:http://goaccess.haitian.com:7890/ Request Method:GET Status Code:400 Invalid Request Remote Address:172.16.85.104:7890 Request Headers view source Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Encoding:gzip, deflate, sdch Accept-Language:zh-CN,zh;q=0.8 Cache-Control:max-age=0 Connection:keep-alive Host:goaccess.haitian.com:7890 Upgrade-Insecure-Requests:1 User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36`
@allinurl Yes,I dit it following:Build from release
I'm having this issue as well.
OS: Ubuntu 16.04.3 LTS GoAccess Version: 1.2
Command: goaccess -f /var/log/nginx/access.log -o report.html --real-time-html --addr=127.0.0.1 --port=9876
Result:
curl -v localhost:9876
* Rebuilt URL to: localhost:9876/
* Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 9876 (#0)
> GET / HTTP/1.1
> Host: localhost:9876
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 400 Invalid Request
* no chunk, no close, no size. Assume close to signal end
<
* Closing connection 0
Are you sure you have the port opened and the right address bound to it? Here's what I get for a invalid and valid port:
root@host:/home/user# curl -v rt.goaccess.io:7890
* About to connect() to rt.goaccess.io port 7890 (#0)
* Trying 162.243.249.101...
* connected
* Connected to rt.goaccess.io (162.243.249.101) port 7890 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.26.0
> Host: rt.goaccess.io:7890
> Accept: */*
>
* additional stuff not fine transfer.c:1042: 0 0
* HTTP 1.1 or later with persistent connection, pipelining supported
< HTTP/1.1 400 Invalid Request
* no chunk, no close, no size. Assume close to signal end
<
* Closing connection #0
root@host:/home/user# curl -v rt.goaccess.io:9870
* About to connect() to rt.goaccess.io port 9870 (#0)
* Trying 162.243.249.101...
* connected
* Connected to rt.goaccess.io (162.243.249.101) port 9870 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.26.0
> Host: rt.goaccess.io:9870
> Accept: */*
>
* additional stuff not fine transfer.c:1042: 0 0
* Empty reply from server
* Connection #0 to host rt.goaccess.io left intact
curl: (52) Empty reply from server
* Closing connection #0
@allinurl This is all being tested locally, binding to 127.0.0.1, so there are no ports to open.
Any update on this?
I am using version 1.3 and having the same problem here.
I can start the goaccess in real time report mode but when I try to access it I receive the http 400 error too. It happens despite of being doing the request from the same machine where goaccess is running or from a different machine. (Obs.: port 7890 is open to external connections)
Starting GoAccess
root@tt2-we-vm-hap01:/etc/goaccess# goaccess /var/log/haproxy/haproxy.log -o report.html --real-time-html --log-format='%^ %^ %^:%^:%^ %^ %^[%^]: %h:%^ [%d:%t.%^] %^ %^ %^/%^/%^/%^/%L %s %b %^ %^ %^ %^/%^/%^/%^/%^ %^/%^ "%r"' --date-format='%d/%b/%Y' --time-format='%H:%M:%S' WebSocket server ready to accept new client connections
CURL
`root@tt2-we-vm-hap01:~# curl -v http://127.0.0.1:7890
GET / HTTP/1.1 User-Agent: curl/7.35.0 Host: 127.0.0.1:7890 Accept: /
< HTTP/1.1 400 Invalid Request
NETSTAT
root@tt2-we-vm-hap01:~# netstat -plant | grep 7890 tcp 0 0 0.0.0.0:7890 0.0.0.0:* LISTEN 50871/goaccess tcp 0 0 127.0.0.1:7890 127.0.0.1:57016 TIME_WAIT - root@tt2-we-vm-hap01:~#
Facing same problem here:
curl -v http://127.0.0.1:8080/report.html
GET /report.html HTTP/1.1 Host: 127.0.0.1:8080 User-Agent: curl/7.58.0 Accept: /
< HTTP/1.1 400 Invalid Request
@marcelboccato I'm not able to reproduce this on my side. Are you able to post a bit more about your environment? also, are you able to test this out on a different machine and see if it's isolated to a particular box? Thanks.
@allinurl CentOS Linux release 7.3.1611 (Core) goaccess 1.3 version Install goaccess by make
had the same issues here
@yourmoonlight I think this was addressed upstream. Could you please try building from development and let me know if that solved the issue? Thanks.
This port's protocol WS rather than HTTP, so You can not get response by visiting this address and port with HTTP.
This correct way is that launch a web server like Nginx to serve the generated html file.
I've installed goaccess, and no matter what i've tried, just can't make it respond as a service.
The last time i've configured it with --enable-debug and all i got now in console, is
but still got "400 Invalid Request"
I've followed instructions on https://github.com/allinurl/goaccess/issues/448 and https://github.com/allinurl/goaccess/issues/440 with no luck.
Ubuntu 16.04 goaccess-1.2.tar.gz