Estou executando um aplicativo de nó usando systemd com um arquivo de unidade. O log de aplicativos pode ser visualizado usando, journalctl -u example.com
mas o log é cortado em algum momento, apagando o histórico (necessário para a depuração).
Como faço para configurar o log rotação com systemd para que meus logs de aplicativos fica armazenado em example.com.log.1
, example.com.log.2
etc. para que eu possa consultar a história do meu aplicativo?
Este é o meu arquivo de unidade:
ExecStart=/usr/bin/node keystone.js
#Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=example.com
User=user
Group=user
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
man journald.conf
para revisar as opções que controlam o espaço em disco do diário systemd. Se você ainda tiver alguma dúvida, poste o conteúdo da sua/etc/systemd/journald.conf
.Respostas:
Aumentando o armazenamento
Se você estiver armazenando em disco, poderá aumentar a quantidade de espaço usado alterando
SystemMaxUse
e / ouSystemKeepFree
. Ter mais espaço permitiria que mais entradas fossem armazenadas.Por padrão, o limite máximo de uso (
SystemMaxUse
) é 10% do sistema de arquivos e o valor mínimo de espaço livre (SystemKeepFree
) é 15% - embora ambos estejam limitados a 4G.Rotação do diário
Os diários devem ser girados automaticamente quando atingirem o
SystemMaxFileSize
valor e o número de diários é controlado porSystemMaxFiles
. Se você preferir a rotação baseada no tempo, pode definir aMaxFileSec
para definir o tempo máximo que as entradas são armazenadas em um único diário.Nota sobre o local / tipo de armazenamento
Com o journald, você pode optar por armazenar as entradas do diário na memória (
Storage=volatile
) ou no disco (Storage=persistent
). O item acima pressupõe que você esteja armazenando diários no disco - se esse não for o caso, "Sistema" precisará ser substituído por "Tempo de execução" nas variáveis acima.Mais detalhes estão disponíveis em
man journald.conf
.Alternativa - transmissão de lançamentos contábeis manuais
Se você já está familiarizado com o daemon SYSLOG tradicional, pode transmitir os eventos do diário configurando a
ForwardToSyslog
opção (que encaminha as mensagens imediatamente) ou fazer com que o daemon syslog se comporte como um cliente do diário e obtenha os próprios logs.fonte