Salvare i log in un file separato

Introduzione

Nella configurazione predefinita, Weewx scrive i messaggi di log nel log di sistema. Con alcune modifiche alla configurazione del sistema di logging, puoi inserire tutti i messaggi di Weewx in un file di registro separato. In alcuni casi questo rende più facile monitorare Weewx o più istanze di Weewx.

Per fare in modo che ciò accada è necessario modificare due parti del sistema, il logging (tipicamente rsyslog) e la rotazione dei log (tipicamente logrotate).

Queste istruzioni presuppongono che Weewx sia stato installato dal pacchetto DEB o RPM. Se Weewx è stato installato usando setup.py su /home/weewx, sostituisci /etc/weewx con /home/weewx/util nei comandi seguenti.

rsyslog

  1. Chiedi a rsyslog di riconoscere i messaggi di log da Weewx e di metterli in un file separato:
sudo ln -s /etc/weewx/rsyslog.d/weewx.conf /etc/rsyslog.d
  1. Riavvia il sistema di logging:
sudo /etc/init.d/rsyslog stop
sudo /etc/init.d/rsyslog start

L'ordine dei file è importante in rsyslog.d. Se trovi che i messaggi di log di Weewx vanno sia al file di log di Weewx che al file di log syslog/messages, potresti dover far apparire weewx.conf prima dei valori predefiniti di syslog.conf. Per esempio,

sudo ln -s /etc/weewx/rsyslog.d/weewx.conf /etc/rsyslog.d/10-weewx.conf

logrotate

  1. Chiedi a logrotate di ruotare i file di log di Weewx:
sudo ln -s /etc/weewx/logrotate.d/weewx /etc/logrotate.d

Nota : logrotate ha specifici requisiti di proprietà e accesso ai file per i file di configurazione in /etc/logrotate.d (incluso il file di origine per tutti i file di configurazione collegati in /etc/logrotate.d). Logrotate v3.8.x e versioni successive richiedono che questi file di configurazione siano di proprietà di root o di un altro utente con uid 0. I file di configurazione devono avere i permessi 644 (lettura-scrittura dal proprietario, sola lettura dal gruppo e altri).

  1. Conferma il corretto funzionamento del logrotate con i file di log di Weewx:
sudo logrotate -d -f /etc/logrotate.d/weewx
Istanze multiple di Weewx

Qualsiasi numero di istanze di Weewx può essere eseguito da una singola installazione di Weewx, manualmente utilizzando weewxd o tramite script come il file weewx-multi. In questi casi può essere utile indirizzare l'output del log di Weewx da ciascuna istanza a un file separato. Le istruzioni per farlo dipendono dall'approccio utilizzato per eseguire più istanze di Weewx.

Usando weewxd

Considera il caso in cui vengono eseguite due istanze di Weewx; una per una stazione Davis Vantage Pro e l'altra per una stazione Rainwise utilizzando rispettivamente i file di configurazione /etc/weewx/vantage.conf e /etc/weewx/rainwise.conf. In questo caso configureremo il sistema in modo tale che l'output del log Weewx per la stazione Davis Vantage Pro sia scritto in /var/log/weewx/vantage.log e l'output del log per la stazione Rainwise sia scritto in /var/log/weewx/rainwise.log.

  1. Assicurati che l'output del log di ogni istanza sia identificato separatamente avviando ogni istanza di Weewx in questo modo:
sudo weewxd --log-label weewx-vantage /etc/weewx/vantage.conf
sudo weewxd --log-label weewx-rainwise /etc/weewx/rainwise.conf
  1. Usa una configurazione syslog /etc/rsyslog.d/weewx.conf come questa:
:programname,startswith,"wee_" /var/log/weewx/weewx.log
:programname,startswith,"wee_" ~
:programname,isequal,"weewx-vantage" /var/log/weewx/vantage.log
:programname,isequal,"weewx-vantage" ~
:programname,isequal,"weewx-rainwise" /var/log/weewx/rainwise.log
:programname,isequal,"weewx-rainwise" ~
  1. Assicurati che la directory dei log di Weewx esista:
sudo mkdir /var/log/weewx
  1. Usa una configurazione logrotate /etc/logrotate.d/weewx simile a questa:
/var/log/weewx/*.log {
  weekly
  missingok
  rotate 52
  compress
  delaycompress
  notifempty
}
  1. Riavvia il sistema di logging:
sudo /etc/init.d/rsyslog stop
sudo /etc/init.d/rsyslog start

Usando weewx-multi

Considera il caso usando le due istanze Weewx di esempio controllate dallo script weewx-multi utilizzato nella guida Eseguire istanze multiple. Un'istanza per una stazione Davis Vantage Pro nota come 'home' e l'altra per una stazione Acurite nota come 'paddock' utilizzando i file di configurazione rispettivamente /etc/weewx/home.conf e /etc/weewx/paddock.conf. In questo caso configureremo il sistema in modo tale che l'output del log Weewx per la stazione Davis Vantage Pro sia scritto in /var/log/weewx/home.log e l'output del log per la stazione Acurite sia scritto in /var/log/weewx/paddock.log.

In virtù dello script weewx-multi, l'output del log per le istanze home e paddock è già identificato separatamente rispettivamente come weewx-home e weewx-paddock.

  1. Usa una configurazione syslog /etc/rsyslog.d/weewx.conf come questa:
:programname,startswith,"wee_" /var/log/weewx/weewx.log
:programname,startswith,"wee_" ~
:programname,isequal,"weewx-home" /var/log/weewx/home.log
:programname,isequal,"weewx-home" ~
:programname,isequal,"weewx-paddock" /var/log/weewx/paddock.log
:programname,isequal,"weewx-paddock" ~
  1. Assicurati che la directory dei log di Weewx esista:
sudo mkdir /var/log/weewx
  1. Usa una configurazione logrotate /etc/logrotate.d/weewx simile a questa:
/var/log/weewx/*.log {
  weekly
  missingok
  rotate 52
  compress
  delaycompress
  notifempty
}
  1. Riavvia il sistema di logging:
sudo /etc/init.d/rsyslog stop
sudo /etc/init.d/rsyslog start
Log remoto

A volte è utile inviare i messaggi di log di Weewx a un server diverso. Questo può essere particolarmente utile per eliminare le scritture sul disco locale.

Per fare ciò, specifica il server remoto nel file /etc/rsyslog.conf del computer che esegue Weewx. Quindi configura il server remoto per accettare i messaggi di registro del computer che esegue Weewx.

Autore: gjr80