#   Splunk

[Splunk](https://www.splunk.com/) is a platform designed for searching, monitoring, and analyzing machine-generated data, including logs, events, and other forms of operational and business data.  You can set up Wallarm to send alerts to Splunk.

##  Setting up integration

In Splunk UI:

1. Open **Settings** ➝ **Add Data** ➝ **Monitor**.
2. Select the **HTTP Event Collector** option, enter an integration name and click **Next**.
3. Skip choosing the data type at the **Input Settings** page and continue to **Review Settings**.
4. Review and **Submit** the settings.
5. Copy the provided token.

In Wallarm UI:

1. Open the **Integrations** section.
1. Click the **Splunk** block or click the **Add integration** button and choose **Splunk**.
1. Enter an integration name.
1. Paste the copied token into the **HEC token** field.
1. Paste HEC URI and the port number of your Splunk instance into the **HEC URI:PORT** field. For example: `https://hec.splunk.com:8088`.
1. Choose event types to trigger notifications.

    ![Splunk integration](https://docs.wallarm.com/images/user-guides/settings/integrations/add-splunk-integration.png)

    Details on available events:

    * [Hits](https://docs.wallarm.com/glossary-en.md#hit) detected except for:

        * Experimental hits detected based on the [custom regular expression](https://docs.wallarm.com/user-guides/rules/regex-rule.md). Non-experimental hits trigger notifications.
        * Hits not saved in the [sample](https://docs.wallarm.com/user-guides/events/grouping-sampling.md#sampling-of-hits).

        Optionally include the `headers` object with hit headers in hit logs. If disabled, headers are not included in the logs.

    * System related:
        * [User](https://docs.wallarm.com/user-guides/settings/users.md) changes (newly created, deleted, role change)
        * [Integration](https://docs.wallarm.com/user-guides/settings/integrations/integrations-intro.md) changes (disabled, deleted)
        * [Application](https://docs.wallarm.com/user-guides/settings/applications.md) changes (newly created, deleted, name change)
        * Errors during regular update of specifications used for [rogue API detection](https://docs.wallarm.com/api-discovery/rogue-api.md) or [API specification enforcement](https://docs.wallarm.com/api-specification-enforcement/setup.md#step-1-upload-specification)
    * [Rules](https://docs.wallarm.com/user-guides/rules/rules.md) and [triggers](https://docs.wallarm.com/user-guides/triggers/triggers.md) changed (creating, updating, or deleting the rule or trigger)
    * [Security issues](https://docs.wallarm.com/user-guides/vulnerabilities.md) detected by [all methods](https://docs.wallarm.com/about-wallarm/detecting-vulnerabilities.md#detection-methods), all or only for the selected risk levels:    
        * Critical risk
        * High risk
        * Medium risk
        * Low risk
        * Info risk
    * On an hourly basis, you can get a notification with the number of requests processed during the previous hour
1. Click **Test integration** to check configuration correctness, availability of the target system, and the notification format.

    Test Splunk notification in the JSON format:

    ```json
    {
        summary:"[Test message] [Test partner(US)] New vulnerability detected",
        description:"Notification type: vuln

                    New vulnerability was detected in your system.

                    ID: 
                    Title: Test
                    Domain: example.com
                    Path: 
                    Method: 
                    Discovered by: 
                    Parameter: 
                    Type: Info
                    Threat: Medium

                    More details: https://us1.my.wallarm.com/object/555

                    Client: TestCompany
                    Cloud: US
                    ",
        details:{
            client_name:"TestCompany",
            cloud:"US",
            notification_type:"vuln",
            vuln_link:"https://us1.my.wallarm.com/object/555",
            vuln:{
                domain:"example.com",
                id:null,
                method:null,
                parameter:null,
                path:null,
                title:"Test",
                discovered_by:null,
                threat:"Medium",
                type:"Info"
            }
        }
    }
    ```

1. Click **Add integration**.

!!! info "Wallarm Cloud IP addresses"
    To provide Wallarm Cloud access to your system, you may need a list of its public IP addresses:

    **US Cloud:**

    ```
    34.102.90.100
    34.94.156.115
    35.235.115.105
    34.94.85.217
    34.94.51.234
    34.102.59.122
    34.94.238.72
    35.235.100.79
    34.102.45.38
    34.94.241.21
    34.94.203.193
    34.94.238.221
    34.94.9.235
    34.94.118.150
    34.94.193.9
    ```

    **EU Cloud:**

    ```
    34.141.230.156
    34.91.138.113
    34.90.114.134
    35.204.127.78
    34.90.24.155
    34.7.147.149
    ```

    **ME Cloud:**

    ```
    34.166.215.174
    ```
## Setting up additional alerts

Besides the notifications you have already set up through the integration card, Wallarm triggers allow you to select additional events for notifications:

* Number of [attacks](https://docs.wallarm.com/glossary-en.md#attack), [hits](https://docs.wallarm.com/glossary-en.md#hit) or incidents per time interval (day, hour, etc.) exceeds the set number

    !!! info "What is not counted"
        * For attacks: 
            * The experimental attacks based on the [custom regular expressions](https://docs.wallarm.com/user-guides/rules/regex-rule.md).
        * For hits:
            * The experimental hits based on the [custom regular expressions](https://docs.wallarm.com/user-guides/rules/regex-rule.md).
            * Hits not saved in the [sample](https://docs.wallarm.com/user-guides/events/grouping-sampling.md#sampling-of-hits).

* [Changes in API](https://docs.wallarm.com/api-discovery/track-changes.md) took place
* IP address was [denylisted](https://docs.wallarm.com/user-guides/ip-lists/overview.md)
* New [rogue API](https://docs.wallarm.com/api-discovery/rogue-api.md) (shadow, zombie) was detected
* New user was added to the company account

For condition detailing, you can add one or more filters. As soon, as condition and filters are set, select the integration through which the selected alert should be sent. You can select several integrations simultaneously.

![Choosing an integration](https://docs.wallarm.com/images/user-guides/triggers/select-integration.png)
## Getting events 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](https://splunkbase.splunk.com/app/6610).

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.

![Splunk dashboard](https://docs.wallarm.com/images/user-guides/settings/integrations/splunk-dashboard-by-wallarm.png)

To install the Wallarm application for Splunk:

1. In the Splunk UI ➝ **Apps** find the `Wallarm API Security` application.
1. 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](https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Search) used to extract data from all Splunk records.

## Disabling and deleting an integration

You can delete or temporarily disable the integration. While deleting stops sending notifications and completely deletes all configuration, disabling just stops sending notifications which you can at any moment re-enable with the same settings.

If for the integration the **System related** events are selected to trigger notifications, Wallarm will notify about both of these actions.
## System unavailability and incorrect integration parameters

Notifications to the system are sent via requests. If the system is unavailable or integration parameters are configured incorrectly, the error code is returned in the response to the request.

If the system responds to Wallarm request with any code other than `2xx`, Wallarm resends the request with the interval until the `2xx` code is received:

* The first cycle intervals: 1, 3, 5, 10, 10 seconds
* The second cycle intervals: 0, 1, 3, 5, 30 seconds
* The third cycle intervals:  1, 1, 3, 5, 10, 30 minutes

If the percentage of unsuccessful requests reaches 60% in 12 hours, the integration is automatically disabled. If you receive system notifications, you will get a message about automatically disabled integration.

