Linux 服务停止日志记录

问题描述 投票:0回答:1

我正在运行一项服务。该服务调用一个长时间运行的 python 脚本,该脚本“打印”一些状态消息。我可以通过

journalctl -u myservice.service
查看这些状态消息。但大约 6 小时后,我无法再看到该服务的新输出。

如果我跑步

systemctl status myservice.service
。我可以看出服务仍在运行。

我怀疑它必须对日志记录做一些事情,所以我将日志输出的时间间隔从每分钟一次减少到每10秒一次。公平地说,问题仍然出现,但仅仅 1 小时后。因此,似乎我在日志空间或日志轮换方面遇到了问题。有人可以帮我解决这个问题吗?

我开始查看

journald.conf
文件,内容如下所示。

[Journal]
#Storage=auto
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitInterval=30s
#RateLimitBurst=1000
#SystemMaxUse=
#SystemKeepFree=
#SystemMaxFileSize=
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
#MaxRetentionSec=
#MaxFileSec=1month
#ForwardToSyslog=yes
#ForwardToKMsg=no
#ForwardToConsole=no
#ForwardToWall=yes
#TTYPath=/dev/console
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info
#MaxLevelWall=emerg
#LineMax=48K

我尝试更改以下内容,然后运行

sudo systemctl restart systemd-journald.service
但没有成功。

[Journal]
#Storage=auto
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitInterval=30s
#RateLimitBurst=1000
SystemMaxUse=1G            # Increase to allow more disk space for logging
#SystemKeepFree=
#SystemMaxFileSize=
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
MaxRetentionSec=1month     # Retain journal files for up to one month
MaxFileSec=1week           # Keep individual journal files for up to one week
#ForwardToSyslog=yes
#ForwardToKMsg=no
#ForwardToConsole=no
#ForwardToWall=yes
#TTYPath=/dev/console
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info
#MaxLevelWall=emerg
#LineMax=48K

有什么想法吗?

python linux service systemd-journald
1个回答
0
投票

我遇到了类似的问题,由于 RateLimitInterval 窗口内收到的消息量,我的服务日志被抑制。但如果总是正好 6 小时...就很奇怪了。
是否有 RateLimitInterval / RateLimitBurst 在某处配置错误?您是否注意到系统日志/日志中有任何抑制消息?类似于

systemd-journal[xxxx]: Suppressed <number> messages from <your_service>.

这很奇怪,因为我认为这些参数的默认值很好,但与您的问题不匹配...也许您的服务通过
LogRateLimitIntervalSec=
和/或
LogRateLimitBurst=
为自身提供速率限制?因为在这种情况下,这些值会覆盖日志配置中指定的设置。
如果您看到抑制消息,您可以尝试设置

RateLimitInterval=0s
RateLimitBurst=0

完全禁用它们(只是为了调试:那么你应该调整它),也许你还可以增加

的大小
RuntimeMaxUse

并且,如果您认为 SystemMaxUse 和 RuntimeMaxUse 配置的默认值的八分之一还不够,您还可以增加

SystemMaxFileSize
RuntimeMaxFileSize

(参考。https://www.freedesktop.org/software/systemd/man/latest/journald.conf.html

© www.soinside.com 2019 - 2024. All rights reserved.