Ich installiere ein benutzerdefiniertes Paket in /opt/package_name
, in dem Konfigurationsdateien /etc/opt/package_name
und statische Dateien gespeichert werden /var/opt/package_name/static/
- alles gemäß den von FHS vorgeschlagenen Konventionen. [ 1 ] [ 2 ] [ 3 ]
Ich muss auch einige Protokolldateien speichern. Ich möchte, dass sie mit Analysewerkzeugen auffindbar sind, also sollten sie sich auch an einem herkömmlichen Ort befinden. Sollten diese in gehen:
/var/log/package_name
(Wie ein Systempaket, auch wenn dies ein benutzerdefiniertes Paket ist)/var/opt/package_name/log
(Nach der/var/opt
Konvention - aber ist das auffindbar?)- etwas anderes?
Antworten:
Ich würde sie hineinlegen
/var/log/package_name
; es erfüllt den Grundsatz der geringsten Überraschung besser als/var/opt/package_name/log
. Ich habe kein Zitat dafür; es stimmt einfach überein, wo ich nach Protokollen suchen würde.Ich kann auch auf das Schreiben eigener Protokolldateien verzichten und mich stattdessen
syslog
mit einem geeigneten Tag und einer entsprechenden Funktion anmelden . Wenn ich nach einer sauberen Integration mit etablierten Analysetools suche, kann ich für einen Kommunikationskanal keine besseren Ergebnisse erzielen:syslog
.logrotate
, um die Datei loszulassen und eine neue zu öffnen. Ich muss nicht einmal mehrlogrotate
von neuen Dateien erzählen, um sie zu drehen!rsyslog
werden bei Bedarf verwendet, sodass ich nicht überlegen muss, diese Funktion selbst zu implementieren.Ich bevorzuge syslog-freundliche maschinenparsbare Textformate wie JSON, es sei denn, ich schreibe ein benutzerdefiniertes Binärformat für mein Protokoll. Es fällt mir schwer, meine eigenen separaten Protokolldateien zu rechtfertigen. Analyse-Tools sehen bereits
syslog
wie ein Falke aus.quelle
Da Sie die FHS-Konventionen für Ihre Paketkonfigurationsdateien befolgen, sollten Sie konsistent sein und die Protokolldateien in speichern
/var/opt/package_name/log
.Die FHS stellt fest:
und auch Staaten
Die Protokolldateien unter zu haben,
/var/opt
hindert das Paket nicht daran, ordnungsgemäß zu funktionieren, sodass die Verwendung/var/log
eindeutig gegen den Standard verstößt.Es ist unklar, was Sie mit "ist das auffindbar?" Da benutzerdefinierte Protokolle wahrscheinlich ohnehin von benutzerdefinierten Tools verarbeitet werden, ein generisches Tool jedoch für die Verarbeitung dieser Protokolle entwickelt wurde, sollte der Standardspeicherort für entbündelte Pakete wie Ihres ermittelt werden.
Beachten Sie, dass dies
syslog
eine nützliche Funktion zum Zentralisieren und Optimieren der Protokollierungskonfiguration ist, aber das Problem, wo Protokolle gespeichert werden sollen, wenn Sie sie in einfachen Dateien mit einem bekannten Pfad speichern müssen, nicht vollständig löst. Einige Dateien, die manchmal in einem Anwendungsprotokollverzeichnis gespeichert sind, können von der Anwendung selbst oder von zugeordneten Programmen über ihren erwarteten Pfad aufgerufen werden, z. B. eine Datei, in der eine Prozess-ID gespeichert istsyslog
.quelle