Install and Configure Gravwell on AlmaLinux 10

By Anurag Singh

Updated on Nov 24, 2025

Install and Configure Gravwell on AlmaLinux 10

In this tutorial, we'll learn how to install and configure Gravwell on AlmaLinux 10.

What Gravwell Is?

Gravwell is a self-hosted log and security analytics platform. It collects data from servers, applications, firewalls and more, then lets us search, analyze and build dashboards. This gives full ownership of security data and keeps sensitive information inside our infrastructure.

This guide explains the installation in a clear, simple way with all important commands included.

Prerequisites

Before we begin, ensure we have the following:

  • An AlmaLinux 10 dedicate server or KVM VPS.
  • Basic Linux Command Line Knowledge.
  • A domain name, pointing A record to server IP.

How to Install and Configure Gravwell on AlmaLinux 10

1. Update the system:

sudo dnf update -y

2. Install Gravwell

Gravwell is available as a yum repository:

sudo vi /etc/yum.conf

 
 

Add following content:

[gravwell]
name=gravwell
baseurl=https://update.gravwell.io/rhel 
gpgkey=https://update.gravwell.io/rhel/gpg.key

Install Gravwell

sudo yum install -y gravwell

3. Configure Firewall and SELinux

If Firewall is active:

sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload

If SELinux is active:

sudo setsebool -P httpd_can_network_connect 1
 

4. Install File Follow Ingester (Collect System Logs)

sudo dnf install -y gravwell-file-follow
sudo systemctl enable --now gravwell-file-follow

This automatically starts collecting system logs such as /var/log/auth.log and /var/log/syslog.

5. Run First Search

In the Gravwell UI:

Search Linux authentication logs:

tag=auth

This confirms log ingestion works.

Running Gravwell over HTTPS is better for security and professional deployments.

7. Get the SSL certificate and key

First we need to stop gravwell_webserver.service to release HTTP port to obtain certificate:

sudo systemctl stop gravwell_webserver.service

You can use Certbot or another tool to generate the cert, even if you’re not using Nginx. Example using certbot:

sudo dnf install -y certbot
sudo certbot certonly --standalone -d example.com

This will stop any process listening on port 80 temporarily (so note: make sure Gravwell web port is off or will conflict). After it finishes, your certs will typically be at:

/etc/letsencrypt/live/example.com/fullchain.pem
/etc/letsencrypt/live/example.com/privkey.pem

Copy certificate + key to a path Gravwell can use

For example:

sudo mkdir -p /etc/gravwell/certs
sudo cp /etc/letsencrypt/live/example.com/fullchain.pem /etc/gravwell/certs/cert.pem
sudo cp /etc/letsencrypt/live/example.com/privkey.pem /etc/gravwell/certs/key.pem
sudo chown gravwell:gravwell /etc/gravwell/certs/cert.pem /etc/gravwell/certs/key.pem
sudo chmod 640 /etc/gravwell/certs/key.pem

8. Edit Gravwell config to point at the certificate + key

Open /opt/gravwell/etc/gravwell.conf (or the path where Gravwell’s main config is) and make these changes:

sudo vi /opt/gravwell/etc/gravwell.conf

Uncomment or add these lines:

Certificate-File=/etc/gravwell/certs/cert.pem
Key-File=/etc/gravwell/certs/key.pem

Change the web-port to 443 (if you want HTTPS on default secure port):

Web-Port=443

Comment out or remove the insecure HTTP directive (if exists), e.g.:

#Insecure-Disable-HTTPS

If you also want encrypted connections for ingesters/search-agent, set:

TLS-Ingest-Port=4024

9. Restart Gravwell services

sudo systemctl start gravwell_webserver.service
sudo systemctl restart gravwell_indexer.service
sudo systemctl restart gravwell_searchagent.service

10. Access Gravwell Web UI

Open browser:

https://example.com

gravwell first screen hostmycode

Upload Community Edition license (if you don’t have one, request it from Gravwell’s website).

Default login:

Username: admin
Password: changeme

Immediately change the admin password.

Check browser shows valid cert (no warning). Also check log files under /opt/gravwell/log/ for any errors like “certificate name mismatch”.

11. Renew certificate & update Gravwell

Since you’re using Let’s Encrypt, certs expire every 90 days. You’ll need to renew and then reload Gravwell so it picks up the new files.

Example cron or systemd timer (certbot adds automatically) and then:

sudo systemctl reload gravwell_webserver.service

(or restart if reload not supported).

Notes & Warning (because this stuff bites if you’re sloppy)

  • Make sure your certificate’s CN or SAN includes the hostname you’ll access Gravwell by. If you access by IP and cert is for a domain, browser will complain.
  • If Gravwell has other components (ingesters, search agents) using HTTP, switching to HTTPS may break them unless you reconfigure them. Docs warn about this.
  • Because port 80 is already in use, you may need to temporarily stop the Gravwell webserver to let Certbot listen on port 80 for the challenge (unless you use a DNS-based challenge).
  • Make sure permissions on key file are correct, if Gravwell cannot read the key, HTTPS will fail.

Conclusion

We installed Gravwell on AlmaLinux 10, connected our server logs, and secured the web interface with HTTPS using Nginx and Certbot. This setup is simple, scalable and ready for real security monitoring work.