Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article fournit des conseils de dépannage pour la collecte de données CEF (Common Event Format) et Syslog à l’aide de l’agent AZURE Monitor (AMA) dans Microsoft Sentinel. Utilisez ce guide pour diagnostiquer et résoudre les problèmes d’ingestion avec vos machines de transfert de journaux. Les commandes et configurations doivent être exécutées sur les ordinateurs redirecteurs de journaux où AMA et RSyslog/Syslog-ng sont installés.
Avant de commencer la résolution des problèmes, familiarisez-vous avec les articles suivants :
- Ingérer des messages syslog et CEF pour Microsoft Sentinel avec l’agent Azure Monitor
- CEF via le connecteur de données AMA - Configurer un Appliance ou un appareil spécifique
- Vue d’ensemble de l’agent Azure Monitor
Vue d’ensemble de l’architecture
Le diagramme suivant illustre le flux de données entre les sources de journaux et les espaces de travail Microsoft Sentinel/Log Analytics via RSyslog et l’agent Azure Monitor.
Composants clés :
- RSyslog/Syslog-ng : reçoit les journaux sur le port 514 et les transfère à AMA
- Agent Azure Monitor : traite les journaux conformément aux règles de collecte de données (DCR)
- Règle de collecte de données : définit les journaux à collecter et où les envoyer
Étapes de vérification initiales
Vérifier que les journaux sont reçus
L’affichage des journaux peut prendre jusqu’à 20 minutes dans Microsoft Sentinel après la configuration.
Exécutez tcpdump pour vérifier que les journaux arrivent au redirecteur :
sudo tcpdump -i any port 514 -A -vvVérifiez que votre source de journal est configurée pour envoyer des messages à l’adresse IP du redirecteur approprié.
Recherchez les composants d’infrastructure susceptibles d’affecter la connectivité :
- Pare-feu
- Équilibreurs de charge
- Groupes de sécurité réseau
Vérifier Azure status d’extension de l’agent Monitor
- Dans le Portail Azure, accédez à votre machine virtuelle de redirecteur de journaux.
- Sélectionnez Extensions + applications.
- Sélectionnez l’extension AzureMonitorLinuxAgent .
- Vérifiez que l’état indique Que l’approvisionnement a réussi.
Vérifier la version de l’agent
- Dans le panneau extension AzureMonitorLinuxAgent, case activée le champ Version.
- Vérifiez que la version est l’une des 2 à 3 versions les plus récentes. Consultez les détails de la version AMA pour connaître les dernières versions.
Remarque
Le déploiement des nouvelles versions peut prendre jusqu’à 5 semaines après la publication initiale.
Résolution des problèmes au niveau de l’agent
Assurez-vous que l’agent et les services RSyslog sont en cours d’exécution.
sudo systemctl status azuremonitoragent
sudo systemctl status rsyslog
sudo systemctl status syslog-ng.service # If using Syslog-ng
Vérifier la configuration de RSyslog
La configuration RSyslog se compose des /etc/rsyslog.conf fichiers et dans /etc/rsyslog.d/.
Vérifiez la configuration du port :
grep -E 'imudp|imtcp' /etc/rsyslog.confSortie attendue :
module(load="imudp") input(type="imudp" port="514") module(load="imtcp") input(type="imtcp" port="514")Vérifiez que la configuration de transfert AMA existe :
cat /etc/rsyslog.d/10-azuremonitoragent-omfwd.confLe fichier doit commencer par :
# Azure Monitor Agent configuration: forward logs to azuremonitoragent
Vérifier l’status de port
Vérifiez que les ports requis sont à l’écoute :
sudo ss -lnp | grep -E "28330|514"
Sortie attendue :
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))
Cela confirme les points suivants :
- RSyslog écoute sur le port 514 (TCP et UDP)
- MDSD (composant AMA) écoute sur le port 28330 (TCP)
Vérifier la configuration de la règle de collecte de données
Vérifiez si la DCR est correctement configurée sur l’agent.
Pour les journaux CEF :
sudo grep -i -r "SECURITY_CEF_BLOB" /etc/opt/microsoft/azuremonitoragent/config-cache/configchunks
Pour les journaux Cisco ASA :
sudo grep -i -r "SECURITY_CISCO_ASA_BLOB" /etc/opt/microsoft/azuremonitoragent/config-cache/configchunks
La sortie doit afficher une chaîne JSON contenant la configuration DCR.
Passer en revue les règles de pare-feu
Vérifiez que les règles de pare-feu autorisent la communication entre :
- Source du journal et RSyslog (port 514)
- RSyslog et AMA (port 28330)
- Points de terminaison AMA et Azure
Configuration de la règle de collecte de données
Activer toutes les fonctionnalités de résolution des problèmes
Pour la résolution initiale des problèmes :
- Dans le Portail Azure, accédez à votre règle de collecte de données.
- Activez toutes les fonctionnalités syslog.
- Sélectionnez tous les niveaux de journalisation.
- Si disponible, activez la collecte des messages sans aucune fonctionnalité ni gravité.
Pour plus d’informations, consultez Sélectionner des installations et des gravités.
Validation cef (Common Event Format)
Conditions requises pour le format CEF
CEF utilise Syslog comme mécanisme de transport avec cette structure :
<Priority>Timestamp Hostname CEF:Version|Device Vendor|Device Product|Device Version|Device Event Class ID|Name|Severity|[Extension]
Exemple :
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
Problèmes courants de mise en forme cef
Format d’en-tête incorrect
- Vérifiez que la version du CEF est présente :
CEF:0| - Tous les champs d’en-tête doivent être présents et délimités par des caractères de barre verticale (|)
Échappement de caractères incorrect
- Les caractères de canal (|) dans les valeurs d’en-tête doivent être placés dans une séquence d’échappement :
\| - Les barres obliques inverses () doivent être placées dans une séquence d’échappement :
\\ - Les signes égaux (=) dans les extensions doivent être placés dans une séquence d’échappement :
\=
Valeurs manquantes ou non mappées
- Si une valeur ne peut pas être mappée à un champ standard, elle est stockée dans la
AdditionalExtensionscolonne - Consultez Mappage de champs CEF et CommonSecurityLog pour les mappages de champs
Pour obtenir la spécification CEF complète, recherchez la documentation « Implémentation d’ArcSight Common Event Format (CEF) ».
Dépannage avancé
Activer le suivi des diagnostics
Avertissement
Activez les indicateurs de trace uniquement pour les sessions de résolution des problèmes. Les indicateurs de trace génèrent une journalisation complète qui peut remplir rapidement l’espace disque.
Modifiez le fichier de configuration AMA :
sudo vim /etc/default/azuremonitoragentAjoutez des indicateurs de trace à la ligne 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"Redémarrez l’agent :
sudo systemctl restart azuremonitoragentReproduisez le problème et attendez quelques minutes.
Passez en revue les informations de débogage dans
/var/opt/microsoft/azuremonitoragent/log/mdsd.info.Supprimez l’indicateur de trace et redémarrez l’agent après la résolution des problèmes.
Surveiller le traitement des journaux en temps réel
Affichez les journaux entrants à mesure qu’ils sont traités :
tail -f /var/opt/microsoft/azuremonitoragent/log/mdsd.info
Filtrez les types de journaux spécifiques :
sudo tail -f /var/opt/microsoft/azuremonitoragent/log/mdsd.* | grep -a "CEF"
Passez en revue les journaux d’activité d’installation spécifiques :
grep local0.info /var/opt/microsoft/azuremonitoragent/log/mdsd.info
Vérifier que le traitement des journaux a réussi
Lorsque les indicateurs de trace sont activés, vous pouvez vérifier que les journaux sont traités correctement en examinant la sortie de débogage.
Exemple d’ingestion de journal ASA
Pour les journaux Cisco ASA, le traitement réussi s’affiche dans les journaux comme suit :
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
Indicateurs clés d’un traitement réussi :
- L’événement est reconnu comme un événement CiscoASA
- Le journal est chargé dans ODS (Operations Data Service)
- Un ID de requête est généré pour le suivi
- La charge utile contient des données JSON correctement mises en forme
Exemple d’ingestion des journaux CEF
Pour les journaux CEF, le traitement réussi s’affiche comme suit :
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
Indicateurs clés d’un traitement CEF réussi :
- Le type de données est SECURITY_CEF_BLOB
- La demande de chargement inclut un point de terminaison valide
- La structure de message CEF est conservée dans la charge utile
- Les métriques de compression indiquent que les données sont optimisées pour le transfert
Importante
N’oubliez pas de désactiver les indicateurs de trace une fois votre investigation terminée pour éviter une utilisation excessive du disque.
Collecter des informations de diagnostic
Avant d’ouvrir un cas de support, collectez les informations suivantes :
Exécuter l’utilitaire de résolution des problèmes AMA
Le script peut être exécuté avec des indicateurs spécifiques pour différents types de journaux.
-
--cef: pour les journaux de format d’événement commun -
--asa: Pour les journaux Cisco ASA -
--ftd: Pour les journaux Cisco Firepower Threat Defense
La sortie est enregistrée dans /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]