Я запускаю приложение узла, используя systemd с файлом модуля. Журнал приложений можно просмотреть с помощью, journalctl -u example.com
но в какой-то момент журнал обрезается, стирая историю (которая мне нужна для отладки).
Как настроить ротацию журналов с Systemd так , что мои журналы приложение получает хранится в example.com.log.1
, и example.com.log.2
т.д. , так что я могу запросить историю моего приложения?
Это мой файл модуля:
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
чтобы просмотреть параметры, управляющие дисковым пространством системного журнала. Если у вас все еще есть вопрос, опубликуйте свое содержание/etc/systemd/journald.conf
.Ответы:
Увеличение хранилища
Если вы храните на диске, вы можете увеличить объем используемого пространства, изменив
SystemMaxUse
и / илиSystemKeepFree
. Наличие большего пространства позволит хранить больше записей.По умолчанию максимальный предел использования (
SystemMaxUse
) составляет 10% от файловой системы, а минимальное значение свободного пространства (SystemKeepFree
) составляет 15% - хотя они оба ограничены 4G.Вращение журнала
Журналы должны вращаться автоматически, когда они достигают
SystemMaxFileSize
значения, а количество журналов контролируетсяSystemMaxFiles
. Если вы предпочитаете ротацию, основанную на времени, вы можете установитьMaxFileSec
максимальное значение времени, в котором записи хранятся в одном журнале.Примечание к месту хранения / типу
С journald вы можете хранить записи журнала либо в памяти (
Storage=volatile
), либо на диске (Storage=persistent
). Выше предполагается, что вы храните журналы на диске - если это не так, «System» необходимо будет заменить на «Runtime» в указанных выше переменных.Более подробная информация доступна в
man journald.conf
.Альтернатива - передача записей журнала
Если вы уже знакомы с традиционным демоном SYSLOG, вы можете передать события журнала, установив
ForwardToSyslog
опцию (которая пересылает сообщения немедленно), или чтобы демон syslog вел себя как клиент журнала и сам получал журналы.источник