Onde o Discourse armazena e exibe logs?

Ao solucionar problemas ou erros com o Discourse, é importante consultar seus registros (logs). Aqui está uma lista de onde eles estão localizados e o que contêm.

Seu domínio do site

Registros de administração exibidos na IU

O painel de administração do Discourse contém várias formas de registro:

A IU do visualizador de logs Logster

Toda instância do Discourse é fornecida com um visualizador de logs em GUI. Ele está localizado em: https://=DOMAIN=/logs

Nota: se você estiver em um plano hospedado, esta página pode estar oculta para você. Em vez disso, entre em contato com o suporte quando estiver com esse tipo de problema!

Se você estiver investigando um misterioso erro 500 nos fóruns, você deve sempre tentar este local primeiro!

Selecione uma linha de erro para obter detalhes sobre ela. Você pode ser solicitado a fornecer o conteúdo das abas env e backtrace aqui no Meta.

Os logs Rails / Pitchfork

O Ruby on Rails contém um log muito detalhado que é escrito no disco. Além disso, o servidor web pitchfork (um fork do unicorn) também registra no disco.

Para acessar:

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

Este diretório contém “production.log” e “unicorn.stderr.log”, além de arquivos de log “rotacionados”. Você pode usar ferramentas Unix padrão como less production.log para inspecioná-los.

Este diretório também está disponível sem entrar no contêiner como /var/discourse/shared/standalone/log/rails.

Os logs NGINX

Ocasionalmente, os logs do NGINX podem conter algumas dicas extras, eles estão localizados em:

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

Os arquivos access.log e error.log estarão lá, bem como vários arquivos compactados rotacionados. Executar less access.log.2.gz descompactará e exibirá o arquivo de log automaticamente para você.

Este diretório também está disponível no host em /var/discourse/shared/standalone/log/var-log/nginx.

Logs do Redis

Embora seja muito incomum precisar ver os logs do Redis, se você precisar deles, eles vão para /var/log/redis dentro do contêiner e /var/discourse/shared/standalone/log/var-log/redis no host. As entradas de log mais recentes estarão no arquivo current naquele diretório.

Logs do PostgreSQL

Se você precisar consultar os logs do servidor de banco de dados, eles estão em /var/log/postgres dentro do contêiner e /var/discourse/shared/standalone/log/var-log/postgres no host; as entradas mais recentes estão no arquivo current naquele diretório.

46 curtidas

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

2 curtidas

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 curtidas

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 curtida

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 curtidas

Quando um plugin causa uma falha durante uma reconstrução, onde ficam os logs que mostram o erro específico dentro do plugin?

1 curtida

Eles vivem na janela do terminal onde você executou a reconstrução. Se você não tiver scrollback suficiente no seu terminal, terá que prestar atenção durante a reconstrução (ou pesquisar para descobrir como aumentar o rollback, ou redirecionar a saída para um local onde você possa encontrá-la mais tarde).

1 curtida

O placeholder não parece funcionar na lista

1 curtida

Estou tentando descobrir quais destes logs contêm dados pessoais e por quanto tempo são retidos. Parece que:

  • Logs de e-mail são retidos por 90 dias por padrão
  • Logs do Rails contêm IPs e são rotacionados após 7 dias (de \* logrotate.d)
  • O mesmo se aplica ao NGINX
  • Staff/Screening pode conter dados pessoais e são retidos para sempre

Estou esquecendo de algo aqui?

Os logs de erro (discourse.example.com/logs) também podem conter dados pessoais? Se sim, eles são rotacionados?
Os logs do contêiner podem conter informações pessoais? (ou seja, \\./launcher logs app\` etc.) Eu acho que estes precisam ser configurados manualmente via docker para rotacionar.