• Bubble
  • Bubble
  • Line
GoAccess Log analyzer for nginx and Phoenix
Andrei Clinciu Article AUthor
Andrei Clinciu
  • 2018-03-23T14:16:00Z
  • 2 min to read

I've deployed my first live system with Phoenix and Elixir. Since this was a mostly manual process, I need a way to analyze the access logs generated by nginx.

Google Analytics works great for those clients that have JavaScript enabled. But what about uses who don't? What about bots, cralwers, and requests to other files like CSS/JS?

Or what happens when there's someone like me and doesn't allow javascript by default or blocks certain domains?

We need another option!

Programming something in Elixir is certainly an option. But I don't want to reinvent the wheel again.

AWstats is an option, however Virtualmin/Webmin requires you to configure it manually if you want it to work with nGINX.

Another solution is to use GoAccess. It provides a very simple interface and it has a realtime feature.


Goaccess + Phoenix

Most Linux distro's have a older version 0.9.2. Version 1.2 allows for realtime HTML update by using websockets.

You can chose to recompile GoAccess or use the old version.

At this point you can implement a Controller View system to reload everything or allow port 7890 in the local firewall.


Real Time

goaccess -f ~/logs/access_log --log-format=COMBINED -o ~/goaccess_report.html --real-time-html

Simple generation

If you're on a VPS like me and use a ton of security features, you might not want to enable the websockets feature nor allow another open port.

goaccess -f ~/logs/access_log --log-format=COMBINED -o ~/goaccess_report.html

Use Elixir PORT to run the program.


Using GoAccess for a few weeks

It's funny to note that after using it for a few weeks I've seen some pretty weird stuff.

There are a lot of crawlers and bots that try to exploit known vulnerabilities, I mean in only a certain day there are maybe 100 tries via HTTP.

Looking in the logs of other services I can see the same pattern.

Funny though, the things they try will never work since I'm not using anything related to the software those bots are testing for.

Ideas and comments

Andrei Clinciu
Andrei Clinciu

I'm a Full Stack Software Developer specializing in creating websites and applications which aid businesses to automate. Software which can help you simplify your life. Let's work together!

Building Great Software
The digital Revolution begins when you learn to automate with personalized software.

Find me on social media