Supposons qu'à côté des journaux du serveur Web Apache, je n'ai jamais eu de contact avec aucun type de journaux (professionnels) sur un système d'exploitation. Donc, la journalisation, bien que je comprenne certaines bases, est un tout nouveau sujet. Pour le moment, l'investissement pour apprendre pleinement sur ce sujet semble être assez énorme, mais je ne sais même pas encore, s'il vaut même la peine d'en savoir plus, alors les concepts les plus abstraits.
Quelles ressources suggéreriez-vous si quelqu'un dans cette situation consommait (tutoriels, pages de manuel, livres) pour en savoir plus sur la journalisation?
Quels journaux un utilisateur Linux normal devrait-il lire quotidiennement / mensuellement? L'hypothèse est-elle même correcte qu'ils sont écrits pour une lisibilité humaine ou sont-ils généralement évalués et utilisés par d'autres outils?
Que doivent savoir les utilisateurs et développeurs de logiciels normaux * nix sur ces journaux?
Que devez-vous savoir sur la rotation des journaux, si vous n'êtes pas censé gérer des serveurs Web professionnels avec d'énormes charges d'événements?
Réponses:
[Ceci a été écrit quelques années avant l'adoption généralisée de journald sur les systèmes systemd et n'y touche pas. À l' heure actuelle (fin 2018) à la fois journald et (r) syslog, décrit ci - dessous, sont utilisés sur distros comme Debian. Sur d'autres, vous devrez peut-être installer rsyslog si vous souhaitez l'utiliser en parallèle, mais l'intégration avec journald est simple.]
Je ne discuterai pas beaucoup de la journalisation en ce qui concerne ubuntu, car le sujet est normalisé pour linux en général (et je pense que la plupart ou la totalité de ce que j'ai à dire est également vraie en général pour n'importe quelle saveur * nix, mais ne le faites pas croyez-moi sur parole). Je ne dirai pas non plus grand chose sur "comment lire les journaux" au-delà de répondre à cette question:
Je suppose que cela dépend de l'application, mais en général, au moins en ce qui concerne ce qui se trouve dans syslog (voir ci-dessous), ils devraient être lisibles par l'homme. "Significatif pour moi" est un autre problème, lol. Cependant, ils peuvent également être structurés de manière à faciliter leur analyse avec des outils standard (grep, awk, etc.) à des fins spécifiques.
Dans tous les cas, il existe une distinction entre les applications qui effectuent leur propre journalisation et les applications qui utilisent l'enregistreur système. Apache par défaut est le premier, bien qu'il puisse être configuré pour le faire plus tard (ce que je pense que la plupart des gens considéreraient comme indésirable). Les applications qui effectuent leur propre journalisation peuvent le faire de n'importe quelle manière en utilisant n'importe quel emplacement pour le (s) fichier (s), donc il n'y a pas grand-chose à dire à ce sujet. L'enregistreur système est généralement appelé
syslog
.syslog
"Syslog" est vraiment un standard qui est implémenté avec un processus démon génériquement appelé syslogd (d est pour le démon!). Le démon syslog prédominant actuellement utilisé sur linux, y compris ubuntu, est
rsyslogd
. Rsyslogd peut faire beaucoup de choses, mais comme configuré par défaut sur la plupart des distributions, il émule un syslog traditionnel, qui trie les choses dans des fichiers texte en clair/var/log
. Vous pouvez trouver de la documentation à ce sujet dans/usr/share/doc/rsyslog-doc-[version]
(attention, il y en a aussi un/usr/share/doc/rsyslog-[version]
, mais c'est juste des remarques du paquet source commeNEWS
etChangeLog
). Si c'est le cas, c'est du HTML, mais Stack Exchange ne permet pas d'incorporer des liens de fichiers locaux:Vous pouvez donc essayer de copier-coller. Si ce n'est pas le cas, il peut faire partie d'un package distinct qui n'est pas installé. Recherchez votre système d'emballage (par exemple,
apt-cache search rsyslog | grep doc
).La configuration est dans
/etc/rsyslog.conf
, qui a une page de manuelman rsyslog.conf
, bien que bien que la page de manuel fasse une référence fine, elle peut être moins pénétrable en introduction. Heureusement, les principes fondamentaux du stock rsyslog.conf sont conformes à ceux du syslog.conf traditionnel, pour lequel il existe de nombreuses introductions et tutoriels. Celui-ci , par exemple; ce que vous voulez retirer de cela, tout en regardant votre rsyslog.conf local, c'est une compréhension des installations et des priorités (la "priorité" est parfois appelée niveau de journal), car ceux-ci font partie de la norme syslog susmentionnée. La raison pour laquelle cette norme est importante est que rsyslog obtient réellement ses informations via le noyau, et ce que le noyau implémente est la norme.En ce qui concerne les
$
directives dans rsyslog.conf, ce sont spécifiques à rsyslog et si vous installez ce paquet doc facultatif, vous trouverez un guide pour les utiliserrsyslog_conf_global.html
.Amusez-vous ... si vous êtes curieux de savoir comment les applications utilisent l'enregistreur système, regardez
man logger
etman 3 syslog
.Rotation du journal
Le moyen normatif de faire tourner les journaux se fait via un outil appelé
logrotate
(et il y en a unman logrotate
). La méthode normative d'utilisation de logrotate est via le démon cron , bien que cela ne doive pas être fait de cette façon (par exemple, si vous avez tendance à éteindre votre bureau tous les jours, vous pourriez aussi bien le faire une seule fois au démarrage avant le démarrage de syslog mais, évidemment, une fois le système de fichiers monté rw).Il y a une bonne introduction à logrotate ici . Notez que logrotate n'est pas seulement pour les trucs syslog , il peut être utilisé avec n'importe quel fichier. Le fichier de configuration de base l'est
/etc/logrotate.conf
, mais comme la configuration a une directive "include", la plupart des choses vont généralement dans des fichiers individuels dans le/etc/logrotate.d
répertoire (ici d est pour le répertoire, pas pour le démon; logrotate n'est pas un démon).Une chose importante à considérer lors de l'utilisation de logrotate est de savoir comment une application réagira lorsque son fichier journal sera "tourné" - en d'autres termes, déplacé - pendant que l'application est en cours d'exécution. WRT (r) syslogd, il cessera simplement d' écrire dans ce journal (je pense qu'il y a une justification de sécurité à cela). La manière habituelle de traiter cela est de dire à syslog de redémarrer (et de rouvrir tous ses fichiers), c'est pourquoi vous verrez une
postrotate
directive dans les fichiers conf de logrotate envoyant SIGHUP au démon syslog.la source
syslog-ng
aussi, vous aurez écrit tout ce qu'il y a à dire sur linux-logging. Excellente réponse./etc/rsyslog.conf
. Par exemple: souvent des choses au - dessus d' une certaine priorité iront/var/log/messages
, et des choses en dessous qui iront/var/log/notice
. J'aime aussi avoir un journal qui contient tout, ce qui permet un double et un triple chevauchement, mais si vous les maintenez en rotation, ce n'est pas grave.rsyslog
n'est-ce pas un wrapper démonlogrotate
, non? Pourquoi