Installer et configurer rsyslog sur Gentoo / Calculate Linux



Introduction



Rsyslog permet de transférr les messages des journaux d'événements sur un réseau IP. il implémente le protocole basique syslog - qui centralise les journaux d'événements, permettant de repérer plus rapidement et efficacement les défaillances d'ordinateurs présents sur un réseau. Il présente la particularité d'en étendre les fonctionnalités en permettant, notamment la rotation automatique des fichiers.


Installation



Code BASH :
emerge -avq rsyslog


La sortie produite est de ce style :
Code BASH :
[ebuild  N    ] dev-libs/libestr-0.1.9  USE="-debug -static-libs" 
[ebuild  N    ] dev-libs/json-c-0.11-r1  USE="-doc -static-libs" ABI_X86="(64) -32 (-x32)" 
[binary  N    ] net-dns/libidn-1.30  USE="nls (-doc) -emacs -java -mono -static-libs" ABI_X86="(64) -32 (-x32)" 
[binary  N    ] dev-libs/nettle-3.1.1  USE="gmp -doc (-neon) -static-libs {-test}" ABI_X86="(64) -32 (-x32)" CPU_FLAGS_X86="-aes" 
[binary  N    ] dev-scheme/guile-1.8.8-r1  USE="deprecated nls regex threads -debug -debug-freelist -debug-malloc -discouraged -emacs -networking" 
[ebuild  N    ] dev-libs/liblogging-1.0.4  USE="stdlog -rfc3195 -static-libs (-systemd)" 
[binary  N    ] sys-devel/autogen-5.18.1  USE="-libopts -static-libs" 
[binary  N    ] dev-libs/libtasn1-4.5  USE="-doc -static-libs" ABI_X86="(64) -32 (-x32)" 
[binary  N    ] net-libs/gnutls-3.3.17.1  USE="crywrap cxx nls openssl zlib -dane -doc -examples -guile -pkcs11 -static-libs {-test}" ABI_X86="(64) -32 (-x32)" LINGUAS="cs de en fi fr it nl pl sv uk -ms -vi -zh_CN" 
[ebuild  N    ] app-admin/rsyslog-8.13.0  USE="gcrypt ssl -dbi -debug -doc -elasticsearch -jemalloc -kerberos (-libressl) -mongodb -mysql -normalize -omudpspoof -postgres -rabbitmq -redis -relp -rfc3195 -rfc5424hmac -snmp (-systemd) {-test} -usertools -zeromq"
 
Would you like to merge these packages? [Yes/No] 


Pas besoin de stocker en base mysql et les FLAGS par défaut nous conviennent. On valide l'installationen répondant Yes


Configuration




Configuration de base



On active les journaux système au boot du serveur :

Code BASH :
 rc-update add rsyslog default


Et on lance le service :

Code BASH :
/etc/init.d/rsyslog start


On vérifie que le fichiers /var/log/messages se remplisse bien:

Code BASH :
tailf /var/log/messages
2013-03-29T22:23:56.500621+01:00 oxygen kernel: IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
2013-03-29T22:23:56.500625+01:00 oxygen kernel: usb 4-1: USB disconnect, device number 2
2013-03-29T22:23:56.500639+01:00 oxygen kernel: device-mapper: ioctl: 4.23.1-ioctl (2012-12-18) initialised: dm-devel@redhat.com
2013-03-29T22:23:56.500645+01:00 oxygen kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
2013-03-29T22:23:56.500648+01:00 oxygen kernel: i2c /dev entries driver
2013-03-29T22:23:56.500652+01:00 oxygen kernel: NET: Registered protocol family 17
 



Configuration avancée



La configuration plus fine se fait dan le fichier /etc/rsyslog.conf.
C'est dans ce fichier qu'on va pouvoir personnaliser les niveaux de logs l'emplacement des fichiers de logs à créer en fonction de la nature des informations.



logrotate : limiter la taille des fichiers journaux



Pour chaque fichier journal, logrotate réalise 2 opération simultanées :

  • la rotation : il archive le fichier journal sous un autre nom et supprime la plus ancienne archive
  • la compression : il compresse éventuellement le fichier journal avant de l'archiver



Installer logrotate



Comme d'habitude, on lance l'installation avec la question avant validation :

Code BASH :
emerge -avq logrotate


La sortie produite est la suivante :

Code BASH :
[ebuild  N    ] app-admin/logrotate-3.9.1-r1  USE="acl cron (-selinux)" 
 
Would you like to merge these packages? [Yes/No]


Pas d'erreur, les FLAG par défaut nous conviennent, on lance l'installation en répondant Yes.


Configurer logrotate



Le fichier de configuration principal est /etc/logrotate.conf, les autres fichiers de configurations sont dans le répertoire /etc/logrotate.d/.

Voici un extrait de mon fichier /etc/logrotate.conf :

Code BASH :
grep -v -E "(#|^$)" /etc/logrotate.conf
weekly
rotate 52
create
dateext
compress
include /etc/logrotate.d
notifempty
nomail
noolddir
/var/log/wtmp {
    monthly
    create 0664 root utmp
    rotate 1
}
/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}
 


  • weekly : indique une rotation toutes les semaines
  • rotate : indique le nombre de rotations après lesquelles les logs compressés sont supprimés
  • compress : indique que les anciens logs sont compressés (avec gzip)
  • notifempty : ne fait pas tourner les logs vides
  • nomail : n'envoie pas de mails pour les vieux logs à supprimer
  • noolddir: stocke les vieux log dans le même dossier que les logs.
Cette page a été vue 4567 fois