Dove Discourse memorizza e mostra i log?

Quando si risolvono problemi o errori con Discourse, è importante consultare i log. Ecco un elenco di dove si trovano e cosa contengono.

Il dominio del tuo sito

Log di amministrazione mostrati nell’interfaccia utente

Il pannello di amministrazione di Discourse contiene diverse forme di registrazione:

L’interfaccia utente web di Logster

Ogni istanza di Discourse viene fornita con un visualizzatore di log GUI. Si trova a: https://=DOMAIN=/logs

Nota: se si utilizza un piano ospitato, questa pagina potrebbe essere nascosta. Contattare invece il supporto quando si verifica questo tipo di problema!

Se si sta indagando su un misterioso errore 500 sui forum, si dovrebbe sempre provare prima questo punto!

Selezionare una riga di errore per ottenere i dettagli ad essa relativi. Potrebbe essere richiesto di fornire il contenuto delle schede env e backtrace qui su Meta.

I log di Rails / Pitchfork

Ruby on Rails contiene un log molto verboso che viene scritto su disco. Inoltre, il server web pitchfork (un fork di unicorn) scrive i log su disco.

Per accedervi:

cd /var/discourse
./launcher enter app
cd /shared/log/rails

Questa cartella contiene “production.log” e “unicorn.stderr.log” oltre ai file di log “ruotati”. È possibile utilizzare strumenti Unix standard come less production.log per ispezionarli.

Questa cartella è anche disponibile senza entrare nel container come /var/discourse/shared/standalone/log/rails.

I log di NGINX

Occasionalmente i log di NGINX possono contenere alcuni suggerimenti aggiuntivi, si trovano in:

cd /var/discourse
./launcher enter app
cd /var/log/nginx

I file access.log e error.log si troveranno lì, così come una serie di file compressi ruotati. L’esecuzione di less access.log.2.gz decomprimerà e visualizzerà automaticamente il file di log.

Questa directory è disponibile anche sull’host al percorso /var/discourse/shared/standalone/log/var-log/nginx.

Log di Redis

Sebbene sia molto raro dover vedere i log di Redis, se necessario, questi vengono indirizzati a /var/log/redis all’interno del container e a /var/discourse/shared/standalone/log/var-log/redis sull’host. Le voci di log più recenti si trovano nel file current in quella directory.

Log di PostgreSQL

Se è necessario consultare i log del server di database, si trovano in /var/log/postgres all’interno del container e in /var/discourse/shared/standalone/log/var-log/postgres sull’host; le voci più recenti si trovano nel file current in quella directory.

46 Mi Piace

Is there any option/console in admin ui to run these command and get logs in web? I do not see any option.

2 Mi Piace

I have also found this log to be useful:

./launcher logs app

This shows any errors during the build process if you don’t know which app to look at.

7 Mi Piace

I don’t have a postgres folder in /var/log/postgres or /var/discourse/shared/standalone/log/var-log/postgres. Is there some configuration I need to make to generate DB logs?

1 Mi Piace

If You’re using a 2 container install or external postgres, then the logs will not be there.

For 2 container install, the logs should be in the
/var/discourse/shared/data/log/var-log/postgres

For external postgres, your logs should be with the managed db provider.

4 Mi Piace

Quando un plugin causa un errore durante una ricostruzione, dove si trovano i log che mostrano l’errore specifico all’interno del plugin?

1 Mi Piace

Vivono nella finestra del terminale in cui hai eseguito la ricostruzione. Se non hai abbastanza scrollback nel tuo terminale, dovrai prestare attenzione durante la ricostruzione (o cercare su Google come aumentare il rollback, o reindirizzare l’output in un punto in cui puoi trovarlo in seguito).

1 Mi Piace

Il segnaposto non sembra funzionare nell’elenco

1 Mi Piace

Sto cercando di capire quali di questi log contengano dati personali e per quanto tempo vengano conservati. Sembra che:

  • I log delle email vengano conservati per 90 giorni per impostazione predefinita
  • I log di Rails contengano indirizzi IP e vengano ruotati dopo 7 giorni (da \* logrotate.d )
  • Lo stesso si applichi a NGINX
  • Staff/Screening possa contenere dati personali e venga conservato per sempre

Mi sto perdendo qualcosa?

Anche i log degli errori (discourse.example.com/logs) possono contenere dati personali? In tal caso, vengono ruotati?
I log dei container possono contenere informazioni personali? (cioè \\./launcher logs app\` ecc.) Immagino che questi debbano essere configurati manualmente tramite docker per la rotazione.