Systemd中“ journalctl服务”的限制日志-Centos 7

时间:2019-04-03 11:04:18

标签: logging service centos7 systemd systemd-journald

我在**/etc/systemd/sysem/horses.service**有服务

[Unit]
Description=Description for sample script goes here
After=rc-local.service

[Service]
Type=simple
ExecStart=/opt/horses/startSanic2.sh
TimeoutStartSec=0
Environment="REDIS_HOST=192.168.150.220"
Environment="REDIS_PORT=6379"

[Install]
WantedBy=default.target

它使用以下代码运行shell脚本:

#!/bin/bash
gunicorn horses.server:app --bind 0.0.0.0:9000 --worker-class sanic.worker.GunicornWorker --reload

我成功运行了它,并且可以看到该服务的日志正在写入并且可以从以下位置读取:

journalctl -u horses.service

如果我运行该命令-我可以看到horses.service记录的所有事件。

我对systemd服务的日志没有任何经验。 我非常担心的是,因为此服务将一直运行-例如可以设置将信息(日志)保留在journalctl -u horses.service中,例如仅保留最近10天,或者定义一些回合建议使用日志记录或任​​何其他方法,以确保日志不会写满,因为我确实希望整个磁盘(分区)写满。 请建议我如何限制日志。

提前谢谢!!!!!!!

1 个答案:

答案 0 :(得分:1)

运行journalctl -u所看到的是应用程序输出到控制台(或错误)的过程,systemd会为您解决这些问题。

可以在/etc/systemd/journald.conf上找到全局配置,默认值将为您服务,因此您可以使用默认值。

顺便说一句,以下是可用于更改日志记录行为的配置:

  • SystemKeepFree:其他应用程序剩余多少磁盘空间 (默认= 15%)。

  • SystemMaxuse:最大磁盘空间使用量(默认= 10%)。

默认情况下,systemd保留日志尽可能长的时间(受上述规则限制),但是,如果需要基于轮换的配置,则可以使用MaxRetentionSec

同样,您不必担心systemd的磁盘使用情况,只需使用默认配置即可。