Como logar com o systemd?

7

Estou executando um aplicativo de nó usando o 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 (que eu preciso para depuração).

Como faço para configurar a rotação de log com o systemd para que meus logs do aplicativo sejam armazenados em example.com.log.1 , example.com.log.2 etc. para que eu possa consultar o histórico 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
    
por htor 24.04.2017 / 16:39

1 resposta

3

Aumentando o armazenamento

Se você estiver armazenando em disco, poderá aumentar a quantidade de espaço usada alterando SystemMaxUse e / ou SystemKeepFree . Ter mais espaço permitiria que mais entradas fossem armazenadas.

Por padrão, o limite máximo de uso ( SystemMaxUse ) é de 10% do sistema de arquivos, e o valor mínimo de espaço livre ( SystemKeepFree ) é de 15% - embora ambos sejam limitados a 4G.

Rotação do diário

Os diários devem ser rotacionados automaticamente quando atingirem o valor de SystemMaxFileSize , e o número de periódicos é controlado por SystemMaxFiles . Se você preferir a rotação baseada em tempo, você pode definir um MaxFileSec para definir o tempo máximo que as entradas são armazenadas em um único diário.

Observação sobre localização / tipo de armazenamento

Com o journald, você pode optar por armazenar os lançamentos contidos na memória ( Storage=volatile ) ou no disco ( Storage=persistent ). O acima assume que você está armazenando diários no disco - se este não for o caso, "System" precisará ser substituído por "Runtime" nas variáveis acima.

Mais detalhes estão disponíveis em man journald.conf .

Alternativa - passando as entradas de diário

Se você já estiver familiarizado com o daemon SYSLOG tradicional, poderá passar os eventos de diário definindo a opção ForwardToSyslog (que encaminha as mensagens imediatamente) ou fazer com que o daemon syslog se comporte como um cliente de diário e busque os próprios logs.

    
por 06.03.2018 / 22:32