www.starend.org

TechNIX

Tags

syslog unix linux bsd journalisation udp/514

Serveur de log sur le réseau avec syslog

09/01/2005

Créer un serveur de log sous UNIX.

Exemples avec une Debian Linux 3.0 stable.

Le daemon (service) SYSLOG est chargé du recceuille des logs système et applicatif sur une machine. Mais ceci sont conservés localement sur la machine. Il est possible de faire envoyer les logs vers une autre machine au fur et à mesure de leur arrivée au SYSLOG.

Créer le serveur qui reçoit (concentre) les logs des autres machines.

En fait, c'est un SYSLOG que l'on configure pour qu'il écoute le réseau les logs des autres machines.

Comme spécifié dans le 'man syslogd', en ajoutant l'option -r au démarrage du daemon SYSLOG, celui-ci écoute le réseau, port udp/514. Cette option peut facilement être ajouté dans le script de démarrage adéquate '/etc/init.d/sysklogd' (ou '/etc/init.d/syslog' sous MDK).

On redémarre le daemon : '/etc/init.d/sysklogd restart'. Le résultat peut être vérifié avec 'netstat -aln --ip' :

...
udp        0      0 0.0.0.0:514             0.0.0.0:*
...

Votre machine est prète à recevoir les logs...

Passont côté client.

Là, on configure SYSLOG pour qu'il duplique ses logs vers une autre machine via le réseau. Dans le fichier de conf '/etc/syslog.conf', on ajoute au tout début des lignes de trie :

*.* @xxx.xxx.xxx.xxx

avec 'xxx.xxx.xxx.xxx' l'adresse ou le nom réseau de la machine réceptrice des logs. Le '@' sert à dire que la destination est sur le réseau...

Et pour des machine sous Woinwoin(c)(r)(tm)(...) ?

Il existe un programme sous Windows que l'on peut télécharger sur internet, NTSYSLOG. Il duplique les logs du système de la même façon. Il tourne comme un service et est configurable via un éxécutable fourni dans l'archive. Sous Windows, par défaut, chaque entrée de log contient plusieurs lignes. NTSYSLOG les transforme en une ligne unique avant de les envoyer.

Les routeurs CISCO permettent généralement aussi le déport des logs sur un SYSLOG distant.

Et pour le filtrage des flux réseaux correspondants?

Le SYSLOG récepteur écoute sur le port udp/514. Un vrai SYSLOG émetteur envoie depuis le port 514 :

udp/514 -> udp/514

Pour NTSYSLOG ou un CISCO, l'émetteur envoie depuis un port supérieur à 1024 :

udp>1024 -> udp/514

Autre particularité, le SYSLOG récepteur ne répond jamais, inutile de gérer des rêgles de filtrage statefull...

A noter.

Sur la machine qui concentre les logs, les logs internes et externes sont mélangées. Elles peuvent être différenciées, le nom de la machine émettrice est inscrit juste aprés la date et l'heure.

Nul besoin de synchroniser parfaitement les horloges des différentes machines pour assurer la cohérance des différentes entrées de log. La date et l'heure est ajouté par le SYSLOG récepteur au moment de l'archivage.

Pour améliorer les performances de SYSLOG, il est préférable de remplir le fichier '/etc/hosts' avec les différentes adresses et machines connues susceptibles d'y envoyer leurs logs. Ceci afin d'accélérer la résolution de nom dans les logs.

Licence Creative Common 2007 :: BY-NC-SA :: Webdesign DENDIEVEL Stéphane