# Le système d'exploitation GNU-Linux/Les fichiers journaux syslog

* Qu'est-ce qu'un système d'exploitation ?
* Unix et Linux
* Partitionnement du disque
* Installation
** Installer Debian via le réseau
* Utilisateur Unix, l'interface console
** Le login
** Variables d'environnement
** Commandes de base
** L'aide en ligne man
** L'éditeur de texte vi
** Les shells
** La complétion
** Les jokers
** Les répertoires importants
** Redirection des entrées/sorties
** Invoquer un programme en tâche de fond
** Propriétaires et droits d'accès
** Processus
** Locale
* Administration du système
** Configuration du réseau
** Les utilisateurs et groupes
** Le processus d'initialisation
** Les systèmes de fichiers
** Le système virtuel /proc
** Les périphériques /dev
** L'ordonnanceur de travaux cron
** Le backup : tar et gzip
** ghost avec partimage
** sauvegarde de fichiers avec rsync
** Les fichiers journaux syslog
** Installation de nouveaux logiciels
** Le noyau Linux et les modules
** Autres commandes utiles
** Installation RAID1 logiciel + LVM + XFS
** Scripts de surveillance
** Réseaux sans fil
* Administration des services réseaux
** L'outil d'administration Webmin
** telnet
** cURL
** wget
** Le serveur de noms BIND
** Le serveur de configuration réseau DHCP
** Le serveur de shell distant SSH
** Le partage de fichiers Samba
** Le partage de fichiers NFS
** Le serveur d'impression CUPS
** Le serveur de fichiers FTP
** Le serveur Web Apache
** Le serveur Web Nginx
** La base de données MySQL
** La base de données Memcached
** La base de données Redis
** Le serveur de mails Postfix
** Les annuaires LDAP
** La supervision Nagios
* Sécurisation d'un serveur Linux
** Installation d'un service en mode chroot
** Protection avec iptables
* Erreurs connues
* Médiagraphie
* Auteurs
* Qu'est-ce qu'un système d'exploitation ?
* Unix et Linux
* Partitionnement du disque
* Installation
** Installer Debian via le réseau
* Utilisateur Unix, l'interface console
** Le login
** Variables d'environnement
** Commandes de base
** L'aide en ligne man
** L'éditeur de texte vi
** Les shells
** La complétion
** Les jokers
** Les répertoires importants
** Redirection des entrées/sorties
** Invoquer un programme en tâche de fond
** Propriétaires et droits d'accès
** Processus
** Locale
* Administration du système
** Configuration du réseau
** Les utilisateurs et groupes
** Le processus d'initialisation
** Les systèmes de fichiers
** Le système virtuel /proc
** Les périphériques /dev
** L'ordonnanceur de travaux cron
** Le backup : tar et gzip
** ghost avec partimage
** sauvegarde de fichiers avec rsync
** Les fichiers journaux syslog
** Installation de nouveaux logiciels
** Le noyau Linux et les modules
** Autres commandes utiles
** Installation RAID1 logiciel + LVM + XFS
** Scripts de surveillance
** Réseaux sans fil
* Administration des services réseaux
** L'outil d'administration Webmin
** telnet
** cURL
** wget
** Le serveur de noms BIND
** Le serveur de configuration réseau DHCP
** Le serveur de shell distant SSH
** Le partage de fichiers Samba
** Le partage de fichiers NFS
** Le serveur d'impression CUPS
** Le serveur de fichiers FTP
** Le serveur Web Apache
** Le serveur Web Nginx
** La base de données MySQL
** La base de données Memcached
** La base de données Redis
** Le serveur de mails Postfix
** Les annuaires LDAP
** La supervision Nagios
* Sécurisation d'un serveur Linux
** Installation d'un service en mode chroot
** Protection avec iptables
* Erreurs connues
* Médiagraphie
* Auteurs
[ Modifier le sommaire ]

## Syslog

syslog est un daemon dédié à l'enregistrement des journaux (log) Les journaux log sont stockés dans le répertoire /var/log/
Voici le contenu du répertoire /var/log
un journal log est un fichier texte dont les évènements sont enregistrés, un par ligne.
* « Extrait de fichier syslog - les messages sont enregistrés avec la date et l'heure de l'évènement »
Dans chaque ligne d'évènement on distingue :
* La date à laquelle l'évènement a été déclenché
* Le processus déclencheur de l'évènement
* Le processus ayant demandé l'ajout du message correspondant au log
* Le niveau de gravité du message (priority)
TP : afficher les dernières procédures de login, l'heure des tentatives, si elles ont échoué ou réussi.
le fichier log /var/log/auth.log est le journal des authentifications.
syslog possède un fichier de configuration syslog.conf, il est stocké dans le répertoire /etc . On peut modifier ce fichier pour l'adapter à nos besoins en messages d'évènements survenus sur le système : envoi de mail, authentification, etc...
Ce fichier est un fichier texte, dont chaque ligne est séparée en deux parties :
* 1ère partie : (le ou) les processus demandeurs (séparés par un point virgule) suivi d'un point et de leur niveau de priorité : <dispositif>.<niveau>
<dispositif> est appelé facility <niveau> est appelé priority, c'est le niveau de criticité du log. Exemple : panic, error, warning, debug, info...
* 2ème partie : le fichier log correspondant (qui reçoit le message et l'ajoute à la liste de ses messages) : <fichier de log>
* « Voici un exemple de fichier /etc/syslog.conf »
expliquer en détail la syntaxe du fichier
lister les différents fichiers de log et leur utilité
parler des outils de surveillance et d'analyse des logs : swatch, logwatch, logreport ...

### Swatch

L'utilitaire swatch peut surveiller un fichier de log et réaliser une action s'il voit passer un mot-clé.
Exemple de fichier de configuration /root/.swatchrc :

## Le Serveur de log

On peut être amené à créer un serveur de log si on possède plusieurs serveurs dont on souhaite centraliser les log, par mesure de sécurité ou par commodité (facilité de consultation, d'archivage, etc...)
Si on monte un serveur de log, il suffit d'ajouter :
* côté serveurs envoyant les messages de log :----> une ligne dans le fichier syslog.conf de chaque serveur en mentionnant les processus envoyant les messages (exemple : *.* pour tous) et le nom du serveur de log ou son adresse IP précédée de @, comme ainsi :
* côté serveur de log :----> l'option SYSLOGD ="-r" dans le fichier /etc/default/syslogd
* Schéma de réseau avec Serveur de log
* Extrait du fichier syslogd d'un serveur non dédié au log - la commande SYSLOGD n'est pas activée

## La commande logger

La commande logger permet d'envoyer un message à syslog même connecté en utilisateur
-t permet d'ajouter unnom, un tag c'est un mot quelconque pour signer le message

## Le programme logrotate

logrotate est un fichier texte situé dans etc/, il sert à configurer 'la politique des rotations' des logs. Effectivement, il faut supprimer les anciens fichiers log, sinon on risque une saturation du disque. Pour cela on peut programmer des rotations de logs qui se traduisent par l'archivage des fichiers log assez récents et la suppression des anciens, et ceci avec une périodicité bien définie.
La page man de logrotate donne toute la syntaxe et les mots clé.
Les lignes importantes à configurer du fichier /etc/logrotate.conf:
* monthly : tourner les logs tous les mois (enlever le weekly existant dans le fichier de configuration par défaut Debian)
* rotate n : conserver n fichiers (ici un fichier par mois [mettre 60, soit 5 ans])
* create : créer un nouveau fichier de log
* compress : compresser le fichier tourné
Pour tester vos fichiers de configuration logrotate.conf (et donc de logrotate.d/*) taper : /usr/sbin/logrotate -dv /etc/logrotate.conf.
extrait du fichier logrotate.conf
parler du répertoire /etc/logrotate.d