Install Splunk Enterprise on Ubuntu 24.04 LTS

A practical, single-server Splunk lab installation for two Windows endpoints, one Linux host, and one FortiGate firewall—with systemd startup, installation validation, and the Enterprise Trial to Free license path.

By Ashraf GamalPublished 18 October 2026Splunk Enterprise 10.6.x · Ubuntu 24.04 LTSApprox. 6 min read

Personal note: This article reflects my experience and is for educational purposes only—not official vendor guidance. Always verify procedures against current vendor documentation.

Version note: This article was prepared in October 2026. Splunk Enterprise 10.6 documentation lists Ubuntu 24.04 x86-64 as supported. This is a lab guide, not a vendor certification of every possible package or environment combination. Use the installer package currently offered by Splunk for your account and verify the matching release notes before deployment.

1. Objective and single-server architecture

The goal is to run Splunk Enterprise only on one Ubuntu VM. Splunk Enterprise provides the collection, indexing, search, and dashboard platform. Splunk Enterprise Security (ES) is a separate premium application and is not part of this build.

The lab data sources are two Windows machines, one Linux machine, and one FortiGate firewall. For this footprint, start with a single instance and expand only if measured performance or a new use case justifies it.

SettingPractical lab starting point
Operating systemUbuntu Server 24.04 LTS, x86-64
CPU8 vCPU (adjust to observed workload)
Memory16 GB RAM as an initial lab target, not an official minimum
Storage150 GB SSD, subject to retention and event volume
DeploymentOne Splunk Enterprise instance
License target60-day Enterprise Trial, then optionally Splunk Free

Hardware figures are pragmatic starting points for a small lab, not guaranteed sizing. Search workload, parsing, data-model apps, disk speed, and ingestion volume affect performance.

2. Prerequisites

sudo apt update
sudo apt install -y wget ca-certificates
uname -m
lsb_release -a
free -h
df -h /

Confirm uname -m returns x86_64. Record available disk and memory before installing.

3. Download the installer package

Use the official Splunk Enterprise download page to select the current Linux x86-64 package. Depending on the download option provided for the selected release, you may obtain a Debian .deb package or a compressed archive. Sign in if the download requires it.

Ubuntu terminal showing the Splunk Enterprise Debian package download step.
Downloading the Splunk Enterprise Debian package to the Ubuntu lab host.

For the Debian package, transfer it to the Ubuntu host (for example, into /tmp) and install using its exact downloaded filename. The example below deliberately uses a placeholder: release URLs and filenames change, so do not copy an old version-specific URL blindly.

# Example after copying the downloaded .deb to /tmp:
sudo dpkg -i /tmp/splunk-ENTER-YOUR-DOWNLOADED-VERSION-linux-amd64.deb

# If dpkg reports missing package dependencies:
sudo apt-get -f install
Ubuntu terminal showing Splunk Enterprise package installation output.
Installing the downloaded Splunk Enterprise package with dpkg.

If you select the .tgz package instead, follow Splunk's official Linux installation instructions for the archive method. Do not mix instructions from different package types.

4. First start and initial setup

After installation, Splunk is normally located at /opt/splunk. Start it once and follow the prompts to accept the license and create the local administrator account:

sudo /opt/splunk/bin/splunk start --accept-license
Terminal showing the first Splunk Enterprise startup and license acceptance.
First startup: accept the Splunk license agreement.
Terminal showing Splunk Enterprise startup after license acceptance.
Continuing first-start initialization after accepting the license.

The commands used in this lab set the service account to splunk. Before applying ownership changes, first determine which account owns the existing installation and running process. Avoid recursively changing ownership while Splunk is running.

ps -eo user,pid,args | grep '[s]plunkd'
stat -c '%U:%G %n' /opt/splunk
getent passwd splunk
Terminal showing the Splunk operating-system user setup command.
Preparing the Splunk OS user before configuring service ownership.

If you intentionally installed Splunk to run as a dedicated splunk account, use that account consistently for the service, files, and startup configuration. On a fresh lab install, ownership can be set before starting Splunk; for an already running installation, plan a controlled stop before changing ownership.

Open http://<UBUNTU_SERVER_IP>:8000 from a trusted lab workstation and sign in using the administrator credentials created at first start.

Splunk Web login screen after installation.
Splunk Web login page on the new lab instance.
Splunk Enterprise dashboard in the browser after login.
Splunk Enterprise Web interface after logging in.

5. Configure systemd to start Splunk at boot

One issue observed during this lab was that systemctl status Splunkd.service returned “Unit Splunkd.service could not be found”, while the attempt to run enable boot-start said Splunk was still running. The missing unit file was consistent with boot-start not yet having been configured. Splunk documents that you must stop splunkd before running the systemd boot-start setup.

First stop the currently running service using the same OS account that manages the instance. If Splunk is run by the splunk account:

sudo -u splunk /opt/splunk/bin/splunk stop

Then create the systemd unit. Run the command with sudo because it writes the unit under /etc/systemd/system:

sudo /opt/splunk/bin/splunk enable boot-start \
  -systemd-managed 1 \
  -user splunk \
  -group splunk

Splunk's current documentation says this creates /etc/systemd/system/Splunkd.service by default. Then reload systemd and enable the service:

sudo systemctl daemon-reload
sudo systemctl enable --now Splunkd.service
sudo systemctl status Splunkd.service --no-pager
Terminal showing the follow-up Splunk boot-start configuration and service checks.
Follow-up terminal checks during boot-start configuration. Confirm the final systemd service status on your own host.

Expected validation: systemd reports the unit as loaded and active. If the stop command reports that the user cannot control the running instance, do not kill it immediately—inspect the process owner and use the matching OS account before retrying.

6. Known issues and troubleshooting

Issue: “please stop it before running enable/disable boot-start”

Meaning: Splunk detected that its process was still running. The boot-start registration step had not completed. Stop Splunk first, then execute the enable command.

Terminal showing the Splunk boot-start configuration error while Splunk is running.
Boot-start setup initially fails because Splunk is still running.

Issue: “Unit Splunkd.service could not be found”

Meaning: systemd could not find a unit with that name. In the recorded sequence, enable boot-start had exited before creating it because Splunk was running. After stopping Splunk and successfully completing boot-start, reload systemd and check the unit name and status again.

Useful checks

sudo systemctl list-unit-files | grep -i splunk
sudo journalctl -u Splunkd.service -n 100 --no-pager
sudo -u splunk /opt/splunk/bin/splunk status
sudo ss -lntp | grep ':8000'

The conversation confirms the initial error output and the identified corrective sequence. It does not include a later command output proving the service became active, so this article describes the documented fix and expected validation rather than claiming a verified final result.

7. Use the 60-day Enterprise Trial, then optionally convert to Free

A new Splunk Enterprise installation includes a 60-day Enterprise Trial by default, with an indexing allowance of up to 500 MB per day. Splunk's Free license also permits up to 500 MB/day and does not expire, but it removes important functionality.

  1. During the trial, use Splunk Web to explore log ingestion, searches, dashboards, and supported Enterprise features.
  2. Before or after the trial expires, open Settings → Licensing → Change License Group.
  3. Select Free license, save the change, and restart Splunk when prompted.
Critical Free-license caveat

Splunk Free disables alerting and removes user accounts, roles, and the login screen. Anyone who can reach the web UI can gain administrator-level access. Keep it on an isolated, trusted lab network and restrict port 8000. Free is suitable for learning search and ingestion, but not for an alert-driven SIEM workflow. Repeated license violations can also disable search.

For current restrictions and conversion steps, refer to Splunk's official About Splunk Free and Install your license documentation.

8. Next: onboard the lab data sources

SourceTypical approachValidation idea
Windows endpoint 1 and 2Splunk Universal Forwarder and selected Windows Event LogsSearch for the host and confirm recent security events arrive.
Linux hostUniversal Forwarder or syslog, depending on the chosen data pathConfirm authentication and system logs are indexed.
FortiGateConfigure syslog forwarding to the Splunk listener or use a supported integration pathVerify source address, timestamps, and expected firewall event fields.

Use Splunk's official documentation to configure the receiving input and endpoint forwarding. Do not open a listener to all networks by default; allow only your lab sources. Start by keeping the overall ingestion rate below the 500 MB/day trial and Free limit.

9. Official references

Versioned documentation and available download files can change. Verify the package filename, supported operating system, and license behavior for the exact Splunk release you install. This guide is educational and does not replace vendor documentation or a production design review.

Discuss Splunk lab and SIEM engineering

Building a Splunk lab or planning to onboard Windows, Linux, and FortiGate telemetry?

Connect to discuss Splunk deployment, log onboarding, search validation, and practical SIEM engineering.