[Deprecato] Usare Logstash per trasmettere i log con l'API raccolta dati HTTP (legacy)
Importante
La raccolta di log da molti dispositivi e appliance è ora supportata da Common Event Format (CEF) tramite AMA, syslog tramite AMA o log personalizzati tramite il connettore dati AMA in Microsoft Sentinel. Per altre informazioni, vedere Trovare il connettore dati di Microsoft Sentinel.
Importante
L'inserimento dati tramite il plug-in di output Logstash è attualmente disponibile in anteprima pubblica. Questa funzionalità viene messa a disposizione senza contratto di servizio e non è consigliata per i carichi di lavoro di produzione. Per altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.
Nota
Una versione più recente del plug-in Logstash può inoltrare i log da origini dati esterne in tabelle personalizzate e standard usando l'API basata su DCR. Il nuovo plug-in offre un controllo completo sullo schema di output, inclusa la configurazione dei nomi e dei tipi di colonna.
Usando il plug-in di output di Microsoft Sentinel per il motore di raccolta dati Logstash, è possibile inviare qualsiasi tipo di log desiderato tramite Logstash direttamente all'area di lavoro Log Analytics in Microsoft Sentinel. I log verranno inviati a una tabella personalizzata definita usando il plug-in di output. Questa versione del plug-in usa l'API di raccolta dati HTTP.
Per altre informazioni sull'uso del motore di raccolta dati Logstash, vedere Introduzione a Logstash.
Panoramica
Architettura e sfondo
Il motore Logstash è costituito da tre componenti:
- Plug-in di input: raccolta personalizzata di dati da varie origini.
- Plug-in di filtro: manipolazione e normalizzazione dei dati in base ai criteri specificati.
- Plug-in di output: invio personalizzato dei dati raccolti ed elaborati in varie destinazioni.
Nota
Microsoft supporta solo il plug-in di output Logstash fornito da Microsoft Sentinel descritto qui. La versione corrente di questo plug-in è v1.0.0, rilasciata il 25-08-2020. È possibile aprire un ticket di supporto per eventuali problemi relativi al plug-in di output.
Microsoft non supporta plug-in di output Logstash di terze parti per Microsoft Sentinel o altri plug-in o componenti Logstash di qualsiasi tipo.
Il plug-in di output Logstash di Microsoft Sentinel supporta solo Logstash versioni da 7.0 a 7.17.10, e versioni da 8.0 a 8.9 e 8.11. Se si usa Logstash 8, è consigliabile disabilitare ECS nella pipeline.
Il plug-in di output di Microsoft Sentinel per Logstash invia dati in formato JSON all'area di lavoro Log Analytics usando l'API REST dell'agente di raccolta dati HTTP di Log Analytics. I dati vengono inseriti in log personalizzati.
- Altre informazioni sull'API REST di Log Analytics.
- Altre informazioni sui log personalizzati.
Distribuire il plug-in di output di Microsoft Sentinel in Logstash
Passaggio 1: Installazione
Il plug-in di output di Microsoft Sentinel è disponibile nella raccolta Logstash.
Seguire le istruzioni nel documento Lavorare con i plug-indi Logstash per installare il plug-in microsoft-logstash-output-azure-loganalytics.
Se il sistema Logstash non ha accesso a Internet, seguire le istruzioni nel documento Gestione dei plug-in offline di Logstash per preparare e usare un pacchetto di plug-in offline. (Questa operazione richiederà la creazione di un altro sistema Logstash con accesso a Internet.)
Passaggio 2: Configurazione
Usare le informazioni contenute nel documento Struttura di un file di configurazione di Logstash e aggiungere il plug-in di output di Microsoft Sentinel alla configurazione con le chiavi e i valori seguenti. (La sintassi corretta del file di configurazione viene visualizzata dopo la tabella.)
Nome campo | Tipo di dati | Descrizione |
---|---|---|
workspace_id |
stringa | Immettere il GUID dell'ID dell'area di lavoro (vedere il suggerimento). |
workspace_key |
string | Immettere il GUID della chiave primaria dell'area di lavoro (vedere il suggerimento). |
custom_log_table_name |
string | Impostare il nome della tabella in cui verranno inseriti i log. È possibile configurare un solo nome di tabella per ogni plug-in di output. La tabella di log verrà visualizzata in Microsoft Sentinel in Log, in Tabelle nella categoria Log personalizzati, con un suffisso _CL . |
endpoint |
string | Campo facoltativo. Per impostazione predefinita, si tratta dell'endpoint di Log Analytics. Usare questo campo per impostare un endpoint alternativo. |
time_generated_field |
string | Campo facoltativo. Questa proprietà esegue l'override del campo TimeGenerated predefinito in Log Analytics. Immettere il nome del campo di timestamp nell'origine dati. I dati nel campo devono essere conformi al formato ISO 8601 (YYYY-MM-DDThh:mm:ssZ ) |
key_names |
array | Immettere un elenco di campi dello schema di output di Log Analytics. Ogni voce di elenco deve essere racchiusa tra virgolette singole, gli elementi devono essere separati da virgole e l'intero elenco racchiuso tra parentesi quadre. Vedi l'esempio seguente. |
plugin_flush_interval |
number | Campo facoltativo. Definire l'intervallo massimo, espresso in secondi, tra le trasmissioni dei messaggi a Log Analytics. L'impostazione predefinita è 5. |
amount_resizing |
boolean | True o false. Abilitare o disabilitare il meccanismo di ridimensionamento automatico, che regola le dimensioni del buffer dei messaggi in base al volume dei dati di log ricevuti. |
max_items |
number | Campo facoltativo. Si applica solo se amount_resizing è impostato su "false". Usare per impostare un limite per le dimensioni del buffer dei messaggi (nei record). Il valore predefinito è 2000. |
azure_resource_id |
string | Campo facoltativo. Definisce l'ID della risorsa di Azure in cui si trovano i dati. Il valore dell'ID risorsa è particolarmente utile se si usa il controllo degli accessi in base al ruolo del contesto delle risorse per fornire l'accesso solo a dati specifici. |
Suggerimento
- È possibile trovare l'ID dell'area di lavoro e la chiave primaria nella risorsa dell'area di lavoro, in Gestione agenti.
- Tuttavia, poiché la presenza di credenziali e altre informazioni riservate archiviate nel testo non crittografato nei file di configurazione non è conforme alle procedure consigliate per la sicurezza, è consigliabile usare l'archivio chiavi Logstash per inserire l'ID area di lavoro e la chiave primaria dell'area di lavoro nella configurazione in modo sicuro. Per istruzioni, vedere la documentazione di Elastic.
Configurazioni di esempio
Ecco alcune configurazioni di esempio che usano alcune opzioni diverse.
Configurazione di base che usa una pipe di input 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" } }
Configurazione di base che usa una pipe di input 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" } }
Configurazione avanzata:
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 } }
Una configurazione più avanzata per analizzare un timestamp personalizzato e una stringa JSON da dati di testo non strutturati e registrare un set selezionato di campi in Log Analytics con il timestamp estratto:
# 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'] } }
Nota
Visitare il repository GitHub del plug-in di output per altre informazioni sulle funzioni interne, la configurazione e le impostazioni delle prestazioni.
Passaggio 3: Riavviare Logstash
Passaggio 4: Visualizzare i log in ingresso in Microsoft Sentinel
Verificare che i messaggi vengano inviati al plug-in di output.
Dal menu di spostamento di Microsoft Sentinel, fare clic su Log. Nell'intestazione Tabelle, espandere la categoria Log personalizzati. Trovare e fare clic sul nome della tabella specificata (con un suffisso
_CL
) nella configurazione.Per visualizzare i record nella tabella, eseguire una query sulla tabella usando il nome della tabella come schema.
Monitorare i log di controllo del plug-in di output
Per monitorare la connettività e l'attività del plug-in di output di Microsoft Sentinel, abilitare il file di log Logstash appropriato. Vedere il documento Layout della directory Logstash per il percorso del file di log.
Se non vengono visualizzati dati in questo file di log, generare e inviare alcuni eventi in locale (tramite i plug-in di input e filtro) per assicurarsi che il plug-in di output riceva i dati. Microsoft Sentinel supporterà solo i problemi relativi al plug-in di output.
Passaggi successivi
In questo documento, si è appreso come usare Logstash per connettere origini dati esterne a Microsoft Sentinel. Per altre informazioni su Microsoft Sentinel, vedere gli articoli seguenti:
- Informazioni su come ottenere visibilità sui dati e sulle potenziali minacce.
- Iniziare a rilevare minacce con Microsoft Sentinel.