67 votes

Quelle est la différence entre syslog, rsyslog et syslog-ng ?

Je suis un peu confus en ce qui concerne syslog, rsyslog et syslog-ng.

Où puis-je obtenir le code source de syslog() ?

Y a-t-il une différence entre rsyslog et rsyslogd ?

0 votes

Rsyslogd avec la lettre D est le démon rsyslogd

3 votes

Pour être complet, je vais ajouter une différence que j'ai trouvée et qui peut ou non vous impacter. syslog-ng utilise fopen alors que rsyslog utilise fappend. Ceci est important si vous chattr +a vos fichiers syslog. La plupart des gens ne font pas cela, j'avais juste un cas d'utilisation spécial et c'est comme ça que je l'ai découvert. J'ai juste fait craquer beaucoup de gens.

55voto

krisFR Points 12580

Fondamentalement, ils sont tous identiques, dans la mesure où ils permettent tous l'enregistrement de données provenant de différents types de systèmes dans un référentiel central.

Mais il s'agit de trois projets différents, chaque projet essayant d'améliorer le précédent avec plus de fiabilité et de fonctionnalités.

Le site Syslog était le tout premier projet. Il a débuté en 1980. Il s'agit du projet racine de Syslog protocole. Pour l'instant, Syslog est un protocole très simple. Au début, il ne prend en charge que le protocole UDP pour le transport, de sorte qu'il ne garantit pas la livraison des messages.

Venue suivante syslog-ng en 1998. Il étend les bases syslog avec de nouvelles fonctionnalités comme :

  • le filtrage basé sur le contenu
  • Connexion directe à une base de données
  • TCP pour le transport
  • Cryptage TLS

Venue suivante Rsyslog en 2004. Il s'étend syslog avec de nouvelles fonctionnalités comme :

  • Support du protocole RELP
  • Prise en charge des opérations en mémoire tampon

Disons qu'il s'agit aujourd'hui de trois projets simultanés qui se sont développés séparément au fil des versions, mais aussi en parallèle par rapport à ce que faisaient les voisins.

Je pense personnellement qu'aujourd'hui syslog-ng est la référence dans la plupart des cas, car il s'agit du projet le plus mature offrant les principales fonctionnalités dont vous pouvez avoir besoin, en plus d'une installation et d'une configuration faciles et complètes.

1 votes

Pour mémoire, le syslog d'OpenBSD peut gérer TCP et TLS (et UDP).

33voto

moutonjr Points 498

Il existe trois types différents de gestionnaires de journaux : ils permettent à votre système de collecter, filtrer et transmettre/stocker les journaux.

  • Syslog (démon également nommé sysklogd ) est le LM par défaut dans les distributions Linux courantes. Léger mais pas très flexible, vous pouvez rediriger les flux de logs triés par facilité et gravité vers des fichiers et sur le réseau (TCP, UDP).
  • rsyslog est une version "avancée" de sysklogd où le fichier de configuration reste le même (on peut copier une syslog.conf directement dans le fichier rsyslog.conf et cela fonctionne) ; mais vous avez beaucoup de nouvelles choses cool à venir avec elle :

    • Vous pouvez écouter les connexions TCP/UDP/..., avec des restrictions (ports, IP source).
    • Vous pouvez charger un grand nombre de modules
    • Vous pouvez discriminer le filtrage des journaux par programme, source, message, pid, etc. (par exemple, chaque message étiqueté avec le message "connexion fermée" vers le fichier closed.log).
    • Vous pouvez écarter le message après une ou plusieurs règles Visitez http://www.rsyslog.com ce qui est très bien en effet
  • Syslog-ng est "Next-Gen". Je pense que c'est la meilleure façon de gérer les logs : tout est objet (source, destination, filtre, et la règle de redirection même) et la syntaxe est claire. En termes de fonctionnalités, je doute que rsyslog y syslog-ng sont différentes.

8 votes

Je dirais que syslog-ng et rsyslog sont tous deux "next gen", ou du moins le remplacement le plus récent de l'ancien syslog. Les deux sont comparables en termes de fonctionnalités, mais la syntaxe des deux est très différente. syslog-ng a sa propre syntaxe unique, tandis que la syntaxe de rsyslog est plus proche de l'ancienne syntaxe syslog.

11 votes

Et puis il y a journalctl / journald

9voto

b0ti Points 976

Où puis-je trouver le code source de syslog() ?

Ce service est assuré par glibc ou les implémentations de libc sur d'autres saveurs d'Unix. Cet appel soumet essentiellement votre message au socket /dev/log du domaine unix syslog. Cette socket est normalement créée par le logger du système (par exemple rsyslog, syslog-ng, nxlog, etc).

3voto

Radu Gheorghe Points 131

Ce sont tous des démons syslog, où rsyslog et syslog-ng sont des remplacements plus rapides et plus riches en fonctionnalités du traditionnel syslogd (pour la plupart non maintenu). syslog-ng est parti de zéro (avec un format de configuration différent) tandis que rsyslog était à l'origine un fork de syslogd, supportant et étendant sa syntaxe. Ces dernières années, rsyslog a également commencé à supporter un nouveau format de configuration. Il est maintenant très difficile de comparer les deux sans entrer dans les détails et déclencher des guerres de religion.

Syslog en général est assez déroutant car il peut s'agir de plusieurs choses. J'ai essayé de désambiguïser ici : https://sematext.com/blog/2017/01/30/what-is-syslog-daemons-message-formats-and-protocols/

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X