如何使用systemd logrotate?


12

我正在使用带有单位文件的systemd运行节点应用程序。可以使用查看应用日志,journalctl -u example.com但是在某些时候日志被剪切掉了,从而删除了历史记录(调试时需要此记录)。

如何使用systemd配置日志轮换,以便将我的应用程序日志存储在等中example.com.log.1example.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
请包括您的系统版本以及您的操作系统和版本。
Mark Stosberg '17

1
查看man journald.conf以查看控制systemd日志的磁盘空间的选项。如果仍有问题,请张贴您的内容/etc/systemd/journald.conf
Mark Stosberg '17

Answers:


7

增加存储量

如果要存储到磁盘,则可以通过更改SystemMaxUse和/或来增加使用的空间量SystemKeepFree。拥有更多空间将允许存储更多条目。

默认情况下,最大使用限制(SystemMaxUse)为文件系统的10%,最小可用空间(SystemKeepFree)值为15%-尽管它们都限制为4G。

轴颈旋转

日记帐达到该SystemMaxFileSize值时应自动旋转,并且日记帐的数量由来控制SystemMaxFiles。如果您更喜欢基于时间的轮换,则可以设置a MaxFileSec来设置将最大时间条目存储在单个日志中。

关于存储位置/类型的注意事项

使用日志记录时,您可以选择将日志记录条目存储在内存(Storage=volatile)或磁盘(Storage=persistent)中。上面假设您将日志存储在磁盘上-如果不是这种情况,则需要在上述变量中​​将“系统”替换为“运行系统”。

有关更多详细信息,请参见man journald.conf

替代方法-传递日记帐分录

如果您已经熟悉传统的SYSLOG守护程序,则可以通过设置ForwardToSyslog选项(立即转发消息)来传递日志事件,或者使syslog守护程序具有类似于日志客户端的功能,并自己获取日志。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.