web-dev-qa-db-fra.com

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

Je suis un peu confus dans syslog, rsyslog et syslog-ng.

D'où puis-je obtenir le code source de syslog()?

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

67
StackUser

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

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

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

Puis vint syslog-ng en 1998. Il étend le protocole de base syslog avec de nouvelles fonctionnalités comme:

  • filtrage basé sur le contenu
  • Se connecter directement à une base de données
  • TCP pour le transport
  • Cryptage TLS

Vient ensuite Rsyslog en 2004. Il étend le protocole syslog avec de nouvelles fonctionnalités comme:

  • Prise en charge du protocole RELP
  • Prise en charge des opérations tamponnées

Disons qu'aujourd'hui, ce sont trois projets simultanés qui se sont développés séparément selon les versions, mais qui se sont également développés parallèlement à 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 pourriez avoir besoin, en plus d'une installation et d'une configuration simples et complètes.

55
krisFR

ce sont 3 types différents de gestionnaires de journaux: il permet à votre système de collecter le filtre et de transmettre/stocker les journaux.

  • Syslog (démon également appelé sysklogd) est le LM par défaut dans les distributions Linux courantes. Léger mais pas très flexible, vous pouvez rediriger le flux de journaux trié 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 (vous pouvez copier un syslog.conf fichier directement dans rsyslog.conf et il fonctionne) ; mais vous avez beaucoup de nouveaux trucs sympas avec:

    • Vous pouvez écouter les connexions TCP/UDP/..., avec des restrictions (ports, IP source)
    • Vous pouvez charger de nombreux 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" au fichier fermé.log)
    • Vous pouvez ignorer le message après une ou plusieurs règles Visitez http://www.rsyslog.com ce qui est très bien
  • Syslog-ng est "Next-Gen". Je pense que c'est la meilleure façon de gérer les journaux: tout est objet (source, destination, filtre, et la règle de transfert très) et la syntaxe est claire. Je doute en termes de fonctionnalités que rsyslog et syslog-ng sont différents.

33
moutonjr

D'où puis-je obtenir le code source de syslog ()

Ceci est fourni par glibc ou les implémentations libc sur d'autres versions Unix. Cet appel soumet essentiellement votre message à la socket/dev/log du domaine syslog unix. Ce socket est normalement créé par l'enregistreur système (par exemple rsyslog, syslog-ng, nxlog, etc.).

9
b0ti

Ce sont tous des démons syslog, où rsyslog et syslog-ng sont des remplacements plus rapides et plus riches en fonctionnalités pour le syslogd traditionnel (pour la plupart non entretenu). syslog-ng est parti de zéro (avec un format de configuration différent) tandis que rsyslog était à l'origine un fork de syslogd, prenant en charge et étendant sa syntaxe. Ces dernières années, rsyslog a également commencé à prendre en charge un nouveau format de configuration. À l'heure actuelle, il est vraiment difficile de comparer les deux sans entrer dans les détails et commencer des guerres de flammes.

Syslog en général est assez déroutant car il peut y avoir plusieurs choses. J'ai eu une chance de lever l'ambiguïté ici: https://sematext.com/blog/2017/01/30/what-is-syslog-daemons-message-formats-and-protocols/

3
Radu Gheorghe