Aracılığıyla paylaş


[Kullanım dışı] Günlükleri HTTP Veri Toplama API'siyle akışla aktarmak için Logstash kullanma (eski)

Önemli

Birçok gereç ve cihazdan günlük toplama artık Ortak Olay Biçimi (CEF), AMA aracılığıyla Syslog veya Microsoft Sentinel'de AMA veri bağlayıcısı aracılığıyla Özel Günlükler tarafından desteklenmektedir. Daha fazla bilgi için bkz. Microsoft Sentinel veri bağlayıcınızı bulma.

Önemli

Logstash çıkış eklentisi kullanılarak veri alımı şu anda genel önizleme aşamasındadır. Bu özellik bir hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri Ek Kullanım Koşulları.

Not

Logstash eklentisinin daha yeni bir sürümü, DCR tabanlı API'yi kullanarak günlükleri dış veri kaynaklarından özel ve standart tablolara iletebilir. Yeni eklenti, sütun adlarının ve türlerinin yapılandırması da dahil olmak üzere çıkış şeması üzerinde tam denetime olanak tanır.

Logstash veri toplama altyapısı için Microsoft Sentinel'in çıkış eklentisini kullanarak, Logstash aracılığıyla istediğiniz günlük türünü doğrudan Microsoft Sentinel'deki Log Analytics çalışma alanınıza gönderebilirsiniz. Günlükleriniz, çıkış eklentisini kullanarak tanımladığınız özel bir tabloya gönderilir. Eklentinin bu sürümü HTTP Veri Toplama API'sini kullanır.

Logstash veri toplama altyapısıyla çalışma hakkında daha fazla bilgi edinmek için bkz . Logstash'i kullanmaya başlama.

Genel bakış

Mimari ve arka plan

Logstash mimarisinin diyagramı.

Logstash altyapısı üç bileşenden oluşur:

  • Giriş eklentileri: Çeşitli kaynaklardan özelleştirilmiş veri koleksiyonu.
  • Filtre eklentileri: Verilerin belirtilen ölçütlere göre değiştirilmesi ve normalleştirilmesi.
  • Çıkış eklentileri: Toplanan ve işlenen verilerin çeşitli hedeflere özel olarak gönderilmesi.

Not

  • Microsoft yalnızca burada açıklanan Microsoft Sentinel tarafından sağlanan Logstash çıkış eklentisini destekler. Bu eklentinin geçerli sürümü, 2020-08-25 sürümünde yayımlanan v1.0.0 sürümüdür. Çıkış eklentisiyle ilgili sorunlar için bir destek bileti açabilirsiniz.

  • Microsoft, Microsoft Sentinel için üçüncü taraf Logstash çıkış eklentilerini veya herhangi bir türde başka logstash eklentisini veya bileşenini desteklemez.

  • Microsoft Sentinel'in Logstash çıkış eklentisi yalnızca Logstash 7.0 ile 7.17.10 arasındaki sürümleri ve 8.0 ile 8.9 ve 8.11 sürümlerini destekler. Logstash 8 kullanıyorsanız işlem hattında ECS'yi devre dışı bırakmanızı öneririz.

Logstash için Microsoft Sentinel çıkış eklentisi, Log Analytics HTTP Veri Toplayıcı REST API'sini kullanarak JSON biçimli verileri Log Analytics çalışma alanınıza gönderir. Veriler özel günlüklere alınır.

  • Log Analytics REST API'si hakkında daha fazla bilgi edinin.
  • Özel günlükler hakkında daha fazla bilgi edinin.

Logstash'te Microsoft Sentinel çıkış eklentisini dağıtma

1. Adım: Yükleme

Microsoft Sentinel çıkış eklentisi Logstash koleksiyonunda kullanılabilir.

  • Microsoft-logstash-output-azure-loganalytics eklentisini yüklemek için Logstash Eklentilerle çalışma belgesindeki yönergeleri izleyin.

  • Logstash sisteminizin İnternet erişimi yoksa, çevrimdışı eklenti paketi hazırlamak ve kullanmak için Logstash Çevrimdışı Eklenti Yönetimi belgesindeki yönergeleri izleyin. (Bu, İnternet erişimine sahip başka bir Logstash sistemi oluşturmanızı gerektirir.)

2. Adım: Yapılandırma

Bir yapılandırma dosyasının Logstash Yapısı belgesindeki bilgileri kullanın ve aşağıdaki anahtarlar ve değerlerle Microsoft Sentinel çıkış eklentisini yapılandırmaya ekleyin. (Doğru yapılandırma dosyası söz dizimi tablodan sonra gösterilir.)

Alan adı Veri türü Açıklama
workspace_id Dize Çalışma alanı kimliği GUID'nizi girin (bkz. İpucu).
workspace_key Dize Çalışma alanı birincil anahtar GUID'nizi girin (bkz. İpucu).
custom_log_table_name Dize Günlüklerin alınacağı tablonun adını ayarlayın. Çıkış eklentisi başına yalnızca bir tablo adı yapılandırılabilir. Günlük tablosu, Microsoft Sentinel'de Günlükler'in altında, Özel Günlükler kategorisindeki Tablolar'da bir _CL sonekle gösterilir.
endpoint Dize İsteğe bağlı alan. Bu varsayılan olarak Log Analytics uç noktasıdır. Alternatif bir uç nokta ayarlamak için bu alanı kullanın.
time_generated_field Dize İsteğe bağlı alan. Bu özellik Log Analytics'te varsayılan TimeGenerated alanını geçersiz kılar. Veri kaynağında zaman damgası alanının adını girin. Alandaki veriler ISO 8601 biçimine (YYYY-MM-DDThh:mm:ssZ) uygun olmalıdır
key_names dizi Log Analytics çıkış şeması alanlarının listesini girin. Her liste öğesi tek tırnak içine alınmalı, öğeler virgülle ayrılmalıdır ve listenin tamamı köşeli ayraç içine alınmalıdır. Aşağıdaki örneğe bakın.
plugin_flush_interval Numara İsteğe bağlı alan. Log Analytics'e ileti iletimleri arasındaki maksimum aralığı (saniye cinsinden) tanımlamak için ayarlayın. Varsayılan 5'dir.
amount_resizing boolean Doğru veya yanlış. İleti arabelleği boyutunu alınan günlük verilerinin hacmine göre ayarlayan otomatik ölçeklendirme mekanizmasını etkinleştirin veya devre dışı bırakın.
max_items Numara İsteğe bağlı alan. Yalnızca amount_resizing "false" olarak ayarlandığında uygulanır. İleti arabelleği boyutuna (kayıtlarda) bir üst sınır ayarlamak için kullanın. Varsayılan değer 2000’dir.
azure_resource_id Dize İsteğe bağlı alan. Verilerin bulunduğu Azure kaynağının kimliğini tanımlar.
Kaynak kimliği değeri özellikle yalnızca belirli verilere erişim sağlamak için kaynak bağlamı RBAC kullanıyorsanız kullanışlıdır.

İpucu

  • Çalışma alanı kimliğini ve birincil anahtarı, aracı yönetimi altındaki çalışma alanı kaynağında bulabilirsiniz.
  • Ancak, kimlik bilgilerinin ve diğer hassas bilgilerin yapılandırma dosyalarında düz metin olarak depolanması en iyi güvenlik yöntemleriyle uyumlu olmadığından, çalışma alanı kimliğinizi ve çalışma alanı birincil anahtarınızı yapılandırmaya güvenli bir şekilde eklemek için Logstash anahtar deposundan yararlanmanız kesinlikle önerilir. Yönergeler için Elastic'in belgelerine bakın.

Örnek yapılandırmalar

Aşağıda birkaç farklı seçenek kullanan bazı örnek yapılandırmalar verilmiştir.

  • Filebeat giriş kanalı kullanan temel bir yapılandırma:

      input {
          beats {
              port => "5044"
          }
      }
      filter {
      }
      output {
          microsoft-logstash-output-azure-loganalytics {
            workspace_id => "<your workspace id>"
            workspace_key => "<your workspace key>"
            custom_log_table_name => "tableName"
          }
      }
    
  • Tcp giriş kanalı kullanan temel bir yapılandırma:

      input {
          tcp {
              port => "514"
              type => syslog #optional, will effect log type in table
          }
      }
      filter {
      }
      output {
          microsoft-logstash-output-azure-loganalytics {
            workspace_id => "<your workspace id>"
            workspace_key =>  "<your workspace key>"
            custom_log_table_name => "tableName"
          }
      }
    
  • Gelişmiş yapılandırma:

      input {
          tcp {
              port => 514
              type => syslog
          }
      }
      filter {
          grok {
              match => { "message" => "<%{NUMBER:PRI}>1 (?<TIME_TAG>[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}T[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2})[^ ]* (?<HOSTNAME>[^ ]*) %{GREEDYDATA:MSG}" }
          }
      }
      output {
          microsoft-logstash-output-azure-loganalytics {
              workspace_id => "<WS_ID>"
              workspace_key => "${WS_KEY}"
              custom_log_table_name => "logstashCustomTable"
              key_names => ['PRI','TIME_TAG','HOSTNAME','MSG']
              plugin_flush_interval => 5
          }
      } 
    
  • Yapılandırılmamış metin verilerinden özel bir zaman damgasını ve JSON dizesini ayrıştırmak ve seçilen alan kümesini ayıklanan zaman damgasıyla Log Analytics'te günlüğe kaydetmek için daha gelişmiş bir yapılandırma:

      # Example log line below:
      # Mon Nov 07 20:45:08 2022: { "name":"_custom_time_generated", "origin":"test_microsoft", "sender":"test@microsoft.com", "messages":1337}
      # take an input
      input {
          file {
              path => "/var/log/test.log"
          }
      }
      filter {
      # extract the header timestamp and the Json section
          grok {
              match => {
                  "message" => ["^(?<timestamp>.{24}):\s(?<json_data>.*)$"]
              }
          }
      # parse the extracted header as a timestamp
      date {
          id => 'parse_metric_timestamp'
              match => [ 'timestamp', 'EEE MMM dd HH:mm:ss yyyy' ]
              timezone => 'Europe/Rome'
              target => 'custom_time_generated'
          }
      json {
          source => "json_data"
          }
      }
      # output to a file for debugging (optional)
      output {
          file {
              path => "/tmp/test.txt"
              codec => line { format => "custom format: %{message} %{custom_time_generated} %{json_data}"}
          }
      }
      # output to the console output for debugging (optional)
      output {
          stdout { codec => rubydebug }
      }
      # log into Log Analytics
      output {
          microsoft-logstash-output-azure-loganalytics {
              workspace_id => '[REDACTED]'
              workspace_key => '[REDACTED]'
              custom_log_table_name => 'RSyslogMetrics'
              time_generated_field => 'custom_time_generated'
              key_names => ['custom_time_generated','name','origin','sender','messages']
          }
      }
    

    Not

    İç çalışma, yapılandırma ve performans ayarları hakkında daha fazla bilgi edinmek için çıkış eklentisi GitHub deposunu ziyaret edin.

3. Adım: Logstash'ı yeniden başlatma

4. Adım: Microsoft Sentinel'de gelen günlükleri görüntüleme

  1. İletilerin çıkış eklentisine gönderildiğini doğrulayın.

  2. Microsoft Sentinel gezinti menüsünde Günlükler'e tıklayın. Tablolar başlığı altında Özel Günlükler kategorisini genişletin. Yapılandırmada belirttiğiniz tablonun adını (sonekle _CL ) bulun ve tıklayın.

    Günlük hazırlama özel günlüklerinin ekran görüntüsü.

  3. Tablodaki kayıtları görmek için, şema olarak tablo adını kullanarak tabloyu sorgulayın.

    Günlük hazırlama özel günlükleri sorgusunun ekran görüntüsü.

Çıkış eklentisi denetim günlüklerini izleme

Microsoft Sentinel çıkış eklentisinin bağlantısını ve etkinliğini izlemek için uygun Logstash günlük dosyasını etkinleştirin. Günlük dosyası konumu için Logstash Dizin Düzeni belgesine bakın.

Bu günlük dosyasında veri görmüyorsanız, çıktı eklentisinin veri aldığından emin olmak için yerel olarak (giriş ve filtre eklentileri aracılığıyla) bazı olayları oluşturun ve gönderin. Microsoft Sentinel yalnızca çıkış eklentisiyle ilgili sorunları destekleyecektir.

Sonraki adımlar

Bu belgede, dış veri kaynaklarını Microsoft Sentinel'e bağlamak için Logstash'i kullanmayı öğrendiniz. Microsoft Sentinel hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın: