Как войти с systemd?

12

Я запускаю приложение узла, используя 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
htor
источник
1
Пожалуйста, укажите вашу версию systemd, а также вашу ОС и версию.
Марк Стосберг
1
Просмотрите, man journald.confчтобы просмотреть параметры, управляющие дисковым пространством системного журнала. Если у вас все еще есть вопрос, опубликуйте свое содержание /etc/systemd/journald.conf.
Марк Стосберг

Ответы:

7

Увеличение хранилища

Если вы храните на диске, вы можете увеличить объем используемого пространства, изменив SystemMaxUseи / или SystemKeepFree. Наличие большего пространства позволит хранить больше записей.

По умолчанию максимальный предел использования ( SystemMaxUse) составляет 10% от файловой системы, а минимальное значение свободного пространства ( SystemKeepFree) составляет 15% - хотя они оба ограничены 4G.

Вращение журнала

Журналы должны вращаться автоматически, когда они достигают SystemMaxFileSizeзначения, а количество журналов контролируется SystemMaxFiles. Если вы предпочитаете ротацию, основанную на времени, вы можете установить MaxFileSecмаксимальное значение времени, в котором записи хранятся в одном журнале.

Примечание к месту хранения / типу

С journald вы можете хранить записи журнала либо в памяти ( Storage=volatile), либо на диске ( Storage=persistent). Выше предполагается, что вы храните журналы на диске - если это не так, «System» необходимо будет заменить на «Runtime» в указанных выше переменных.

Более подробная информация доступна в man journald.conf.

Альтернатива - передача записей журнала

Если вы уже знакомы с традиционным демоном SYSLOG, вы можете передать события журнала, установив ForwardToSyslogопцию (которая пересылает сообщения немедленно), или чтобы демон syslog вел себя как клиент журнала и сам получал журналы.

DougC
источник