Collecter les sources de données Syslog avec l’agent Log Analytics
Attention
Cet article fait référence à CentOS, une distribution Linux ayant atteint l’état EOL (fin du service). Veuillez considérer votre utilisation et votre planification en conséquence. Pour plus d’informations, consultez l’aide relative à la fin de vie de CentOS.
Syslog est un protocole de journalisation des événements courant sur Linux. Les applications envoient les messages qui peuvent être stockés sur la machine locale ou remis à un collecteur Syslog. Lorsque l’agent Log Analytics pour Linux est installé, il configure le démon Syslog local pour qu’il transfère des messages à l’agent. L’agent envoie ensuite les messages à Azure Monitor, où un enregistrement correspondant est créé.
Important
L’agent Log Analytics hérité est déconseillé depuis le 31 août 2024. Microsoft ne prendra plus en charge l’agent Log Analytics. Si vous utilisez l’agent Log Analytics pour ingérer des données dans Azure Monitor, migrez maintenant vers l’agent Azure Monitor.
Remarque
Azure Monitor prend en charge la collecte de messages envoyés par rsyslog ou syslog-ng, sachant que rsyslog est le démon par défaut. Le démon syslog par défaut sur la version 5 de Red Hat Enterprise Linux, CentOS et Oracle Linux (sysklog) n’est pas pris pas en charge pour la collecte des événements Syslog. Pour collecter des données Syslog avec cette version de ces distributions, le démon rsyslog doit être installé et configuré pour remplacer sysklog.
Les fonctionnalités suivantes sont prises en charge avec le collecteur Syslog :
- kern
- utilisateur
- daemon
- auth
- syslog
- lpr
- news
- uucp
- cron
- authpriv
- ftp
- local0-local7
Pour toute autre fonctionnalité, configurez une source de données Journaux d'activité personnalisés dans Azure Monitor.
Configurer les messages Syslog
L’agent Log Analytics pour Linux collecte uniquement les événements avec les installations et les niveaux de gravité spécifiés dans sa configuration. Vous pouvez configurer Syslog avec le portail Azure ou en gérant les fichiers de configuration sur vos agents Linux.
Configurer Syslog dans le portail Azure
Configurez Syslog à partir du menu Configuration de l’agent pour l’espace de travail Log Analytics. Cette configuration est remise au fichier de configuration sur chaque agent Linux.
Vous pouvez ajouter une installation en sélectionnant Ajouter une installation. Pour chaque installation, seuls les messages avec les niveaux de gravité sélectionnés seront collectés. Sélectionnez les niveaux de gravité pour l’installation que vous voulez collecter. Vous ne pouvez pas fournir d’autres critères pour filtrer les messages.
Par défaut, toutes les modifications de configuration sont automatiquement transmises à l’ensemble des agents. Si vous voulez configurer Syslog manuellement sur chaque agent Linux, décochez la case Appliquer la configuration ci-dessous à mes machines.
Configurer l’agent Syslog sur Linux
Quand l’agent Log Analytics est installé sur un client Linux, il installe un fichier de configuration Syslog par défaut qui définit l’installation et le niveau de gravité des messages qui sont collectés. Vous pouvez modifier ce fichier pour changer la configuration. Le fichier de configuration est différent selon le démon Syslog installé par le client.
Notes
Si vous modifiez cette configuration Syslog, vous devez redémarrer le démon Syslog pour que les modifications prennent effet.
rsyslog
Le fichier de configuration de rsyslog se trouve dans /etc/rsyslog.d/95-omsagent.conf
. Son contenu par défaut est montré dans l’exemple suivant. Cet exemple collecte les messages Syslog envoyés depuis l’agent local pour toutes les installations avec un niveau Avertissement ou supérieur.
kern.warning @127.0.0.1:25224
user.warning @127.0.0.1:25224
daemon.warning @127.0.0.1:25224
auth.warning @127.0.0.1:25224
syslog.warning @127.0.0.1:25224
uucp.warning @127.0.0.1:25224
authpriv.warning @127.0.0.1:25224
ftp.warning @127.0.0.1:25224
cron.warning @127.0.0.1:25224
local0.warning @127.0.0.1:25224
local1.warning @127.0.0.1:25224
local2.warning @127.0.0.1:25224
local3.warning @127.0.0.1:25224
local4.warning @127.0.0.1:25224
local5.warning @127.0.0.1:25224
local6.warning @127.0.0.1:25224
local7.warning @127.0.0.1:25224
Vous pouvez supprimer une installation en supprimant sa section du fichier de configuration. Vous pouvez limiter les niveaux de gravité qui sont collectés pour une installation donnée en modifiant l’entrée de cette installation. Par exemple, pour limiter l’installation de l’utilisateur aux messages avec un niveau de gravité Erreur ou supérieur, il vous faudrait modifier cette ligne du fichier de configuration comme dans l’exemple suivant :
user.error @127.0.0.1:25224
syslog-ng
Le fichier de configuration pour syslog-ng se trouve dans /etc/syslog-ng/syslog-ng.conf
. Son contenu par défaut est montré dans cet exemple. Cet exemple collecte les messages Syslog envoyés depuis l’agent local pour toutes les installations et tous les niveaux de gravité.
#
# Warnings (except iptables) in one file:
#
destination warn { file("/var/log/warn" fsync(yes)); };
log { source(src); filter(f_warn); destination(warn); };
#OMS_Destination
destination d_oms { udp("127.0.0.1" port(25224)); };
#OMS_facility = auth
filter f_auth_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(auth); };
log { source(src); filter(f_auth_oms); destination(d_oms); };
#OMS_facility = authpriv
filter f_authpriv_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(authpriv); };
log { source(src); filter(f_authpriv_oms); destination(d_oms); };
#OMS_facility = cron
filter f_cron_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(cron); };
log { source(src); filter(f_cron_oms); destination(d_oms); };
#OMS_facility = daemon
filter f_daemon_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(daemon); };
log { source(src); filter(f_daemon_oms); destination(d_oms); };
#OMS_facility = kern
filter f_kern_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(kern); };
log { source(src); filter(f_kern_oms); destination(d_oms); };
#OMS_facility = local0
filter f_local0_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(local0); };
log { source(src); filter(f_local0_oms); destination(d_oms); };
#OMS_facility = local1
filter f_local1_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(local1); };
log { source(src); filter(f_local1_oms); destination(d_oms); };
#OMS_facility = mail
filter f_mail_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(mail); };
log { source(src); filter(f_mail_oms); destination(d_oms); };
#OMS_facility = syslog
filter f_syslog_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(syslog); };
log { source(src); filter(f_syslog_oms); destination(d_oms); };
#OMS_facility = user
filter f_user_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(user); };
log { source(src); filter(f_user_oms); destination(d_oms); };
Vous pouvez supprimer une installation en supprimant sa section du fichier de configuration. Vous pouvez limiter les niveaux de gravité qui sont collectés pour une installation donnée en les supprimant de sa liste. Par exemple, pour limiter l’installation de l’utilisateur aux alertes de messages de niveau Critique, il vous faudrait modifier cette section du fichier de configuration comme dans l’exemple suivant :
#OMS_facility = user
filter f_user_oms { level(alert,crit) and facility(user); };
log { source(src); filter(f_user_oms); destination(d_oms); };
Collecter des données depuis d’autres ports Syslog
L’agent Log Analytics écoute les messages Syslog sur le port 25224 du client local. Quand l’agent est installé, une configuration Syslog par défaut est appliquée, qui se trouve à l’emplacement suivant :
- Rsyslog :
/etc/rsyslog.d/95-omsagent.conf
- Syslog-ng :
/etc/syslog-ng/syslog-ng.conf
Vous pouvez modifier le numéro de port en créant deux fichiers de configuration : un fichier de configuration FluentD et un fichier rsyslog-ou-syslog-ng selon le démon Syslog que vous avez installé.
Le fichier de configuration FluentD doit être un nouveau fichier situé dans
/etc/opt/microsoft/omsagent/conf/omsagent.d
et vous devez remplacer la valeur de l’entréeport
par votre numéro de port personnalisé.<source> type syslog port %SYSLOG_PORT% bind 127.0.0.1 protocol_type udp tag oms.syslog </source> <filter oms.syslog.**> type filter_syslog
Pour rsyslog, vous devez créer un fichier de configuration situé dans
/etc/rsyslog.d/
et remplacer la valeur de%SYSLOG_PORT%
par votre numéro de port personnalisé.Notes
Si vous modifiez cette valeur dans le fichier de configuration
95-omsagent.conf
, elle est remplacée quand l’agent applique une configuration par défaut.# OMS Syslog collection for workspace %WORKSPACE_ID% kern.warning @127.0.0.1:%SYSLOG_PORT% user.warning @127.0.0.1:%SYSLOG_PORT% daemon.warning @127.0.0.1:%SYSLOG_PORT% auth.warning @127.0.0.1:%SYSLOG_PORT%
La configuration syslog-ng doit être modifiée en copiant l’exemple de configuration montré ci-dessous et en ajoutant les paramètres modifiés personnalisés à la fin du fichier de configuration
syslog-ng.conf
qui se trouve dans/etc/syslog-ng/
. N’utilisez pas l’étiquette par défaut%WORKSPACE_ID%_oms
ou%WORKSPACE_ID_OMS
. Définissez une étiquette personnalisée pour distinguer plus facilement vos modifications.Notes
Si vous modifiez les valeurs par défaut dans le fichier de configuration, elles sont remplacées quand l’agent applique une configuration par défaut.
filter f_custom_filter { level(warning) and facility(auth; }; destination d_custom_dest { udp("127.0.0.1" port(%SYSLOG_PORT%)); }; log { source(s_src); filter(f_custom_filter); destination(d_custom_dest); };
Après avoir effectué les modifications, redémarrez Syslog et le service de l’agent Log Analytics pour garantir que les modifications de configuration prennent effet.
Propriétés d’enregistrement Syslog
Les enregistrements Syslog sont de type Syslog et ont les propriétés décrites dans le tableau suivant.
Propriété | Description |
---|---|
Computer | Ordinateur sur lequel l’événement a été collecté. |
Facility | Définit la partie du système qui a généré le message. |
HostIP | Adresse IP du système qui envoie le message. |
HostName | Nom du système qui envoie le message. |
SeverityLevel | Niveau de gravité de l’événement. |
SyslogMessage | Texte du message. |
ProcessID | ID du processus qui a généré le message. |
EventTime | Date et heure de génération de l’événement. |
Requêtes de journaux avec des enregistrements Syslog
Le tableau suivant fournit plusieurs exemples de requêtes de journaux qui extraient des enregistrements Syslog.
Requête | Description |
---|---|
syslog | Tous les journaux Syslog |
Syslog | where SeverityLevel == "error" | Tous les enregistrements Syslog avec le niveau de gravité Erreur |
Syslog | summarize AggregatedValue = count() by Computer | Nombre d’enregistrements Syslog par ordinateur |
Syslog | summarize AggregatedValue = count() by Facility | Nombre d’enregistrements Syslog par installation |
Étapes suivantes
- Découvrez les requêtes dans les journaux pour analyser les données collectées à partir de sources de données et de solutions.
- Utilisez des champs personnalisés pour analyser les données des enregistrements Syslog dans des champs individuels.
- Configurez les agents Linux pour qu’ils collectent d’autres types de données.