在 systemd - Centos 7 中限制 "journalctl services" 的日志

Limit logs for "journalctl services" in systemd - Centos 7

我在**/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 服务的日志没有任何经验。 我非常担心的是,因为这项服务将一直 运行ning - 例如是否可以设置为仅在 journalctl -u horses.service 中保留信息(日志)例如最近 10天,或者定义一些循环日志记录或任​​何建议的方法,以确保我的日志不会被填满,因为我确实想以我的整个磁盘(分区)填满结束。 请建议我如何限制日志。

提前致谢!!!!!!!

您在 运行 journalctl -u 看到的是您的应用程序输出到控制台(或错误),systemd 会为您处理它们。

可以在 /etc/systemd/journald.conf 找到全局配置,默认值会满足您的需求,所以您可以使用默认值。

顺便说一句,您可以使用以下配置来改变日志记录行为:

  • SystemKeepFree: 有多少磁盘space留给其他应用程序 (默认值 = 15%)。

  • SystemMaxuse:最大磁盘 space 使用率(默认 = 10%)。

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

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