Syslog permet de connaître les actions qui se passent dans la machine Linux en générant de fichiers de logs que l’administrateur peut traiter ultérieurement. Cela permet de savoir, par exemple, que quelqu’un a pénétré le système.
Un daemon, syslogd fonctionne en arrière-plan. Il reçoit les données depuis le noyau via klogd. Les données proviennent des tâches locales, ou distantes depuis d’autres machines.
Syslogd reçoit des messages basés sur leur type et leur priorité, en fonction de ce qui est défini dans /etc/syslog.conf. Les lignes dans ce fichier ont le format :
type.priorité action
Les types sont : auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security, syslog, user, uucp, et local0 à local7.
local0 à local7 sont utilisés par des erveurs distants ou des périphériques réseau : routeurs, parfeux, switchs, ...
Security et mark sont réservés au système et n’ont pas à être utilisés
Le type précise le sous-système qui génère le message
Les priorités sont, dans l’ordre croissant d’importance : debug, info, notice, warning, err, crit, alert, emerg. Elles définissent l’importance du message. Le caractère "*" remplace toutes les options de type ou de priorité, suivant qu’il est avant ou après le point. none dans priorité signifie : aucune priorité attribuée à ce type.
Il est possible d’avoir plusieurs types pour une même priorité avec la virgule en séparateur.
Les actions possibles sont :
un fichier (avec son chemin absolu) où stocker le message : cas le plus fréquent.
un terminal ou une console
une machine distante où envoyer le message. Le nom du host est précédé de @
une liste d’utilisateurs à qui envoyer le message. Par défaut, seul root reçoit les messages critiques
tous les utilisateurs logués, pour les messages de priorité emergency
Exemple de contenu du fichier /etc/sysconfig.conf :
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;news.none;authpriv.none;cron.none /var/log/messages
Le fichier messages contiendra tous les types dont le niveau de priorité est info ou supérieur. Il ne contiendra aucune informations pour les services mail, news, authpriv, cron
Exemple d’envoi de tous les messages de niveau emergency vers une machine distante les centralisant :
*.emerg @serveur_central_de_log.com
Attention : envoyer tous les messages de log dans le répertoire /var d’une machine risque de la saturer et de la bloquer. Il est recommandé de mettre /var dans une partition que l’on pourra démonter.
Exemple d’envoi de messages à des utilisateurs :
*.emerg daniel, alain
Exemple de combinaison :
*.emerg * # envoi a tous les utilisateurs
*.emerg /var/log/messages
*.emerg @syslog_serveur
Les priorités peuvent être préfixées avec " !" et "=". Ex :
.warning log les messages de priorité warning ou plus
.!warning ne logue pas les messages de priorité warning ou plus
.=warning log seulement les messages de priorité warning
.!=warning ne logue pas les messages de priorité warning
EXECUTION DE SYSLOG:
_ Dans {{/etc/init.d}}:
_ <code>
./syslog start|stop|restart
Dans le cas d’un logging distant,
sur le serveur de log, dans le script syslog, ajouter le switch -r qui autorise la réception de log distant. Ex :
daemon syslog -m 0 -r
Relancer le daemon :
/etc/init.d/syslog restart
sur le client qui envoie les messages de log, dans /etc/syslogd.conf :
*.emerg @syslog_serveur
Puis relancer syslog :
/etc/init.d/syslog restart
Par défaut, syslog écoute sur le port UDP 514. Donc si il faut traverser un parfeu, celui-ci doit laisser passer les paquets UDP/514 dans les deux sens.