Ana içeriğe geç

Splunk Enterprise üzerinden Fluentd

Bu talimatlar, Wallarm ile Fluentd veri toplayıcısının örnek entegrasyonu aracılığıyla olayların Splunk SIEM sistemine iletilmesini sağlamaktadır.

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

Webhook akışı

Kullanılan kaynaklar

Wallarm Cloud IP addresses

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

35.235.66.155
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
34.141.230.156
34.91.138.113
34.90.114.134
35.204.127.78

Splunk Enterprise ve Fluentd servislerine örnek olarak verilen bağlantılar, gerçek yanıt vermemektedir.

Splunk Enterprise yapılandırması

Fluentd logları, Wallarm Fluentd logs adıyla ve diğer varsayılan ayarlarla Splunk HTTP Event Controller’a gönderilir:

HTTP Event Collector Yapılandırması

HTTP Event Controller’a erişmek için oluşturulan f44b3179-91aa-44f5-a6f7-202265e10475 token'ı kullanılacaktır.

Splunk HTTP Event Controller kurulumu hakkında daha detaylı bilgi resmi Splunk dokümantasyonunda mevcuttur.

Fluentd yapılandırması

Wallarm, webhooks aracılığıyla logları Fluentd ara veri toplayıcısına gönderdiğinden, Fluentd yapılandırması aşağıdaki gereksinimleri karşılamalıdır:

  • POST veya PUT isteklerini kabul etmek

  • HTTPS isteklerini kabul etmek

  • Genel URL’ye sahip olmak

  • Logları Splunk Enterprise’a iletmek; bu örnekte logları iletmek için splunk_hec eklentisi kullanılmaktadır

Fluentd, td-agent.conf dosyasında yapılandırılır:

  • Gelen webhook işleme, source yönergesinde yapılandırılmıştır:

    • Trafik 9880 portuna yönlendirilir
    • Fluentd, yalnızca HTTPS bağlantılarını kabul edecek şekilde yapılandırılmıştır
    • Genel olarak güvenilen bir CA tarafından imzalanmış Fluentd TLS sertifikası /etc/ssl/certs/fluentd.crt dosyasında bulunur
    • TLS sertifikası için özel anahtar /etc/ssl/private/fluentd.key dosyasında bulunur
  • Logların Splunk’a iletilmesi ve log çıktısının alınması match yönergesinde yapılandırılmıştır:

    • Tüm olay logları Fluentd tarafından kopyalanır ve Splunk HTTP Event Controller üzerinden fluent-plugin-splunk-hec çıktı eklentisi ile iletilir
    • Fluentd logları, ayrıca komut satırında JSON formatında yazdırılır (19-22 kod satırı). Bu ayar, olayların Fluentd aracılığıyla loglandığını doğrulamak içindir
<source>
  @type http # HTTP ve HTTPS trafiği için input eklentisi
  port 9880 # gelen istekler için port
  <transport tls> # bağlantı işlemleri için yapılandırma
    cert_path /etc/ssl/certs/fluentd.crt
    private_key_path /etc/ssl/private/fluentd.key
  </transport>
</source>
<match **>
  @type copy
  <store>
      @type splunk_hec # logları Splunk API'sine HTTP Event Controller aracılığıyla iletmek için fluent-plugin-splunk-hec çıktı eklentisi
      hec_host 109.111.35.11 # Splunk ana makinesi
      hec_port 8088 # Splunk API portu
      hec_token f44b3179-91aa-44f5-a6f7-202265e10475 # HTTP Event Controller token'ı
    <format>
      @type json # iletilen logların formatı
    </format>
  </store>
  <store>
     @type stdout # komut satırında Fluentd loglarını yazdırmak için çıktı eklentisi
     output_type json # komut satırında yazdırılan logların formatı
  </store>
</match>

Yapılandırma dosyaları hakkında daha detaylı bilgi resmi Fluentd dokümantasyonunda mevcuttur.

Fluentd yapılandırmasını test etme

Fluentd loglarının oluşturulduğunu ve Splunk’a iletildiğini doğrulamak için, PUT veya POST isteği Fluentd’e gönderilebilir.

İstek örneği:

curl -X POST 'https://fluentd-example-domain.com' -H "Content-Type: application/json" -H "Authorization: Splunk f44b3179-91aa-44f5-a6f7-202265e10475" -d '{"key1":"value1", "key2":"value2"}'

Fluentd logları:
Fluentd Logları

Splunk logları:
Splunk Logları

Fluentd entegrasyonunun yapılandırılması

  • 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

Fluentd entegrasyonu ile webhook

Fluentd entegrasyonunun yapılandırılması hakkında daha detaylı bilgi

Örnek test etme

To test the configuration, a new user is added in Wallarm Console:

Adding user

Fluentd, olayı aşağıdaki gibi loglayacaktır:

Splunk’te Fluentd’den yeni kullanıcı logu

Aşağıdaki giriş, Splunk olayları arasında görüntülenecektir:

Splunk’te Fluentd’den yeni kullanıcı kartı

Splunk Enterprise’da olayların panoda düzenli şekilde görüntülenmesi

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.

Splunk dashboard

To install the Wallarm application for Splunk:

  1. In the Splunk UI ➝ Apps find the Wallarm API Security application.

  2. 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.