Naplók streamelése a Logstash használatával HTTP Data Collection API-val (örökölt)

Fontos

A Logstash kimeneti beépülő modullal történő adatbetöltés jelenleg nyilvános előzetes verzióban érhető el. Ez a szolgáltatás szolgáltatásiszint-szerződés nélkül érhető el, és éles számítási feladatokhoz nem ajánlott. For more information, see Supplemental Terms of Use for Microsoft Azure Previews.

Megjegyzés:

A Logstash beépülő modul újabb verziója a DCR-alapú API használatával továbbíthatja a naplókat külső adatforrásokból egyéni és standard táblákba. Az új beépülő modul lehetővé teszi a kimeneti séma teljes vezérlését, beleértve az oszlopnevek és -típusok konfigurálását is.

A Microsoft Sentinel Logstash adatgyűjtési motorhoz készült kimeneti beépülő moduljával bármilyen típusú naplót elküldhet a Logstashen keresztül közvetlenül a Microsoft Sentinel Log Analytics-munkaterületére. A naplók egy egyéni táblába kerülnek, amelyet a kimeneti beépülő modul használatával határoz meg. A beépülő modul ezen verziója a HTTP Data Collection API-t használja.

A Logstash adatgyűjtési motorjának használatával kapcsolatos további információkért tekintse meg a Logstash használatának első lépéseit.

Áttekintés

Architektúra és háttér

Diagram of the Logstash architecture.

A Logstash motor három összetevőből áll:

  • Bemeneti beépülő modulok: Különböző forrásokból származó adatok testreszabott gyűjteménye.
  • Szűrő beépülő modulok: Az adatok kezelése és normalizálása megadott feltételek szerint.
  • Kimeneti beépülő modulok: Az összegyűjtött és feldolgozott adatok testreszabott küldése különböző célhelyekre.

Megjegyzés:

  • A Microsoft csak az itt tárgyalt Microsoft Sentinel által biztosított Logstash kimeneti beépülő modult támogatja. A beépülő modul jelenlegi verziója 1.0.0-s verzió, kiadás dátuma: 2020.08.25. A kimeneti beépülő modulval kapcsolatos problémák esetén támogatási jegyet nyithat meg.

  • A Microsoft nem támogatja a Külső Logstash kimeneti beépülő modulokat a Microsoft Sentinelhez, sem más Logstash beépülő modult vagy bármilyen típusú összetevőt.

  • A Microsoft Sentinel Logstash kimeneti beépülő modulja csak a Logstash 7.0-7.17.10-s és 8.0-8.9-8.11-s verzióit támogatja. Ha a Logstash 8-at használja, javasoljuk, hogy tiltsa le az ECS-t a folyamatban.

A Logstash Microsoft Sentinel kimeneti beépülő modulja JSON-formátumú adatokat küld a Log Analytics-munkaterületre a Log Analytics HTTP Data Collector REST API használatával. Az adatok egyéni naplókba kerülnek.

A Microsoft Sentinel kimeneti beépülő modul üzembe helyezése a Logstashban

1. lépés: Telepítés

A Microsoft Sentinel kimeneti beépülő modul a Logstash gyűjteményben érhető el.

  • A Microsoft-logstash-output-azure-loganalytics beépülő modul telepítéséhez kövesse a Logstash beépülő modullal kapcsolatos dokumentum utasításait.

  • Ha a Logstash-rendszer nem rendelkezik internet-hozzáféréssel, kövesse a Logstash offline beépülő modulkezelő dokumentum utasításait egy offline beépülő modulcsomag előkészítéséhez és használatához. (Ehhez egy másik Logstash-rendszert kell létrehoznia internet-hozzáféréssel.)

2. lépés: Konfiguráció

Használja a konfigurációs fájldokumentum Logstash-struktúrájában található információkat, és adja hozzá a Microsoft Sentinel kimeneti beépülő modult a konfigurációhoz az alábbi kulcsokkal és értékekkel. (A megfelelő konfigurációs fájlszintaxis a táblázat után jelenik meg.)

Mezőnév Adattípus Leírás
workspace_id sztring Adja meg a munkaterület azonosítóját azonosító GUID azonosítót (lásd a Tippet).
workspace_key sztring Adja meg a munkaterület elsődleges kulcsának GUID azonosítóját (lásd: Tipp).
custom_log_table_name sztring Adja meg annak a táblának a nevét, amelybe a naplókat betölti. Kimeneti beépülő modulonként csak egy táblanév konfigurálható. A naplótábla a Microsoft Sentinel Naplók csoportjában , az Egyéni naplók kategóriában egy utótaggal _CL jelenik meg.
endpoint sztring Nem kötelező kitölteni. Alapértelmezés szerint ez a Log Analytics-végpont. Ezzel a mezővel másik végpontot állíthat be.
time_generated_field sztring Nem kötelező kitölteni. Ez a tulajdonság felülbírálja a Log Analytics alapértelmezett TimeGenerated mezőjét . Adja meg az adatforrás időbélyeg mezőjének nevét. A mezőben szereplő adatoknak meg kell felelniük az ISO 8601 formátumnak (YYYY-MM-DDThh:mm:ssZ)
key_names array Adja meg a Log Analytics kimeneti sémamezőinek listáját. Minden listaelemet egy-egy idézőjelbe, a vesszővel elválasztott elemeket és a teljes listát szögletes zárójelek közé kell foglalni. Lásd az alábbi példát.
plugin_flush_interval number Nem kötelező kitölteni. Állítsa be az üzenettovábbítások közötti maximális időközt (másodpercben) a Log Analyticsnek. Az alapértelmezett érték 5.
amount_resizing Logikai Igaz vagy hamis. Engedélyezze vagy tiltsa le az automatikus skálázási mechanizmust, amely a kapott naplóadatok mennyiségének megfelelően módosítja az üzenetpuffer méretét.
max_items number Nem kötelező kitölteni. Csak akkor érvényes, ha amount_resizing "false" (hamis) értékre van állítva. Az üzenetpuffer méretének korlátjának beállítására használható (rekordokban). Az alapértelmezett érték 2000.
azure_resource_id sztring Nem kötelező kitölteni. Meghatározza annak az Azure-erőforrásnak az azonosítóját, amelyben az adatok találhatók.
Az erőforrás-azonosító értéke különösen akkor hasznos, ha erőforrás-környezetbeli RBAC-t használ, hogy csak bizonyos adatokhoz biztosítson hozzáférést.

Tipp.

  • A munkaterület-azonosítót és az elsődleges kulcsot a munkaterület erőforrásában, az Ügynökök kezelése területen találja.
  • Mivel azonban a hitelesítő adatok és más bizalmas adatok a konfigurációs fájlokban nem összhangban vannak a biztonsági ajánlott eljárásokkal, javasoljuk, hogy használja a Logstash kulcstárolót , hogy biztonságosan szerepeltesse a munkaterület azonosítóját és a munkaterület elsődleges kulcsát a konfigurációban. Útmutatásért tekintse meg az Elastic dokumentációját .

Példakonfigurációk

Íme néhány mintakonfiguráció, amelyek néhány különböző lehetőséget használnak.

  • Alapszintű konfiguráció, amely egy fájlbemeneti bemeneti csövet használ:

      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"
          }
      }
    
  • Egy tcp bemeneti csövet használó alapkonfiguráció:

      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"
          }
      }
    
  • Speciális konfiguráció:

      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
          }
      } 
    
  • Egy fejlettebb konfiguráció, amely elemez egy egyéni időbélyeget és egy JSON-sztringet strukturálatlan szöveges adatokból, és naplóz egy kijelölt mezőkészletet a Log Analyticsbe a kinyert időbélyeggel:

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

    Megjegyzés:

    Látogasson el a GitHub kimeneti beépülő modul adattárába , ahol többet tudhat meg a belső működéséről, konfigurációjáról és teljesítménybeállításairól.

3. lépés: A Logstash újraindítása

4. lépés: Bejövő naplók megtekintése a Microsoft Sentinelben

  1. Ellenőrizze, hogy az üzeneteket a kimeneti beépülő modulba küldi-e.

  2. A Microsoft Sentinel navigációs menüjében kattintson a Naplók elemre. A Táblák fejléc alatt bontsa ki az Egyéni naplók kategóriát. Keresse meg és kattintson a megadott tábla nevére (utótaggal _CL ) a konfigurációban.

    Screenshot of log stash custom logs.

  3. A tábla rekordjainak megtekintéséhez a tábla nevét használva kérdezheti le a táblát sémaként.

    Screenshot of a log stash custom logs query.

Kimeneti beépülő modul naplózási naplóinak monitorozása

A Microsoft Sentinel kimeneti beépülő modul kapcsolatának és tevékenységének figyeléséhez engedélyezze a megfelelő Logstash-naplófájlt. A naplófájl helyéhez tekintse meg a Logstash Címtár elrendezési dokumentumát.

Ha nem lát adatokat ebben a naplófájlban, hozzon létre és küldjön néhány eseményt helyileg (a bemeneti és szűrő beépülő modulokon keresztül), hogy a kimeneti beépülő modul adatokat kapjon. A Microsoft Sentinel csak a kimeneti beépülő modulval kapcsolatos problémákat támogatja.

További lépések

Ebben a dokumentumban megtanulta, hogyan csatlakoztathat külső adatforrásokat a Microsoft Sentinelhez a Logstash használatával. A Microsoft Sentinelről az alábbi cikkekben olvashat bővebben: