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