
This project connected Wazuh and Splunk together.
Simple explanation:
Wazuh finds alerts. Splunk helps me search the alerts.
This is a basic SOC workflow. A SOC analyst needs to collect security data, search it, and understand what happened.
9997.Ubuntu Server
↓
Wazuh detects activity
↓
Wazuh writes alerts to alerts.json
↓
Splunk Universal Forwarder sends the alerts
↓
Splunk receives the alerts
↓
I search the alerts in Splunk
9997.wazuh./var/ossec/logs/alerts/alerts.json
At first, there were not many alerts because my Ubuntu server was quiet.
That helped me understand something important:
No activity means no alerts.
To test the setup safely, I created simple activity on Ubuntu, like failed sudo attempts. This caused Wazuh to generate alerts.
Then I checked the Wazuh alert file:
sudo tail -n 20 /var/ossec/logs/alerts/alerts.json
After that, I searched for the alerts in Splunk.

Show Wazuh events:
index=wazuh | head 20
Count alerts by rule description:
index=wazuh | stats count by rule.description | sort -count
Count alerts by severity level:
index=wazuh | stats count by rule.level | sort -rule.level
1. Wazuh Manager was running

2. Wazuh alerts arrived in Splunk

3. The Wazuh alert file existed on Ubuntu

4. Alerts counted by severity level — levels 3 (144), 4 (1), 5 (1), and 7 (109).

5. Common alert types — PAM logins, successful sudo to root, and CIS Ubuntu benchmark findings

9997 must be open so Splunk can receive logs.Project A of a 4-part security home-lab portfolio.