Quand dois-je utiliser la base de données pour la journalisation et quand les fichiers texte?
Je constate que les serveurs Web et les cadres Web (que votre application utilise en interne) enregistrent généralement (toujours?) Les demandes et les erreurs dans les fichiers texte par défaut. Mais je vois que les gens qui développent leur application autour de ces serveurs et frameworks se connectent parfois à la base de données (même la base de données principale de l'application, pas une externe).
Il y a peut-être aussi une différence entre journaux de débogage et journaux d'audit - J'ai lu cette classification quelque part sur ce site.
En termes très généraux, la journalisation dans un fichier texte est beaucoup plus rapide que la journalisation dans une base de données. C'est l'aspect principal de la journalisation que vous devez considérer.
La raison pour laquelle vous vous connectez à une base de données est probablement parce que vous souhaitez interroger les résultats - la recherche d'informations de journal particulières est plus facile dans une base de données, en particulier si vous enregistrez des informations contextuelles qui peuvent être utilisées pour regrouper des entrées de journal. Il est également généralement plus facile d'accéder à une base de données centrale qu'un fichier journal sur un serveur qui peut être sécurisé et inaccessible.
L'idéal serait de se connecter localement à un fichier, puis de migrer ces données vers une base de données pour inspection si nécessaire par la suite.
Maintenant, l'audit est une bête complètement différente. Bien que son concept soit similaire à celui de la journalisation, l'audit doit généralement être conservé pendant une longue période (contrairement aux fichiers journaux utilisés pour le débogage ou le traçage qui peuvent être supprimés à volonté). Les audits sont là pour montrer des informations importantes. Vous enregistrez beaucoup moins d'informations d'audit et moins souvent que la journalisation normale, les performances ne sont donc pas un problème. C'est pour cette raison que les avantages de l'écriture de ces informations d'audit dans une base de données centrale sont visibles.
Il n'y a pas d'approche unique et pour la résilience, vous souhaitez parfois utiliser plusieurs approches. En prenant votre exemple, vous souhaiterez peut-être stocker les journaux de débogage dans un fichier et stocker les journaux d'audit dans une base de données.
Fil d'Ariane de l'application
Avantages: Facile à mettre en œuvre et visible immédiatement pour l'utilisateur
Inconvénients: les informations ne persistent que lorsque l'application est en cours
fichier texte
Avantages: Facile à mettre en œuvre
Inconvénients: besoin de s'assurer que le verrouillage des fichiers ne se produit pas. Que faire lorsque l'espace disque est épuisé sur le lecteur de journal?
Journal des événements
Avantages: Facile à mettre en œuvre
Inconvénients: le journal des événements peut devenir plein s'il n'est pas configuré correctement ou les anciens journaux peuvent être perdus en raison de la politique de rétention/effacement.
Base de données
Avantages: Facile à mettre en œuvre
Inconvénients: plus de trafic DB. Comment enregistrer une perte de base de données ou un autre problème de base de données?
Messagerie (MQ)
Avantages: tirez et oubliez
Inconvénients: une autre couche pour se tromper. Nécessite une configuration
Les journaux d'audit doivent garantir une traçabilité complète des opérations sur une plus longue période à des fins d'audit, dans le but de justifier pleinement le contenu de votre base de données.
Dans certains cas (par exemple, les applications financières), ces journaux peuvent devoir garantir la conformité aux exigences légales telles que la conservation (dans certains pays pendant 10 ans) ou l'inaltérabilité. Comme ces journaux doivent justifier le contenu de la base de données au niveau de l'application, il est courant de les stocker dans la base de données, où l'accès peut être contrôlé pour éviter toute altération non autorisée.
Les autres journaux , comme les journaux de surveillance ou les journaux de sécurité, doivent souvent faire face à des contraintes de performances et de volume. Celles-ci sont généralement écrites dans un fichier car il est plus rapide à écrire (pas de surcharge de gestion des transactions) plus facile à archiver hors ligne et plus facile à intégrer avec la surveillance externe SIEM tools.
Il convient de noter que, bien que ce type de journaux puisse être utilisé pour démontrer la fiabilité des journaux d'audit (par exemple, aucun accès non autorisé), ils ont généralement des contraintes de conservation plus courtes (par exemple entre 6 mois et 2 ans à des fins d'application de la loi pour les journaux de télécommunications) si aucune contrainte du tout.
L'une des nombreuses raisons d'utiliser db pour la journalisation du débogage est lorsque vous n'avez pas accès à l'application ou au serveur Web pour afficher l'observateur d'événements ou les fichiers texte
Les journaux d'audit sont différents, puis les journaux de débogage dans le contexte de l'application Web, car dans certaines applications, vous devrez peut-être les montrer à l'utilisateur final afin qu'ils puissent aller dans la base de données pour une récupération facile.
Vous pouvez également utiliser DB Tools pour filtrer et visualiser facilement.