Outils pour utilisateurs

Outils du site


tech:log_syslog_rsyslog

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
tech:log_syslog_rsyslog [2025/03/24 15:06] – créée - modification externe 127.0.0.1tech:log_syslog_rsyslog [2026/06/07 19:12] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +<!DOCTYPE markdown>
 +{{tag>Brouillon Log Syslog}}
 +
 +# Notes Rsyslog
 +
 +Voir :
 +* https://access.redhat.com/documentation/fr-fr/red_hat_enterprise_linux/7/html/system_administrators_guide/s1-basic_configuration_of_rsyslog
 +* https://access.redhat.com/documentation/fr-fr/red_hat_enterprise_linux/7/html/system_administrators_guide/s1-configuring_rsyslog_on_a_logging_server
 +* https://wiki.debian.org/fr/Rsyslog
 +* https://wiki.archlinux.org/index.php/Rsyslog
 +* https://www.loggly.com/use-cases/rsyslog-manual-configuration-and-troubleshooting/
 +* https://selivan.github.io/2017/02/07/rsyslog-log-forward-save-filename-handle-multi-line-failover.html
 +
 +Voir aussi :
 +* Syslog-ng
 +* NXLog
 +* Snare
 +* Graylog2
 +
 +
 +
 +
 +## Généralités
 +
 +Voir : 
 +* https://fr.wikipedia.org/wiki/Syslog
 +* https://docs.fedoraproject.org/en-US/Fedora/23/html/System_Administrators_Guide/s1-basic_configuration_of_rsyslog.html
 +* https://www.the-art-of-web.com/system/rsyslog-config/
 +
 +Exemple de fichier de conf :
 +* https://github.com/openstack/swift/blob/master/etc/swift-rsyslog.conf-sample
 +
 +Vérifier la syntax du fichier de conf
 +~~~bash
 +rsyslogd -N1
 +~~~
 +
 +Supprimer certaines classes de messages
 +~~~
 +*.=debug stop
 +*.=info stop
 +*.=notice stop
 +#*.=warn stop
 +#*.=err stop
 +~~~
 +
 +Supprimer des messages
 +voir https://linux.die.net/man/5/rsyslog.conf
 +~~~
 +# discards everything
 +#*.* ~
 +*.* stop
 +~~~
 +
 +`/etc/rsyslog.conf`
 +~~~
 +$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
 +
 +$SystemLogRateLimitInterval 0
 +$SystemLogRateLimitBurst 0
 +~~~
 +
 +
 +`/etc/default/rsyslog`
 +~~~bash
 +# Options for rsyslogd
 +# -x disables DNS lookups for remote messages
 +# See rsyslogd(8) for more details
 +#RSYSLOGD_OPTIONS=""
 +RSYSLOGD_OPTIONS="-x"
 +~~~
 +
 +
 +## Conf client / serveur
 +
 +Voir : https://www.linuxtricks.fr/wiki/rsyslog-centralisation-des-logs-sous-linux
 +
 +Il est possible d'utiliser UDP, TCP, TLS, RELP https://gist.github.com/drmalex07/bb178d61f800488446d22de4301160f1
 +
 +
 +### Conf serveur
 +
 +~~~bash
 +apt-get install rsyslog rsyslog-relp
 +~~~
 +
 +`/etc/default/rsyslog`
 +~~~python
 +module(load="imtcp")
 +#input(type="imptcp" port="1514" address="127.0.0.1")
 +input(type="imtcp" port="1514")
 +~~~
 +
 +~~~bash
 +iptables -A INPUT -i ens2 -s 51.91.254.172 -p tcp --dport 1514 -j ACCEPT
 +iptables -A INPUT -i ens2 -p tcp --dport 1514 -j REJECT
 +~~~
 +
 +Voir **`$AllowedSender`**
 +
 +~~~bash
 +system restart rsyslog
 +~~~
 +
 +Par défaut les logs arriverons ici :
 +/var/log/syslog
 +
 +Pour changer le fichier de destination
 +
 +`/etc/rsyslog.d/45-rsyslog-server.conf`
 +~~~
 +$template syslog,"/var/log/clients/%fromhost%/syslog.log"
 +*.* ?syslog
 +
 +# Plus de log dans /var/log/syslog ni ailleurs
 +& stop
 +~~~
 +
 +
 +### Conf client
 +
 +`/etc/rsyslog.d/20-pushlog.conf`
 +~~~
 +$ActionQueueType LinkedList # Exécuter le traitement de façon asynchrone.
 +$ActionQueueFileName srvrfwd1 # Préfixe de nom unique pour les fichiers spool. Active également le mode disque.
 +$ActionQueueMaxDiskSpace 1g # Limite d'espace de 1 Go.
 +$ActionQueueSaveOnShutdown on # Enregistrer les données sur le disque si Rsyslog est arrêté.
 +$ActionResumeRetryCount -1 # Tentatives infinies en cas d'échec de connexion avec l'hôte.
 +# jouter les lignes suivantes dans la section RULES :
 +# Envoyer tous les messages sur le serveur de journalisation distant avec la commande suivante :
 +
 +# Les @@ doivent figurer dans la ligne de commande, le fait qu'il y en ai deux indique que les échanges se feront en TCP.
 +*.* @@192.168.1.10:1514
 +~~~
 +
 +Test
 +~~~bash
 +logger -s "TEST plop"
 +~~~
 +
 +
 +## Les filtres
 +
 +Voir : 
 +* https://docs.fedoraproject.org/en-US/Fedora/23/html/System_Administrators_Guide/s1-basic_configuration_of_rsyslog.html
 +
 +
 +3 types de filtres :
 +* Facility/Priority-based filters
 +* Property-based filters
 +* Expression-based filters
 +
 +
 +### Facility/Priority-based filters
 +
 +### Property-based filters
 +
 +~~~
 +:msg, contains, "123: Message for bucket 123" -/var/log/myapp/123.log
 +~~~
 +
 +`/etc/rsyslog.d/20-ufw.conf`
 +~~~
 +# Log kernel generated UFW log messages to file
 +:msg,contains,"[UFW " /var/log/ufw.log
 +
 +# Uncomment the following to stop logging anything that matches the last rule.
 +# Doing this will stop logging kernel generated UFW log messages to the file
 +# normally containing kern.* messages (eg, /var/log/kern.log)
 +#& stop
 +~~~
 +### Expression-based filters
 +
 +
 +## Conf input
 +
 +Voir 
 +* https://www.rsyslog.com/using-the-text-file-input-module/
 +* https://rsyslog-doc.readthedocs.io/en/latest/configuration/modules/imfile.html
 +* https://stackoverflow.com/questions/31426373/rsyslogs-new-configuration-format-for-input-files
 +
 +# Old
 +
 +## Serveur rsyslog distant
 +
 +Voir http://www.it-connect.fr/centralisez-vos-logs-avec-rsyslog/
 +
 +Voir aussi :
 +* journald
 +* imjournal
 +
 +~~~bash
 +apt-get install rsyslog
 +~~~
 +
 +ou
 +
 +~~~bash
 +yum install rsyslog
 +~~~
 +
 +~~~bash
 +netstat -taupen | grep 514
 +~~~
 +
 +Aucun processus n'écoute sur le port UDP 514.
 +
 +Utilisation du port UDP 514. Il suffit de dé-commenter ces lignes : 
 +
 +`/etc/rsyslog.conf`
 +~~~
 +# UDP
 +$ModLoad imudp  
 +$UDPServerRun 514
 +
 +# TCP
 +#$ModLoad imtcp
 +#$InputTCPServerRun 514
 +~~~
 +
 +~~~bash
 +systemctl restart rsyslog
 +netstat -taupen | grep 514
 +~~~
 +
 +~~~
 +udp        0      0 0.0.0.0:514             0.0.0.0:                                   199126      5041/rsyslogd
 +udp6            0 :::514                  :::*                                0          199127      5041/rsyslogd
 +~~~
 +
 +Sur les clients, à la fin du fichier de conf, nous précisons où envoyer les logs
 +
 +`/etc/rsyslog.conf`
 +~~~
 +# UDP
 +*.*  @IP_Adress_ou_FQDN:514
 +
 +# TCP
 +#*.*  @@IP_Adress_ou_FQDN:514
 +~~~
 +
 +
 +Après le bloc « **RULES** » dans le fichier de configuration du serveur :
 +~~~
 +$template syslog,"/var/log/clients/%fromhost%/syslog.log"
 +~~~
 +
 +On va ensuite appliquer ce template à tous les logs entrants :
 +~~~
 +*.* ?syslog
 +~~~
 +
 +Règle iptables
 +~~~bash
 +iptables -A INPUT -m state --state NEW -m udp -p udp --dport 514 -j ACCEPT 
 +~~~
 +
 +
 +### Autres 
 +
 +`/etc/rsyslog.d/listen.conf`
 +~~~
 +$SystemLogSocketName /run/systemd/journal/syslog
 +~~~
 +
 +`/etc/rsyslog.conf`
 +~~~
 +#$OmitLocalLogging on
 +$OmitLocalLogging off
 +~~~
 +
 +~~~bash
 +systemctl restart rsyslog
 +systemctl restart systemd-journald
 +~~~
 +
 +Voir `/etc/systemd/journald.conf`
 +
 +
 +A tester 
 +
 +`/etc/rsyslog.conf`
 +~~~
 +
 +if $msg contains 'pcieport' then /dev/null & stop
 +
 +if $msg contains 'pcieport' then {
 +   action(type="omfile" file="/dev/null")
 +}
 +~~~
 +
 +
 +## Exemple
 +
 +~~~
 +$SystemLogRateLimitInterval 5
 +$SystemLogRateLimitBurst 1200
 +
 +# In order to gain read access to logs, make user 'utilisateur' member of group adm
 +
 +$Template PreciseFormat,"%timegenerated:1:23:date-rfc3339% %HOSTNAME% %syslogpriority-text% %syslogtag%%msg:::drop-last-lf%\n"
 +# Decomment to apply PreciseFormat template to every log
 +# $ActionFileDefaultTemplate PreciseFormat
 +
 +# Base for system with Coding Control
 +local3.*        /var/log/mylog1.log;PreciseFormat
 +local3.notice   /var/log/mylog2.log;PreciseFormat
 +
 +# Finally discard local messages so they are not going to be written in other log files
 +local0.*,local1.*,local2.*,local3.*,local4.*,local5.*,local6.*,local7.*         stop
 +~~~
 +
 +~~~bash
 +logger -p local0.notice -t MYTAG "my message"
 +~~~
 +
 +
 +
 +
 +
 +## Infos utiles
 +
 +Valider la configuration
 +~~~bash
 +rsyslogd -N1
 +~~~
 +
 +## Docker et Rsyslog
 +
 +~~~yaml
 +docker-compose       
 +       logging:
 +            driver: syslog
 +            options:
 +                tag: "BigDataSolyDBTmp"
 +                syslog-facility: "local5"
 +~~~
 +
 +rsyslog
 +
 +~~~
 +$Template CustomFormat,"%timegenerated:1:23:date-rfc3339% %HOSTNAME% %syslogpriority-text% %syslogtag%%msg:::drop-last-lf%\n"
 +$ActionFileDefaultTemplate CustomFormat
 +$IMUXSockRateLimitBurst 2000
 +$template syslogDocker, "/var/log/plop/%APP-NAME:::secpath-replace%.log"
 +$umask 0002
 +local5.* ?syslogDocker
 +local5.* stop
 +~~~
 +
 +## Pb
 +
 +### Erreur : SystemLogRateLimitBurst is currently not permitted
 +
 +~~~bash
 +journalctl -p warning -u rsyslog
 +~~~
 +
 +~~~
 +command 'SystemLogRateLimitBurst' is currently not permitted - did you already set it via a RainerScript command (v6+ config)? [v8.24.0 try http://www.rsyslog.com/e/2222 ]
 +~~~
 +
 +Solution
 +Remplacer `$SystemLogRateLimitBurst 2000` par `$IMUXSockRateLimitBurst 2000`
 +
 +`/etc/rsyslog.d/plop.conf`
 +~~~
 +#$SystemLogRateLimitBurst 2000
 +$IMUXSockRateLimitBurst 2000
 +~~~
 +
 +Et redémarrer le service rsyslog
 +
 +Voir : http://www.celtha.es/blog/notas-sobre-rsyslog/
 +
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki