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?
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:
Vient ensuite Rsyslog
en 2004. Il étend le protocole syslog
avec de nouvelles fonctionnalités comme:
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.
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:
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.
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.).
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/