Splunk Enterprise via Fluentd¶
These instructions provide you with the example integration of Wallarm with the Fluentd data collector to further forward events to the Splunk SIEM system.
The most common logging scheme in complex systems consists of the following components:
-
Data collector: accepts logs from several sources and forwards logs to the SIEM system
-
SIEM system or log management systems: used to analyze logs and monitor the system status
Used resources¶
-
Splunk Enterprise with WEB URL
https://109.111.35.11:8000
and API URLhttps://109.111.35.11:8088
-
Fluentd installed on Debian 11.x (bullseye) and available on
https://fluentd-example-domain.com
-
Administrator access to Wallarm Console in EU cloud to configure the Fluentd integration
Wallarm Cloud IP addresses
To provide Wallarm Cloud access to your system, you may need a list of its public IP addresses:
Since the links to the Splunk Enterprise and Fluentd services are cited as examples, they do not respond.
Splunk Enterprise configuration¶
Fluentd logs are sent to Splunk HTTP Event Controller with the name Wallarm Fluentd logs
and other default settings:
To access the HTTP Event Controller, the generated token f44b3179-91aa-44f5-a6f7-202265e10475
will be used.
A more detailed description of Splunk HTTP Event Controller setup is available in the official Splunk documentation.
Fluentd configuration¶
Since Wallarm sends logs to the Fluentd intermediate data collector via webhooks, the Fluentd configuration should meet the following requirements:
-
Accept the POST or PUT requests
-
Accept HTTPS requests
-
Have public URL
-
Forward logs to Splunk Enterprise, this example uses the
splunk_hec
plugin to forward logs
Fluentd is configured in the td-agent.conf
file:
-
Incoming webhook processing is configured in the
source
directive:- Traffic is sent to port 9880
- Fluentd is configured to accept only HTTPS connections
- Fluentd TLS certificate signed by a publicly trusted CA is located within the file
/etc/ssl/certs/fluentd.crt
- Private key for TLS certificate is located within the file
/etc/ssl/private/fluentd.key
-
Forwarding logs to Splunk and log output are configured in the
match
directive:- All event logs are copied from Fluentd and forwarded to Splunk HTTP Event Controller via the output plugin fluent-plugin-splunk-hec
- Fluentd logs are additionally printed on the command line in JSON format (19-22 code lines). The setting is used to verify that events are logged via Fluentd
A more detailed description of configuration files is available in the official Fluentd documentation.
Testing Fluentd configuration
To check that Fluentd logs are created and forwarded to Splunk, the PUT or POST request can be sent to Fluentd.
Request example:
Configuration of Fluentd integration¶
-
Webhooks are sent to
https://fluentd-example-domain.com
-
Webhooks are sent via POST requests
-
The webhook integration has default advanced settings
-
Webhooks sent to Webhook URLs are all available events: hits, system events, vulnerabilities, scope changes
More details on the Fluentd integration configuration
Example testing¶
To test the configuration, a new user is added in Wallarm Console:
Fluentd will log the event as follows:
The following entry will be displayed in Splunk events:
Getting events in Splunk Enterprise organized into a dashboard¶
To get Wallarm events organized into a ready-to-use dashboard in Splunk 9.0 or later, you can install the Wallarm application for Splunk.
This application provides you with a pre-configured dashboard that is automatically filled with the events received from Wallarm. In addition to that, the application enables you to proceed to detailed logs on each event and export the data from the dashboard.
To install the Wallarm application for Splunk:
-
In the Splunk UI ➝ Apps find the
Wallarm API Security
application. -
Click Install and input the Splunkbase credentials.
If some Wallarm events are already logged in Splunk, they will be displayed on the dashboard, as well as further events Wallarm will discover.
In addition, you can fully customize the ready-to-use dashboard, e.g. its view or search strings used to extract data from all Splunk records.