---
slug: "webalizer-analog-replace-goaccess-access-analyse"
title: "Analyzing Apache Access Logs with GoAccess Instead of Webalizer or Analog"
description: "Workaround when PyCharm Python 3.6 Run/Debug Configurations fail to load native extensions like `fibers`."
url: "https://www.ytyng.com/en/blog/webalizer-analog-replace-goaccess-access-analyse"
publish_date: "2022-09-08T00:44:47Z"
created: "2022-09-08T00:44:47Z"
updated: "2026-05-11T13:21:32.653Z"
categories: []
keywords: ""
featured_image_url: "https://media.ytyng.com/resize/20230812/18325e5607d740928fd3f92de2346692.png.webp?width=768"
has_video: false
has_music: false
video_urls: []
music_urls: []
lang: "en"
---

# Analyzing Apache Access Logs with GoAccess Instead of Webalizer or Analog

<p>I wanted to check the usage status of functions on an old server running Apache from the access logs.</p>
<p>About 20 years ago, tools like Analog and Webalizer were available for analyzing access logs. I wondered how it is in today's world, and upon investigation, I found <a href="https://goaccess.io/" target="_blank">GoAccess</a>.</p>
<p>It can be installed via apt and runs in the terminal. It can also output in HTML, which suited my needs.</p>
<p></p>
<p>Since the service is running on Kubernetes, I copied the log to my Mac.</p>
<pre>podname=$(kubectl -n my-namespace \<br />  get pod -l app=my-app-name \<br />  -o jsonpath="{.items[0].metadata.name}")<br /><br />kubectl -n my-namespace cp \<br />  ${podname}:/var/log/apache2/access.log \<br />  ${HOME}/Downloads/my-service-access.log</pre>
<p></p>
<p>Then, I started GoAccess with Docker to create the HTML.</p>
<pre><span>cat </span><span>$</span>{HOME}/Downloads/my-service-access.log | \<br /><span>  docker </span>run --rm -i -e LANG=$LANG allinurl/goaccess \<br />  -a -o html --log-format COMBINED - <span>&gt; </span>report.html</pre>
<p>Reference: <a href="https://goaccess.io/download" target="_blank">GoAccess - Downloads</a><br /><br /></p>
<p>It's very convenient and works great.</p>
