Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo fornisce indicazioni per la risoluzione dei problemi relativi alla raccolta di dati CEF (Common Event Format) e Syslog tramite l'agente di monitoraggio Azure (AMA) in Microsoft Sentinel. Usare questa guida per diagnosticare e risolvere i problemi di inserimento con i computer di inoltro del log. I comandi e le configurazioni devono essere eseguiti nei computer di inoltro del log in cui sono installati AMA e RSyslog/Syslog-ng.
Prima di iniziare la risoluzione dei problemi, acquisire familiarità con gli articoli seguenti:
- Inserire messaggi syslog e CEF da Microsoft Sentinel con l'agente di monitoraggio Azure
- CEF tramite connettore dati AMA - Configurare un'appliance o un dispositivo specifico
- Panoramica dell'agente di monitoraggio Azure
Panoramica dell'architettura
Il diagramma seguente illustra il flusso di dati dalle origini di log alle aree di lavoro Microsoft Sentinel/log analytics tramite RSyslog e l'agente di monitoraggio Azure.
Componenti chiave:
- RSyslog/Syslog-ng: riceve i log sulla porta 514 e li inoltra ad AMA
- agente di monitoraggio Azure: elabora i log in base alle regole di raccolta dati (DCR)
- Regola raccolta dati: definisce quali log raccogliere e dove inviarli
Passaggi di verifica iniziali
Verificare che i log vengano ricevuti
La visualizzazione dei log in Microsoft Sentinel dopo la configurazione può richiedere fino a 20 minuti.
Eseguire tcpdump per verificare che i log arrivino al server d'inoltro:
sudo tcpdump -i any port 514 -A -vvVerificare che l'origine del log sia configurata per inviare messaggi all'indirizzo IP del server d'inoltro corretto.
Verificare la presenza di componenti dell'infrastruttura che potrebbero influire sulla connettività:
- Firewall
- Servizi di bilanciamento del carico
- Gruppi di sicurezza di rete
Controllare Azure stato dell'estensione dell'agente di monitoraggio
- Nella portale di Azure passare alla macchina virtuale del server d'inoltro di log.
- Selezionare Estensioni e applicazioni.
- Selezionare l'estensione AzureMonitorLinuxAgent .
- Verificare che Stato mostri il provisioning completato.
Verificare la versione dell'agente
- Nel pannello dell'estensione AzureMonitorLinuxAgent controllare il campo Versione .
- Verificare che la versione sia una delle versioni 2-3 più recenti. Per le versioni più recenti, vedere i dettagli della versione AMA .
Nota
L'implementazione delle nuove versioni può richiedere fino a 5 settimane dopo la versione iniziale.
Risoluzione dei problemi a livello di agente
Assicurarsi che l'agente e i servizi RSyslog siano in esecuzione.
sudo systemctl status azuremonitoragent
sudo systemctl status rsyslog
sudo systemctl status syslog-ng.service # If using Syslog-ng
Verificare la configurazione di RSyslog
La configurazione di /etc/rsyslog.conf RSyslog è costituita da file e in /etc/rsyslog.d/.
Verificare la configurazione della porta:
grep -E 'imudp|imtcp' /etc/rsyslog.confOutput previsto:
module(load="imudp") input(type="imudp" port="514") module(load="imtcp") input(type="imtcp" port="514")Verificare che la configurazione di inoltro AMA esista:
cat /etc/rsyslog.d/10-azuremonitoragent-omfwd.confIl file deve iniziare con:
# Azure Monitor Agent configuration: forward logs to azuremonitoragent
Verificare lo stato della porta
Verificare che le porte necessarie siano in ascolto:
sudo ss -lnp | grep -E "28330|514"
Output previsto:
udp UNCONN 0 0 0.0.0.0:514 0.0.0.0:* users:(("rsyslogd",pid=12289,fd=5))
tcp LISTEN 0 10 127.0.0.1:28330 0.0.0.0:* users:(("mdsd",pid=1424,fd=1363))
tcp LISTEN 0 25 0.0.0.0:514 0.0.0.0:* users:(("rsyslogd",pid=12289,fd=7))
Ciò conferma quanto segue:
- RSyslog è in ascolto sulla porta 514 (TCP e UDP)
- MDSD (componente AMA) è in ascolto sulla porta 28330 (TCP)
Verificare la configurazione della regola di raccolta dati
Controllare se il DCR è configurato correttamente nell'agente.
Per i log CEF:
sudo grep -i -r "SECURITY_CEF_BLOB" /etc/opt/microsoft/azuremonitoragent/config-cache/configchunks
Per i log di Cisco ASA:
sudo grep -i -r "SECURITY_CISCO_ASA_BLOB" /etc/opt/microsoft/azuremonitoragent/config-cache/configchunks
L'output deve mostrare una stringa JSON contenente la configurazione DCR.
Esaminare le regole del firewall
Assicurarsi che le regole del firewall consentano la comunicazione tra:
- Origine log e RSyslog (porta 514)
- RSyslog e AMA (porta 28330)
- AMA e endpoint Azure
Configurazione delle regole di raccolta dati
Abilitare tutte le funzionalità per la risoluzione dei problemi
Per la risoluzione dei problemi iniziale:
- Nella portale di Azure passare alla regola di raccolta dati.
- Abilitare tutte le funzionalità syslog.
- Selezionare tutti i livelli di log.
- Se disponibile, abilitare la raccolta di messaggi senza funzionalità o gravità.
Per altre informazioni, vedere Selezionare le strutture e le gravità.
Convalida CEF (Common Event Format)
Requisiti di formato CEF
CEF usa Syslog come meccanismo di trasporto con questa struttura:
<Priority>Timestamp Hostname CEF:Version|Device Vendor|Device Product|Device Version|Device Event Class ID|Name|Severity|[Extension]
Esempio:
Jan 18 11:07:53 host CEF:0|Vendor|Product|1.0|100|EventName|5|src=10.0.0.1 dst=10.0.0.2
Problemi comuni di formattazione CEF
Formato di intestazione non corretto
- Verificare che sia presente la versione CEF:
CEF:0| - Tutti i campi di intestazione devono essere presenti e delimitati da caratteri pipe (|)
Escape di caratteri non corretto
- I caratteri pipe (|) nei valori di intestazione devono essere preceduti da caratteri di escape:
\| - Le barre rovesciate () devono essere precedute da caratteri di escape:
\\ - I segni di uguale (=) nelle estensioni devono essere preceduti da caratteri di escape:
\=
Valori mancanti o non mappati
- Se non è possibile eseguire il mapping di un valore a un campo standard, viene archiviato nella
AdditionalExtensionscolonna - Vedere Mapping dei campi CEF e CommonSecurityLog per i mapping dei campi
Per la specifica CEF completa, cercare la documentazione relativa all'implementazione del formato cef (Common Event Format) di ArcSight.
Risoluzione avanzata dei problemi
Abilitare la traccia diagnostica
Avviso
Abilitare i flag di traccia solo per le sessioni di risoluzione dei problemi. I flag di traccia generano una registrazione completa che può riempire rapidamente lo spazio su disco.
Modificare il file di configurazione ama:
sudo vim /etc/default/azuremonitoragentAggiungere flag di traccia alla riga MDSD_OPTIONS:
export MDSD_OPTIONS="-A -c /etc/opt/microsoft/azuremonitoragent/mdsd.xml -d -r $MDSD_ROLE_PREFIX -S $MDSD_SPOOL_DIRECTORY/eh -L $MDSD_SPOOL_DIRECTORY/events -e $MDSD_LOG_DIR/mdsd.err -w $MDSD_LOG_DIR/mdsd.warn -o $MDSD_LOG_DIR/mdsd.info -T 0x2002"Riavviare l'agente:
sudo systemctl restart azuremonitoragentRiprodurre il problema e attendere alcuni minuti.
Esaminare le informazioni di debug in
/var/opt/microsoft/azuremonitoragent/log/mdsd.info.Rimuovere il flag di traccia e riavviare l'agente dopo la risoluzione dei problemi.
Monitorare l'elaborazione dei log in tempo reale
Visualizzare i log in ingresso durante l'elaborazione:
tail -f /var/opt/microsoft/azuremonitoragent/log/mdsd.info
Filtrare per tipi di log specifici:
sudo tail -f /var/opt/microsoft/azuremonitoragent/log/mdsd.* | grep -a "CEF"
Esaminare i log di funzionalità specifici:
grep local0.info /var/opt/microsoft/azuremonitoragent/log/mdsd.info
Verificare che l'elaborazione dei log sia riuscita
Quando i flag di traccia sono abilitati, è possibile verificare che i log vengano elaborati correttamente esaminando l'output di debug.
Esempio di inserimento del log ASA
Per i log di Cisco ASA, l'elaborazione corretta viene visualizzata nei log come segue:
2022-01-18T22:00:14.8650520Z: virtual bool Pipe::SyslogCiscoASAPipeStage::PreProcess(std::shared_ptr<CanonicalEntity>) (.../mdsd/PipeStages.cc +604) [PipeStage] Processing CiscoASA event '%ASA-1-105003: (Primary) Monitoring on 123'
2022-01-18T22:00:14.8651330Z: virtual void ODSUploader::execute(const MdsTime&) (.../mdsd/ODSUploader.cc +325) Uploading 1 SECURITY_CISCO_ASA_BLOB rows to ODS.
2022-01-18T22:00:14.8653090Z: int ODSUploader::UploadFixedTypeLogs(const string&, const string&, const std::function<void(bool, long unsigned int, int, long unsigned int)>&, int, uint64_t) (.../mdsd/ODSUploader.cc +691) Uploading to ODS with request 3333-44dd-555555eeeeee Host https://00001111-aaaa-2222-bbbb-3333cccc4444.ods.opinsights.azure.com for datatype SECURITY_CISCO_ASA_BLOB. Payload: {"DataType":"SECURITY_CISCO_ASA_BLOB","IPName":"SecurityInsights","ManagementGroupId":"00000000-0000-0000-0000-000000000002","sourceHealthServiceId":"2c2c2c2c-3333-dddd-4444-5e5e5e5e5e5e","type":"JsonData","DataItems":[{"Facility":"local0","SeverityNumber":"6","Timestamp":"2022-01-14T23:28:49.775619Z","HostIP":"127.0.0.1","Message":" (Primary) Monitoring on 123","ProcessId":"","Severity":"info","Host":"localhost","ident":"%ASA-1-105003"}]}. Uncompressed size: 443. Request size: 322
Indicatori chiave dell'elaborazione riuscita:
- L'evento è riconosciuto come evento CiscoASA
- Il log viene caricato in ODS (Operations Data Service)
- Viene generato un ID richiesta per il rilevamento
- Il payload contiene dati JSON formattati correttamente
Esempio di inserimento del log CEF
Per i log CEF, l'elaborazione completata viene visualizzata come segue:
2022-01-14T23:09:13.9087860Z: int ODSUploader::UploadFixedTypeLogs(const string&, const string&, const std::function<void(bool, long unsigned int, int, long unsigned int)>&, int, uint64_t) (.../mdsd/ODSUploader.cc +691) Uploading to ODS with request 3333-44dd-555555eeeeee Host https://00001111-aaaa-2222-bbbb-3333cccc4444.ods.opinsights.azure.com for datatype SECURITY_CEF_BLOB. Payload: {"DataType":"SECURITY_CEF_BLOB","IPName":"SecurityInsights","ManagementGroupId":"00000000-0000-0000-0000-000000000002","sourceHealthServiceId":"2c2c2c2c-3333-dddd-4444-5e5e5e5e5e5e","type":"JsonData","DataItems":[{"Facility":"local0","SeverityNumber":"6","Timestamp":"2022-01-14T23:08:49.731862Z","HostIP":"127.0.0.1","Message":"0|device1|PAN-OS|8.0.0|general|SYSTEM|3|rt=Nov 04 2018 07:15:46 GMTcs3Label=Virtual","ProcessId":"","Severity":"info","Host":"localhost","ident":"CEF"}]}. Uncompressed size: 482. Request size: 350
Indicatori chiave dell'elaborazione CEF riuscita:
- Il tipo di dati è SECURITY_CEF_BLOB
- La richiesta di caricamento include un endpoint valido
- La struttura dei messaggi CEF viene mantenuta nel payload
- Le metriche di compressione mostrano che i dati sono ottimizzati per il trasferimento
Importante
Ricordarsi di disabilitare i flag di traccia dopo aver completato l'indagine per evitare un utilizzo eccessivo del disco.
Raccogliere informazioni di diagnostica
Prima di aprire un caso di supporto, raccogliere le informazioni seguenti:
Eseguire lo strumento di risoluzione dei problemi di AMA
Lo script può essere eseguito con flag specifici per tipi di log diversi.
-
--cef: per i log common event format -
--asa: per i log di Cisco ASA -
--ftd: per i log di Cisco Firepower Threat Defense
L'output viene salvato in /tmp/troubleshooter_output_file.log.
sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py && sudo python3 Sentinel_AMA_troubleshoot.py [--cef | --asa | --ftd]