Feature: Allow reading live-logs from varnish · Issue #2946 · allinurl/goaccess · GitHub
Skip to content

Feature: Allow reading live-logs from varnish #2946

Open

Description

@neufeind

Varnish by default logs to a ring-buffer instead of a textfile. It's possible to have a daemon read from there and output to a file or stdout in ncsa-format. So currently you could use "varnishncsa" and pipe that into goaccess. But maybe we could add the possiblity to read from varnish directly? This way we could maybe add some varnish-specific fields to filter/search by, like filtering requests if that came in from the client or went out to the backend-servers (fetching data), filtering on what backend-servers received the request, filtering if requests were able to be served from the cache or not, ...
That's all something that you could have varnishncsa filter out beforehand and then pipe only the filtered output to goaccess. There is also another varnish-tool that outputs live requests from the ring-buffer as multiline-output. So we could even avoid parsing data from the ring-buffer (binary) ourselves but just call "varnishlog" under the hood, then parse the multiline-output coming from there into our fields. But it would be great to have certain fields (like mentioned above) available in the tui and maybe even filter on certain things without needing to live goaccess.

For filtering live-logs we could also pass down some of our filters to varnishlog as arguments so we get less output which needs to be processed. But if you want to interactively add/change/remove filters that would effectively mean restarting the process (starting with empty logs again). In my use-case of analysing mainly live logs interactively that would be okay - though some people might want to decide if that's a filter they want to pass down to varnishlog (and have goaccess parse only partial log-data) or filter in goaccess live.

Activity

  1. allinurl commented on Aug 8, 2026

    @allinurl
    Owner

    Totally missed this post, sorry about that! Sounds like #117 will be the best fit for it. Stay tuned, it's being written as we speak!

    https://goaccess.io/twitter https://infosec.exchange/@goaccess

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions