【问题标题】:Limit logs for "journalctl services" in systemd - Centos 7限制 systemd 中“journalctl 服务”的日志 - Centos 7
【发布时间】:2019-08-24 21:25:57
【问题描述】:

我在**/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 天,或者定义一些回合日志记录或任​​何建议的方法,以确保我的日志不会满,因为我确实想以我的整个磁盘(分区)满结束。 请建议我如何限制日志。

提前谢谢你!!!!!!!

【问题讨论】:

    标签: logging service centos7 systemd systemd-journald


    【解决方案1】:

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

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

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

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

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

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

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

    【讨论】:

    • 感谢您的回复。我的配置如下:#SystemMaxUse= #SystemKeepFree= 这是否意味着它具有默认值 15% 和 10%?还有可能我创建一些新日志,其中当前登录 journald.conf 的所有请求(服务输出)也可以在我的一些新日志文件中看到。?例如,在我的 horses.service 中是否可以添加类似这样的内容(或正确的语法) [Service] Type=simple ExecStart=/opt/horses/startSanic2.sh >> "/var/log/horses /马"+date +"%s" 2>&1 .可能我错过了什么,但真的不确定
    • 是的,即使带有注释配置 systemd 仍然使用默认值。对于您问题的第二部分StandardOutput=file:/var/log/horses/horses,您也可以对StandardError 执行相同的操作。 systemd 将日期/时间信息添加到日志中,因此您无需手动执行此操作。您可以通过--since--until 开关按日期归档日志。示例:journalctl --since "2019-04-01 18:22:34" --until "2019-04-04 16:22:19"
    • 嗨 Remisa - 在这种情况下,它只会在我重新启动服务时为我创建一个新文件,对吗?这意味着,例如,如果我的服务在三个月内没有重新启动就处于活动状态,这意味着我将拥有一个可能很大的三个月日志?正确的?或者我可以限制这个 StandardOutput=file: 日志的大小和数量???如果您也可以为此提供我的答案,请提供。谢谢。我标记了你的回复。
    • @Dejan:我不确定,但很有可能轮换规则也将应用于您的文件(因为它使用默认日志存储)。您可以通过设置SystemMaxFileSize 来限制文件大小。将其设置为少量并检查您的自定义文件是否发生旋转。
    • 嗨 Remisa 好的,因为某些配置是在服务文件中完成的,如果我错了,请纠正我:[Service] Type=simple ExecStart=/opt/horses/startSanic2.sh StandardOutput=file:/var/log/horses/horsesout StandardError=file:/var/log/horses/horseserr 而如果我想更改这些日志的默认文件大小,我会更改它在/etc/systemd/journald.conf。正确的?当然这些日志文件不会被自动删除正确吗?对于他们来说,没有应用 SystemMaxuse 和 SystemKeepFree 规则?谢谢,一切顺利
    猜你喜欢
    • 2018-09-24
    • 2017-08-29
    • 2022-11-03
    • 2019-03-12
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多