Ana içeriğe geç

Fluentd aracılığıyla Splunk Enterprise

Bu talimatlar, Wallarm'ın Fluentd veri toplayıcı ile örnek entegrasyonunu sağlayarak olayların Splunk SIEM sistemine iletilmesini gösterir.

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
35.235.100.79
34.102.45.38
34.94.241.21
34.102.90.100
34.94.203.193
34.94.238.221
34.94.9.23
34.141.230.156
34.91.138.113
34.90.114.134
35.204.127.78
34.90.24.155

Splunk Enterprise ve Fluentd hizmetlerine yönelik bağlantılar örnek olarak verildiğinden, yanıt vermeyecektir.

Splunk Enterprise yapılandırması

Fluentd günlükleri, ad olarak Wallarm Fluentd logs 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 belirteç f44b3179-91aa-44f5-a6f7-202265e10475 kullanılacaktır.

Splunk HTTP Event Controller kurulumu hakkında daha ayrıntılı açıklama resmi Splunk dokümantasyonunda mevcuttur.

Fluentd yapılandırması

Wallarm, günlükleri webhooks üzerinden ara veri toplayıcı Fluentd'e gönderdiğinden, Fluentd yapılandırması aşağıdaki gereksinimleri karşılamalıdır:

  • POST veya PUT isteklerini kabul etmesi

  • HTTPS isteklerini kabul etmesi

  • Genel bir URL'ye sahip olması

  • Günlükleri Splunk Enterprise'a iletmesi; bu örnek, günlükleri iletmek için splunk_hec eklentisini kullanır

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

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

    • Trafik 9880 numaralı bağlantı noktasına gönderilir
    • 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ına ait özel anahtar /etc/ssl/private/fluentd.key dosyasında bulunur
  • Günlüklerin Splunk'a iletilmesi ve günlük çıktısı match yönergesinde yapılandırılmıştır:

    • Tüm olay günlükleri Fluentd'den kopyalanır ve fluent-plugin-splunk-hec çıktı eklentisi aracılığıyla Splunk HTTP Event Controller'a iletililir
    • Fluentd günlükleri ayrıca komut satırında JSON formatında yazdırılır (19‑22. satırlar). Bu ayar, olayların Fluentd üzerinden günlüğe kaydedildiğini doğrulamak için kullanılır
<source>
  @type http # HTTP ve HTTPS trafiği için giriş eklentisi
  port 9880 # gelen istekler için bağlantı noktası
  <transport tls> # bağlantıların işlenmesi 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 # günlükleri HTTP Event Controller üzerinden Splunk API'ye iletmek için çıkış eklentisi fluent-plugin-splunk-hec
      hec_host 109.111.35.11 # Splunk ana makinesi
      hec_port 8088 # Splunk API bağlantı noktası
      hec_token f44b3179-91aa-44f5-a6f7-202265e10475 # HTTP Event Controller belirteci
    <format>
      @type json # iletilecek günlüklerin biçimi
    </format>
  </store>
  <store>
     @type stdout # Fluentd günlüklerini komut satırına yazdıran çıkış eklentisi
     output_type json # komut satırına yazdırılan günlüklerin biçimi
  </store>
</match>

Yapılandırma dosyalarının daha ayrıntılı açıklaması resmi Fluentd dokümantasyonunda mevcuttur.

Fluentd yapılandırmasını test etme

Fluentd günlüklerinin oluşturulup Splunk'a iletildiğini kontrol etmek için Fluentd'e PUT veya POST isteği 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 günlükleri:
Fluentd'deki günlükler

Splunk günlükleri:
Splunk'taki günlükler

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 ile webhook entegrasyonu

Fluentd entegrasyonunun yapılandırması hakkında daha fazla bilgi

Örnek test

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

Adding user

Fluentd olayı aşağıdaki şekilde günlüğe kaydedecektir:

Fluentd'den Splunk'ta yeni kullanıcıya ait günlük

Splunk olaylarında aşağıdaki kayıt görüntülenecektir:

Fluentd'den Splunk'ta yeni kullanıcı kartı

Splunk Enterprise'de olayları bir kontrol panelinde düzenleme

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.