J'installe un package personnalisé dans /opt/package_name
, stockant les fichiers de configuration dans /etc/opt/package_name
et les fichiers statiques dans /var/opt/package_name/static/
- suivant les conventions suggérées par FHS. [ 1 ] [ 2 ] [ 3 ]
J'ai également besoin de stocker des fichiers journaux. Je veux qu'ils soient détectables par des outils d'analyse, donc ils devraient également être dans un emplacement conventionnel. Devraient-ils entrer:
/var/log/package_name
(comme un package système, même s'il s'agit d'un package personnalisé)/var/opt/package_name/log
(suivant la/var/opt
convention - mais est-ce découvrable?)- autre chose?
Réponses:
Je les mettrais dedans
/var/log/package_name
; il satisfait mieux que le principe de la moindre surprise/var/opt/package_name/log
. Je n'ai pas de citation pour cela; il correspond simplement à l'endroit où je rechercherais les journaux.Je pourrais également renoncer à écrire mes propres fichiers journaux et me connecter à la place
syslog
avec une balise et une installation appropriées; si je recherche une intégration claire avec des outils d'analyse établis, je ne pense pas que je puisse faire mieux pour un canal de communication:syslog
.logrotate
me dire de lâcher le fichier et d'en ouvrir un nouveau. Je n'ai même pas besoin de parlerlogrotate
de nouveaux fichiers à faire tourner!rsyslog
seront utilisés si nécessaire, donc je n'ai pas à envisager de mettre en œuvre cette fonctionnalité moi-même.À moins que je ne fasse un format binaire personnalisé pour mon journal et même dans ce cas, je préfère les formats de texte analysables par ordinateur compatibles Syslog comme JSON. J'ai du mal à justifier mes propres fichiers journaux séparés; les outils d'analyse regardent déjà
syslog
comme un faucon.la source
Comme vous suivez les conventions FHS pour vos fichiers de configuration de package, vous devez être cohérent et stocker les fichiers journaux dans
/var/opt/package_name/log
.La FHS déclare:
et déclare également
Avoir les fichiers journaux sous
/var/opt
n'empêche pas le package de fonctionner correctement, donc l'utilisation à la/var/log
place viole clairement la norme.On ne sait pas ce que vous entendez par "est-ce découvrable?" étant donné que vos journaux personnalisés sont de toute façon susceptibles d'être gérés par des outils personnalisés, mais en supposant qu'un outil générique est conçu pour les traiter, il doit explorer l'emplacement standard des packages dégroupés comme le vôtre.
Notez que
syslog
c'est une fonctionnalité utile pour centraliser et régler la configuration de la journalisation, mais ne résout pas complètement le problème de l'emplacement de stockage des journaux lorsque vous devez le faire dans des fichiers simples avec un chemin bien connu. Certains fichiers parfois stockés dans un répertoire de journal d'application sont conçus pour être accessibles en utilisant leur chemin d'accès prévu par l'application elle-même ou par des programmes associés, par exemple un fichier stockant un ID de processus, doncsyslog
ne fonctionnera pas pour eux.la source