[Inaktuell] Använda Logstash för att strömma loggar med HTTP Data Collection API (äldre)
Viktigt!
Logginsamling från många enheter och enheter stöds nu av Common Event Format (CEF) via AMA, Syslog via AMA eller anpassade loggar via AMA-dataanslutningen i Microsoft Sentinel. Mer information finns i Hitta din Microsoft Sentinel-dataanslutningsapp.
Viktigt!
Datainmatning med logstash-utdata-plugin-programmet finns för närvarande i offentlig förhandsversion. Den här funktionen tillhandahålls utan ett serviceavtal och rekommenderas inte för produktionsarbetsbelastningar. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
Kommentar
En nyare version av Logstash-plugin-programmet kan vidarebefordra loggar från externa datakällor till anpassade tabeller och standardtabeller med hjälp av DET DCR-baserade API:et. Det nya plugin-programmet ger fullständig kontroll över utdataschemat, inklusive konfigurationen av kolumnnamnen och typerna.
Med hjälp av Microsoft Sentinels utdata-plugin-program för Logstash-datainsamlingsmotorn kan du skicka vilken typ av logg du vill via Logstash direkt till log analytics-arbetsytan i Microsoft Sentinel. Loggarna skickas till en anpassad tabell som du definierar med hjälp av plugin-programmet för utdata. Den här versionen av plugin-programmet använder API:et FÖR HTTP-datainsamling.
Mer information om hur du arbetar med Logstash-datainsamlingsmotorn finns i Komma igång med Logstash.
Översikt
Arkitektur och bakgrund
Logstash-motorn består av tre komponenter:
- Plugin-program för indata: Anpassad insamling av data från olika källor.
- Filter-plugin-program: Manipulering och normalisering av data enligt angivna kriterier.
- Plugin-program för utdata: Anpassad sändning av insamlade och bearbetade data till olika mål.
Kommentar
Microsoft stöder endast plugin-programmet för Logstash-utdata från Microsoft Sentinel som beskrivs här. Den aktuella versionen av plugin-programmet är v1.0.0, som släpptes 2020-08-25. Du kan öppna ett supportärende för eventuella problem med plugin-programmet för utdata.
Microsoft stöder inte logstash-utdatainsticksprogram från tredje part för Microsoft Sentinel eller andra Logstash-plugin-program eller -komponenter av någon typ.
Plugin-programmet logstash-utdata i Microsoft Sentinel stöder endast Logstash-versionerna 7.0 till 7.17.10 och versionerna 8.0 till 8.9 och 8.11. Om du använder Logstash 8 rekommenderar vi att du inaktiverar ECS i pipelinen.
Plugin-programmet för Microsoft Sentinel-utdata för Logstash skickar JSON-formaterade data till din Log Analytics-arbetsyta med hjälp av LOG Analytics HTTP Data Collector REST API. Data matas in i anpassade loggar.
- Läs mer om Log Analytics REST API.
- Läs mer om anpassade loggar.
Distribuera plugin-programmet för Microsoft Sentinel-utdata i Logstash
Steg 1: Installation
Plugin-programmet för Microsoft Sentinel-utdata är tillgängligt i Logstash-samlingen.
Följ anvisningarna i dokumentet Logstash Working with plugins (Arbeta med plugin-program) för att installera plugin-programmet microsoft-logstash-output-azure-loganalytics.
Om ditt Logstash-system inte har Internetåtkomst följer du anvisningarna i dokumentet Logstash Offline Plugin Management för att förbereda och använda ett offline-plugin-paket. (Detta kräver att du skapar ett annat Logstash-system med Internetåtkomst.)
Steg 2: Konfiguration
Använd informationen i Logstash-strukturen i ett konfigurationsfildokument och lägg till Plugin-programmet för Microsoft Sentinel-utdata i konfigurationen med följande nycklar och värden. (Rätt syntax för konfigurationsfilen visas efter tabellen.)
Fältnamn | Datatyp | beskrivning |
---|---|---|
workspace_id |
sträng | Ange ditt arbetsyte-ID GUID (se Tips). |
workspace_key |
sträng | Ange primärnyckeln för arbetsytans GUID (se Tips). |
custom_log_table_name |
sträng | Ange namnet på tabellen som loggarna ska matas in i. Endast ett tabellnamn per plugin-program för utdata kan konfigureras. Loggtabellen visas i Microsoft Sentinel under Loggar i Tabeller i kategorin Anpassade loggar med ett _CL suffix. |
endpoint |
sträng | Valfritt fält. Som standard är detta Log Analytics-slutpunkten. Använd det här fältet för att ange en alternativ slutpunkt. |
time_generated_field |
sträng | Valfritt fält. Den här egenskapen åsidosätter standardfältet TimeGenerated i Log Analytics. Ange namnet på tidsstämpelfältet i datakällan. Data i fältet måste överensstämma med ISO 8601-formatet (YYYY-MM-DDThh:mm:ssZ ) |
key_names |
matris | Ange en lista över Log Analytics-utdataschemafält. Varje listobjekt ska omges av enkla citattecken och objekt avgränsade med kommatecken, och hela listan omges av hakparenteser. Se exemplet nedan. |
plugin_flush_interval |
Nummer | Valfritt fält. Ange för att definiera det maximala intervallet (i sekunder) mellan meddelandeöverföringar till Log Analytics. Standardinställningen är 5. |
amount_resizing |
boolean | true eller false. Aktivera eller inaktivera den automatiska skalningsmekanismen, som justerar meddelandebuffertens storlek enligt mängden mottagna loggdata. |
max_items |
Nummer | Valfritt fält. Gäller endast om amount_resizing det är inställt på "false". Använd för att ange ett tak för meddelandebuffertstorleken (i poster). Standardvärdet är 2 000. |
azure_resource_id |
sträng | Valfritt fält. Definierar ID för Den Azure-resurs där data finns. Resurs-ID-värdet är särskilt användbart om du använder RBAC för resurskontext för att endast ge åtkomst till specifika data. |
Dricks
- Du hittar arbetsyte-ID:t och primärnyckeln i arbetsyteresursen under Agenthantering.
- Men eftersom autentiseringsuppgifter och annan känslig information som lagras i klartext i konfigurationsfiler inte är i linje med bästa praxis för säkerhet, rekommenderar vi starkt att du använder Logstash-nyckelarkivet för att på ett säkert sätt inkludera ditt arbetsyte-ID och primärnyckel för arbetsytan i konfigurationen. Anvisningar finns i Elastics dokumentation .
Exempelkonfigurationer
Här följer några exempelkonfigurationer som använder några olika alternativ.
En grundläggande konfiguration som använder en filebeat-indatapipa:
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" } }
En grundläggande konfiguration som använder ett tcp-indatarör:
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" } }
En avancerad konfiguration:
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 } }
En mer avancerad konfiguration för att parsa en anpassad tidsstämpel och en JSON-sträng från ostrukturerade textdata och logga en vald uppsättning fält i Log Analytics med den extraherade tidsstämpeln:
# 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'] } }
Kommentar
Besök GitHub-lagringsplatsen för plugin-programmet för utdata om du vill veta mer om dess inre funktioner, konfiguration och prestandainställningar.
Steg 3: Starta om Logstash
Steg 4: Visa inkommande loggar i Microsoft Sentinel
Kontrollera att meddelanden skickas till plugin-programmet för utdata.
Klicka på Loggar på Microsoft Sentinel-navigeringsmenyn. Under rubriken Tabeller expanderar du kategorin Anpassade loggar . Leta upp och klicka på namnet på den tabell som du angav (med ett
_CL
suffix) i konfigurationen.Om du vill se poster i tabellen frågar du tabellen med tabellnamnet som schema.
Övervaka granskningsloggar för plugin-program för utdata
Om du vill övervaka anslutningen och aktiviteten för Plugin-programmet för Microsoft Sentinel-utdata aktiverar du lämplig Logstash-loggfil. Se dokumentet Logstash-kataloglayout för loggfilens plats.
Om du inte ser några data i den här loggfilen genererar och skickar du vissa händelser lokalt (via plugin-programmet för indata och filter) för att kontrollera att plugin-programmet för utdata tar emot data. Microsoft Sentinel stöder endast problem som rör plugin-programmet för utdata.
Nästa steg
I det här dokumentet har du lärt dig hur du använder Logstash för att ansluta externa datakällor till Microsoft Sentinel. Mer information om Microsoft Sentinel finns i följande artiklar: