AlmaLinuxRHEL Based

How To Install GoAccess on AlmaLinux 9

Install GoAccess on AlmaLinux 9

GoAccess is an open-source, real-time web log analyzer and interactive viewer that runs in a terminal or through a web browser. It provides fast and valuable HTTP statistics for system administrators who need a visual representation of their web server statistics. With its ability to parse log files and generate reports on the fly, GoAccess has become an essential tool for monitoring and analyzing web server performance.

Key features of GoAccess include:

  • Real-time HTML output
  • Terminal-based dashboard
  • Support for various log formats
  • Geolocation support
  • Customizable reports

For AlmaLinux 9 users, installing GoAccess can significantly enhance their ability to monitor and optimize web server performance. Whether you’re managing a small personal website or a large enterprise server, GoAccess provides the insights you need to make informed decisions.

Prerequisites

Before we dive into the installation process, let’s ensure you have everything you need to successfully install GoAccess on AlmaLinux 9:

System Requirements

  • A system running AlmaLinux 9
  • Root access or sudo privileges
  • A terminal or SSH access to your server
  • Minimum of 1GB RAM and 2GB disk space
  • An active internet connection for downloading packages

Ensure your system meets these requirements before proceeding with the installation. Having the necessary privileges and resources will help avoid potential issues during the setup process.

Method 1: Installing GoAccess via EPEL Repository

The easiest and most straightforward method to install GoAccess on AlmaLinux 9 is through the EPEL (Extra Packages for Enterprise Linux) repository. This method ensures you get a stable, pre-compiled version of GoAccess that’s compatible with your system.

System Preparation

First, let’s update your system and install the necessary repositories:

sudo dnf update -y
sudo dnf install epel-release -y

This command updates your system packages and installs the EPEL repository, which contains GoAccess.

Installation Steps

Now that your system is prepared, follow these steps to install GoAccess:

  1. Install GoAccess using dnf:
    sudo dnf install goaccess -y
    
  2. Verify the installation:
    goaccess --version
    

    This command should display the version of GoAccess installed on your system.

Congratulations! You’ve successfully installed GoAccess using the EPEL repository. This method is quick and ensures you have a version that’s compatible with AlmaLinux 9.

Method 2: Installing GoAccess from Source Code

For those who prefer the latest features or need a custom-compiled version, installing GoAccess from source code is an excellent option. This method gives you more control over the installation process and allows you to enable specific features during compilation.

Installing Dependencies

Before compiling GoAccess, you need to install several dependencies:

sudo dnf groupinstall "Development Tools" -y
sudo dnf install ncurses-devel geoip-devel zlib-devel bzip2-devel openssl-devel glib2-devel libmaxminddb-devel -y

These packages provide the necessary libraries and tools for compiling GoAccess from source.

Compilation Process

Follow these steps to compile and install GoAccess from source:

  1. Download the latest GoAccess source code:
    wget https://tar.goaccess.io/goaccess-1.6.5.tar.gz
    
  2. Extract the downloaded archive:
    tar -xzvf goaccess-1.6.5.tar.gz
    
  3. Navigate to the extracted directory:
    cd goaccess-1.6.5
    
  4. Configure the build:
    ./configure --enable-utf8 --enable-geoip=mmdb
    

    This command enables UTF-8 support and GeoIP functionality.

  5. Compile the source code:
    make
    
  6. Install GoAccess:
    sudo make install
    
  7. Verify the installation:
    goaccess --version
    

By following these steps, you’ve successfully compiled and installed GoAccess from source on your AlmaLinux 9 system. This method allows for greater customization and access to the latest features.

Configuring GoAccess

Proper configuration is crucial for getting the most out of GoAccess. Let’s explore both basic and advanced configuration options.

Basic Configuration

The main configuration file for GoAccess is typically located at /etc/goaccess/goaccess.conf. If it doesn’t exist, you can create it:

sudo mkdir -p /etc/goaccess
sudo cp /usr/local/etc/goaccess.conf /etc/goaccess/goaccess.conf

Open the configuration file in your preferred text editor:

sudo nano /etc/goaccess/goaccess.conf

Here are some essential settings to consider:

  • Set the log format:
    log-format COMBINED
  • Specify the log file location:
    log-file /var/log/httpd/access_log
  • Enable real-time processing:
    real-time-html true

Advanced Settings

For more advanced configurations, consider the following options:

  • Enable GeoIP:
    geoip-database /usr/share/GeoIP/GeoLite2-City.mmdb
  • Set up output options:
    output-format HTML
    html-report-title My Website Analytics
    
  • Configure real-time monitoring:
    real-time-html true
    ws-url ws://localhost:7890
    

Remember to save your changes after modifying the configuration file.

Using GoAccess

Now that GoAccess is installed and configured, let’s explore how to use it effectively.

Basic Usage

To analyze log files in the terminal:

goaccess /var/log/httpd/access_log -c

This command will display a real-time, terminal-based dashboard of your web server statistics.

To generate an HTML report:

goaccess /var/log/httpd/access_log -o report.html --log-format=COMBINED

This creates an HTML report named report.html in your current directory.

Real-time Monitoring

For real-time monitoring with a web interface:

goaccess /var/log/httpd/access_log -o /var/www/html/report.html --log-format=COMBINED --real-time-html

This command generates a real-time HTML report that updates automatically as new log entries are processed.

Working with Different Log Formats

GoAccess supports various log formats. Here are some common ones:

  • Apache (default):
    log-format COMBINED
  • Nginx:
    log-format COMBINED
  • Custom format:
    log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"

Adjust the log-format setting in your configuration file to match your server’s log format.

Troubleshooting Common Issues

Even with careful installation and configuration, you might encounter some issues. Here are solutions to common problems:

Installation Errors

If you encounter “package not found” errors during installation, ensure that the EPEL repository is properly installed and enabled:

sudo dnf install epel-release -y
sudo dnf clean all && sudo dnf update

Configuration Problems

If GoAccess fails to parse your log files, double-check your log format configuration. You can use the --debug-file option to troubleshoot:

goaccess /var/log/httpd/access_log --debug-file debug.log

Log Parsing Issues

For log parsing problems, ensure you have the correct permissions to read the log files. You may need to run GoAccess with sudo or adjust file permissions.

Performance Optimization

If GoAccess is running slowly, consider using the --keep-last=N option to limit the number of log entries processed, or use log rotation to manage file sizes.

Security Considerations

When using GoAccess, keep these security best practices in mind:

  • Restrict access to the GoAccess web interface using .htaccess or similar methods.
  • Ensure log files have appropriate permissions to prevent unauthorized access.
  • Regularly update GoAccess to the latest version to benefit from security patches.
  • Use HTTPS if exposing the GoAccess web interface to the internet.

Congratulations! You have successfully installed GoAccess. Thanks for using this tutorial for installing the GoAccess web log analyzer on your AlmaLinux 9 system. For additional help or useful information, we recommend you check the official GoAccess website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is an experienced Linux enthusiast and technical writer with a passion for open-source software. With years of hands-on experience in various Linux distributions, r00t has developed a deep understanding of the Linux ecosystem and its powerful tools. He holds certifications in SCE and has contributed to several open-source projects. r00t is dedicated to sharing her knowledge and expertise through well-researched and informative articles, helping others navigate the world of Linux with confidence.
Back to top button