Dove dovrebbe scrivere un log i pacchetti / opt?


13

Sto installando un pacchetto personalizzato su /opt/package_name, archiviando file di configurazione /etc/opt/package_namee file statici in /var/opt/package_name/static/- tutto seguendo le convenzioni suggerite da FHS. [ 1 ] [ 2 ] [ 3 ]

Devo anche archiviare alcuni file di registro. Voglio che siano rilevabili dagli strumenti di analisi, quindi dovrebbero anche trovarsi in una posizione convenzionale. Questi dovrebbero entrare:

  • /var/log/package_name (come un pacchetto di sistema, anche se si tratta di un pacchetto personalizzato)
  • /var/opt/package_name/log(seguendo la /var/optconvenzione - ma è rilevabile?)
  • qualcos'altro?

Hai in mente un esempio di strumento di analisi che scansioni / var / log?
Fontejedi

5
Perché la risposta non è syslog?
Giosuè

Risposte:


19

Li metterei dentro /var/log/package_name; soddisfa il principio del minimo sorpresa meglio di /var/opt/package_name/log. Non ho una citazione per questo; corrisponde semplicemente dove cercare i registri.

Potrei anche rinunciare a scrivere i miei file di registro e accedere invece syslogcon un tag e una funzione appropriati; se sto cercando un'integrazione pulita con strumenti di analisi consolidati, non credo di poter fare di meglio per un canale di comunicazione:

  • Ogni strumento generico con "analisi dei registri" come funzionalità elencata è già attivo syslog.
  • Le semantiche di rilascio e rotazione dei file di registro sono gestite per me; Non devo impostare un meccanismo per logrotatedirmi di lasciare andare il file e aprirne uno nuovo. Non devo nemmeno dire logrotatedi nuovi file da ruotare!
  • Lo scarico dei registri sui server di registrazione centrali viene gestito per me, se il sito lo richiede; rsyslogSe necessario, verranno utilizzati strumenti esistenti come , quindi non devo contemplare l'implementazione di questa funzione.
  • I controlli di accesso (POSIX e, ad esempio SELinux) intorno ai file di registro sono già gestiti, quindi non ho bisogno di prestare molta attenzione alla semantica della sicurezza specifica della distribuzione.

A meno che non stia facendo un formato binario personalizzato per il mio registro e anche in questo caso, preferisco formati di testo analizzabili in macchina come syslog come JSON. Ho difficoltà a giustificare i miei file di registro separati; gli strumenti di analisi guardano già syslogcome un falco.


8

Poiché si stanno seguendo le convenzioni FHS per i file di configurazione del pacchetto, è necessario essere coerenti e archiviare i file di registro /var/opt/package_name/log.

L'FHS afferma:

I dati variabili dei pacchetti in / opt devono essere installati in / var / opt /

e afferma anche

Non possono esistere altri file di pacchetto al di fuori delle gerarchie / opt, / var / opt e / etc / opt, ad eccezione di quei file di pacchetto che devono risiedere in posizioni specifiche all'interno dell'albero del filesystem per funzionare correttamente. Ad esempio, i file di blocco dei dispositivi devono essere collocati in / var / lock e i dispositivi devono trovarsi in / dev.

Avere i file di registro sotto /var/optnon impedisce al pacchetto di funzionare correttamente, quindi l'utilizzo /var/logviola chiaramente lo standard.

Non è chiaro cosa intendi con "è questo individuabile?" poiché è probabile che i log personalizzati vengano gestiti da strumenti personalizzati, ma supponendo che uno strumento generico sia progettato per elaborarli, è consigliabile esplorare la posizione standard per i pacchetti disaggregati come il tuo.

Si noti che syslogè una funzione utile per centralizzare e ottimizzare la configurazione della registrazione, ma non risolve completamente il problema su dove archiviare i registri quando è necessario farlo in file semplici con un percorso ben noto. Alcuni file talvolta archiviati in una directory del registro dell'applicazione sono progettati per essere accessibili utilizzando il percorso previsto dall'applicazione stessa o dai programmi associati, ad esempio un file che memorizza un ID processo, quindi syslognon funzionerà per loro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.