Як logrotate з 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

1
Будь ласка, включіть вашу системну версію, а також вашу ОС та версію.
Марк Стосберг

1
Перегляньте, man journald.confщоб переглянути варіанти, що управляють дисковим простором системного журналу. Якщо у вас все ще виникає питання, опублікуйте вміст свого /etc/systemd/journald.conf.
Марк Стосберг

Відповіді:


7

Збільшення зберігання

Якщо ви зберігаєте на диску, ви можете збільшити кількість місця, що використовується, змінивши SystemMaxUseта / або SystemKeepFree. Маючи більше місця, це дозволить зберігати більше записів.

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

Ротація журналу

Журнали повинні повертатися автоматично, коли вони досягають SystemMaxFileSizeзначення, а кількість журналів контролюється SystemMaxFiles. Якщо ви віддаєте перевагу обертанню, заснованому на часі, ви можете встановити а, MaxFileSecщоб встановити, що максимальний час зберігається в одному журналі.

Примітка про місце / тип зберігання

За допомогою журналу ви можете зберігати записи журналу або в пам'яті ( Storage=volatile), або на диску ( Storage=persistent). Вищенаведене передбачає, що ви зберігаєте журнали на диску - якщо це не так, "Систему" потрібно буде замінити на "Час виконання" у наведених вище змінних.

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

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

Якщо ви вже знайомі з традиційним демоном SYSLOG, ви можете передати події журналу, встановивши ForwardToSyslogпараметр (який пересилає повідомлення негайно) або мати демона syslog, як клієнт журналу, та отримати самі журнали.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.