Le gestion des logs Syslog
Syslog Présentation générale Principes de fonctionnement Le format syslog Niveaux de gravité Facilités L'offre Syslog Rsyslog Syslog-ng Mise en oeuvre
Présentation générale Syslog est un protocole définissant les journaux d'évènements systèmes Conçu en 1980 par E. Allman dans le cadre de du projet sendmail C'est devenu un standard de fait pour les système Unix documenté par le RFC 3164 Syslog utilise les sockets Utilise en standard le port UDP 514
Présentation générale - suite Protocole client-serveur Permet la centralisation des logs Protocole utilisé par de nombreux dispositifs réseau (routeurs, switch, imprimantes) Dispositif important
Le format syslog Sep 14 14:09:09 machine_de_test dhcp service[warning] 110 corps du message Jan 31 12:00:19 proxy dhclient: last message repeated 5 times Jan 31 12:01:23 proxy dhclient: last message repeated 4 times Jan 31 12:01:24 proxy dhclient: DHCPREQUEST of 82.225.173.248 on eth1 to 82.225.172.254 port 67 Jan 31 12:01:31 proxy named[1847]: error (network unreachable) resolving '1-10129-0-0- 25-14-0-1965-10-24590130.r. radar.cedexis.net/A/IN': 2001:503:ba3e::2:30#53 Jan 31 12:01:35 proxy dhclient: DHCPREQUEST of 82.225.173.248 on eth1 to 82.225.172.254 port 67 Jan 31 12:01:40 proxy ntpd[5940]: kernel time sync status change 6001 Jan 31 12:01:49 proxy dhclient: DHCPREQUEST of 82.225.173.248 on eth1 to 82.225.172.254 port 67 Jan 31 12:02:33 proxy dhclient: last message repeated 3 times Jan 31 12:02:33 proxy dhcpd: DHCPINFORM from 192.168.8.11 via vlan4: unknown subnet for client address 192.168.8. 11 Jan 31 12:02:33 proxy dhcpd: DHCPINFORM from 192.168.8.11 via eth0: unknown subnet for client address 192.168.8.1 1 Jan 31 12:02:34 proxy dhclient: DHCPREQUEST of 82.225.173.248 on eth1 to 82.225.172.254 port 67 Jan 31 12:03:38 proxy dhclient: last message repeated 5 times
Les niveaux de gravité 0 Emerg (emergency) => Système inutilisable 1 Alert => Une intervention immédiate est nécessaire 2 Crit (critical) => Erreur critique pour le système 3 Err (error) => Erreur de fonctionnement 4 Warning => Avertissement 5 Notice => Événement normal méritant d'être signalé 6 Info (informational) => pour information seulement 7 Debug => Message de mise au point 8 none => Ignorer ce message
Les facilités Identifiant Origine 0 kernel messages 1 user-level messages 2 mail system 3 system daemons 4 security/authorization messages 5 messages generated internally by syslogd 6 line printer subsystem 7 network news subsystem 8 UUCP subsystem 9 clock daemon 10 security/authorization messages 11 FTP daemon 12 NTP subsystem 13 log audit 14 log alert 15 clock daemon (note 2) 16-22 local use 0 à 7
L'écriture dans syslog La journalisation dans syslog (local ou distant) se fait via : logger[1] (commande Unix) pour les scripts shell vsyslog() ou syslog()[2] pour les programmes compilés ; ce sont des fonctions implémentées dans des bibliothèques logicielles
L'offre : syslog C'est le programme original Des fonctionnalités un peu limitées Moins utilisé et remplacé peu à peu par rsyslog et syslog-ng
L'offre : rsyslog Début du projet en 2004 Devenu le syslog standard pour Debian, Ubuntu et Fedora Fonctionnalités : Timestamps ISO 8601 à la timestamp with milliseconde Gère les relais : possibilité de connaître le chemin parcourus par les messages transport sur TCP support GSS-API et TLS Stockage dans les bases de sdonnées support du nouveau syslog IETF
L'offre : syslog-ng Plus moderne que syslog mais moins répandu que rsyslog
Mise en oeuvre Installé en standard sur toutes les machines Unix/Linux (rsyslog sur Debian/Ubuntu) Paquetage rsyslog Fichier de configuration /etc/rsyslog.conf Contien des origines selon le modèle suivant : facility.criticity
Mise en oeuvre : rsyslog.conf Exemple : daemon.* -/var/log/daemon.log user.crit @serveurlog kern.* -/var/log/kern.log lpr.* -/var/log/lpr.log mail.info -/var/log/mail.info mail.warn -/var/log/mail.warn mail.err /var/log/mail.err
Mise en oeuvre - suite Auth/authpriv => traces sécurité/identifiantion cron => traces d'un cron daemon.* => trace d'un daemon kern.* => traces du noyau lpr.* => traces du système d'impression mail => traces du système de messagerie news => traces d'un service de news/réseau syslog => traces du service syslog lui-même user => trace des processus utilisateur local0 à 7 => traces issues des klogd
Mise en oeuvre Redirection des logs sur un serveur distant d'adresse 192.168.0.1: *.* @192.168.0.1:514 Même chose mais sur TCP: *.* @@192.168.0.1:514 Sur le serveur : ne pas oublier d'activer l'écoute sur le port UDP correspondant