Sdílet prostřednictvím


[Zastaralé] Použití Logstash ke streamování protokolů pomocí rozhraní API pro shromažďování dat HTTP (starší verze)

Důležité

Shromažďování protokolů z mnoha zařízení a zařízení teď podporuje common event Format (CEF) prostřednictvím AMA, Syslogu přes AMA nebo vlastní protokoly prostřednictvím datového konektoru AMA v Microsoft Sentinelu. Další informace najdete v tématu Vyhledání datového konektoru služby Microsoft Sentinel.

Důležité

Příjem dat pomocí výstupního modulu plug-in Logstash je aktuálně ve verzi Public Preview. Tato funkce je poskytována bez smlouvy o úrovni služeb a nedoporučuje se pro produkční úlohy. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

Poznámka:

Novější verze modulu plug-in Logstash může předávat protokoly z externích zdrojů dat do vlastních a standardních tabulek pomocí rozhraní API založeného na DCR. Nový modul plug-in umožňuje úplnou kontrolu nad výstupním schématem, včetně konfigurace názvů a typů sloupců.

Pomocí výstupního modulu plug-in Microsoft Sentinelu pro modul shromažďování dat Logstash můžete odesílat libovolný typ protokolu, který chcete, přímo do pracovního prostoru Služby Log Analytics v Microsoft Sentinelu. Vaše protokoly se odešlou do vlastní tabulky, kterou definujete pomocí výstupního modulu plug-in. Tato verze modulu plug-in používá rozhraní API pro shromažďování dat HTTP.

Další informace o práci s modulem shromažďování dat Logstash najdete v tématu Začínáme s Logstash.

Přehled

Architektura a pozadí

Diagram architektury Logstash

Modul Logstash se skládá ze tří komponent:

  • Vstupní moduly plug-in: Přizpůsobené shromažďování dat z různých zdrojů
  • Moduly plug-in filtru: Manipulace a normalizace dat podle zadaných kritérií.
  • Výstupní moduly plug-in: Přizpůsobené odesílání shromážděných a zpracovávaných dat do různých cílů.

Poznámka:

  • Microsoft podporuje pouze výstupní modul plug-in Logstash poskytovaný službou Microsoft Sentinel. Aktuální verze tohoto modulu plug-in je v1.0.0, vydaná 2020-08-25. Můžete otevřít lístek podpory pro všechny problémy související s výstupním modulem plug-in.

  • Microsoft nepodporuje výstupní moduly plug-in Logstash třetích stran pro Microsoft Sentinel ani žádný jiný modul plug-in Logstash nebo komponentu jakéhokoli typu.

  • Výstupní modul plug-in Logstash od Microsoft Sentinelu podporuje pouze Logstash verze 7.0 až 7.17.10 a verze 8.0 až 8.9 a 8.11. Pokud používáte Logstash 8, doporučujeme v kanálu zakázat ECS.

Výstupní modul plug-in Služby Microsoft Sentinel pro Logstash odesílá data ve formátu JSON do pracovního prostoru služby Log Analytics pomocí rozhraní REST API kolektoru dat HTTP služby Log Analytics. Data se ingestují do vlastních protokolů.

Nasazení výstupního modulu plug-in Microsoft Sentinel v Logstash

Krok 1: Instalace

Výstupní modul plug-in Microsoft Sentinelu je k dispozici v kolekci Logstash.

Krok 2: Konfigurace

Použijte informace v logtash Struktury konfiguračního souboru dokumentu a přidejte výstupní modul plug-in Microsoft Sentinel do konfigurace s následujícími klíči a hodnotami. (Za tabulkou se zobrazí správná syntaxe konfiguračního souboru.)

Název pole Datový typ Popis
workspace_id string Zadejte identifikátor GUID ID pracovního prostoru (viz Tip).
workspace_key string Zadejte identifikátor GUID primárního klíče pracovního prostoru (viz Tip).
custom_log_table_name string Nastavte název tabulky, do které se budou protokoly ingestovat. Pro každý výstupní modul plug-in je možné nakonfigurovat pouze jeden název tabulky. Tabulka protokolů se zobrazí v Microsoft Sentinelu v části Protokoly v tabulkách v kategorii Vlastní protokoly s příponou_CL.
endpoint string Volitelné pole. Ve výchozím nastavení se jedná o koncový bod Log Analytics. Toto pole použijte k nastavení alternativního koncového bodu.
time_generated_field string Volitelné pole. Tato vlastnost přepíše výchozí pole TimeGenerated v Log Analytics. Zadejte název pole časového razítka ve zdroji dat. Data v poli musí odpovídat formátu ISO 8601 (YYYY-MM-DDThh:mm:ssZ)
key_names pole Zadejte seznam polí výstupního schématu Log Analytics. Každá položka seznamu by měla být uzavřena v jednoduchých uvozovkách a položky oddělené čárkami a celý seznam uzavřený v hranatých závorkách. Viz příklad níže.
plugin_flush_interval Číslo Volitelné pole. Nastavte definování maximálního intervalu (v sekundách) mezi přenosy zpráv do Log Analytics. Výchozí volba je 5.
amount_resizing boolean Pravda nebo nepravda. Povolte nebo zakažte mechanismus automatického škálování, který upraví velikost vyrovnávací paměti zprávy podle objemu přijatých dat protokolu.
max_items Číslo Volitelné pole. Platí pouze v případě, že amount_resizing je nastavená hodnota false. Slouží k nastavení limitu velikosti vyrovnávací paměti zprávy (v záznamech). Výchozí hodnota je 2000.
azure_resource_id string Volitelné pole. Definuje ID prostředku Azure, ve kterém se nacházejí data.
Hodnota ID prostředku je zvlášť užitečná, pokud k poskytování přístupu pouze ke konkrétním datům používáte řízení přístupu na základě kontextu prostředku.

Tip

  • ID pracovního prostoru a primární klíč najdete v prostředku pracovního prostoru v části Správa agentů.
  • Vzhledem k tomu, že přihlašovací údaje a další citlivé informace uložené v konfiguračních souborech nejsou v souladu s osvědčenými postupy zabezpečení, důrazně doporučujeme používat úložiště klíčů Logstash k bezpečnému zahrnutí ID pracovního prostoru a primárního klíče pracovního prostoru do konfigurace. Pokyny najdete v dokumentaci k Elastic.

Ukázkové konfigurace

Tady je několik ukázkových konfigurací, které používají několik různých možností.

  • Základní konfigurace, která používá vstupní kanál filebeat:

      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"
          }
      }
    
  • Základní konfigurace, která používá vstupní kanál tcp:

      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"
          }
      }
    
  • Pokročilá konfigurace:

      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
          }
      } 
    
  • Pokročilejší konfigurace pro analýzu vlastního časového razítka a řetězce JSON z nestrukturovaných textových dat a protokolování vybrané sady polí do Log Analytics pomocí extrahovaného časového razítka:

      # 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']
          }
      }
    

    Poznámka:

    Další informace o vnitřních funkcích, konfiguraci a nastavení výkonu najdete v úložišti GitHubu pro výstupní modul plug-in.

Krok 3: Restartování logstash

Krok 4: Zobrazení příchozích protokolů v Microsoft Sentinelu

  1. Ověřte, že se zprávy odesílají do výstupního modulu plug-in.

  2. V navigační nabídce služby Microsoft Sentinel klikněte na Protokoly. Pod nadpisem Tabulky rozbalte kategorii Vlastní protokoly. V konfiguraci vyhledejte a klikněte na název tabulky, kterou jste zadali (s příponou _CL ).

    Snímek obrazovky s vlastními protokoly pro ukládání protokolů

  3. Pokud chcete zobrazit záznamy v tabulce, zadejte dotaz na tabulku pomocí názvu tabulky jako schématu.

    Snímek obrazovky s dotazem na vlastní protokoly pro ukládání protokolů

Monitorování protokolů auditu výstupního modulu plug-in

Pokud chcete monitorovat připojení a aktivitu výstupního modulu plug-in Microsoft Sentinel, povolte příslušný soubor protokolu Logstash. Informace o umístění souboru protokolu najdete v dokumentu Rozložení adresáře Logstash.

Pokud se v tomto souboru protokolu nezobrazují žádná data, vygenerujte a odešlete některé události místně (prostřednictvím modulů plug-in pro vstup a filtrování), abyste měli jistotu, že výstupní modul plug-in přijímá data. Microsoft Sentinel bude podporovat pouze problémy související s výstupním modulem plug-in.

Další kroky

V tomto dokumentu jste zjistili, jak pomocí Logstash připojit externí zdroje dat ke službě Microsoft Sentinel. Další informace o službě Microsoft Sentinel najdete v následujících článcích: