Outils pour utilisateurs

Outils du site


tech:log_syslog_rsyslog

Ceci est une ancienne révision du document !


Notes Rsyslog

Généralités

Voir :

Exemple de fichier de conf :

Vérifier la syntax du fichier de conf

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

# Options for rsyslogd
# -x disables DNS lookups for remote messages
# See rsyslogd(8) for more details
#RSYSLOGD_OPTIONS=""
RSYSLOGD_OPTIONS="-x"

Conf client / serveur

Conf serveur

apt-get install rsyslog rsyslog-relp

/etc/default/rsyslog

module(load="imtcp")
#input(type="imptcp" port="1514" address="127.0.0.1")
input(type="imtcp" port="1514")
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

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

logger -s "TEST plop"

Les filtres

Voir :

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

Old

Serveur rsyslog distant

Voir http://www.it-connect.fr/centralisez-vos-logs-avec-rsyslog/

Voir aussi :

  • journald
  • imjournal
apt-get install rsyslog

ou

yum install rsyslog
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
systemctl restart rsyslog
netstat -taupen |grep 514
udp        0      0 0.0.0.0:514             0.0.0.0:*                           0          199126      5041/rsyslogd
udp6       0      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

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
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
logger -p local0.notice -t MYTAG "my message"

Infos utiles

Valider la configuration

rsyslogd -N1

Docker et Rsyslog

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

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/

tech/log_syslog_rsyslog.1762883701.txt.gz · Dernière modification : de Jean-Baptiste

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki