Collecter les sources de données Syslog avec l’agent Log Analytics

Attention

Cet article fait référence à CentOS, une distribution Linux proche de l’état fin de vie (EOL). Veuillez considérer votre utilisation et votre planification en conséquence.

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é sera déconseillé d’ici août 2024. Passé cette date, Microsoft ne fournira plus de support pour l’agent Log Analytics. Migrez vers l’agent Azure Monitor avant août 2024 pour continuer à ingérer des données.

Notes

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.

Diagram that shows Syslog collection.

Les fonctionnalités suivantes sont prises en charge avec le collecteur Syslog :

  • kern
  • utilisateur
  • mail
  • 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.

Screenshot that shows configuring Syslog.

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ée port 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