docker日志出现无法检索问题的解决

docker日志出现无法检索问题的解决,第1张

docker日志出现无法检索问题的解决

本文详细介绍了如何处理docker日志找不到的问题。原文根据示例代码非常详细,对大家的学习或工作都有一定的参考价值。有需要的朋友会陪我一起学习。

在日常检查服务的情况下,当我从portainer进来查看船只日志时,我发现右上角有一个鲜红的感叹号:无法检索集装箱日志。

由于之前从未出现过这样的问题,我先去服务器放指令dockerlogs-fcontainerID读取日志,发现日志无法移动,或者在某个时间卡在日志记录中。

想想吧。应该不是复制服务日志的问题。我先在谷歌上搜了一下,发现和问题不符。因为日志有时可以收集和显示信息,但有些日志不能。应该是docker设置的日志模块有问题。

本来想设置一整套EFK,但是觉得现在日志量不够大,就没改docker的日志模块,还是默认的journald。

[root@ad-officialxiaoxiao]#dockerinfo|grepLogging WARNING:You'renotusingthedefaultseccompprofile LoggingDriver:journald

Journald的官方在线文本文档中有一条是这样写的:

manjournald.conf...RateLimitInterval=,RateLimitBurst=配置应用于系统上生成的所有消息的速率限制。如果在RateLimitInterval=定义的时间间隔内,服务记录的消息多于RateLimitBurst=中指定的数量,则该间隔内的所有后续消息都将被丢弃,直到该间隔结束。生成关于丢弃消息数量的消息。这种速率限制适用于每个服务,因此记录日志的两个服务不会干扰彼此的限制。默认30秒1000条消息。RateLimitInterval=的时间规格可以用以下单位指定:“s”、“min”、“h”、“ms”、“us”。要关闭任何类型的速率限制,请将任一值设定为0。...

这里写的是默认30秒内只接受1000条日志。看到这里就明白了。由于前段时间docker刚刚公布了一个类似3G服务的单日日志文件大小,来其他服务的日志也受到了伤害,很多日志都被journald丢失了,所以大家换设备是没有问题的。

打开/etc/etc/systemd/journald.conf文件,将RateLimitBurst从默认的1000更改为5000,并根据其当前日志输出进行调整:

[root@ad-officiallog]#cat/etc/systemd/journald.conf #Thisfileispartofsystemd. # #systemdisfreesoftware;youcanredistributeitand/ormodifyit #underthetermsoftheGNULesserGeneralPublicLicenseaspublishedby #theFreeSoftwareFoundation;eitherversion2.1oftheLicense,or #(atyouroption)anylaterversion. # #Entriesinthisfileshowthecompiletimedefaults. #Youcanchangesettingsbyeditingthisfile. #Defaultscanberestoredbysimplydeletingthisfile. # #Seejournald.conf(5)fordetails. [Journal] #Storage=auto #Compress=yes #Seal=yes #SplitMode=uid #SyncIntervalSec=5m #RateLimitInterval=30s RateLimitBurst=5000 #SystemMaxUse= #SystemKeepFree= #SystemMaxFileSize= #RuntimeMaxUse= #RuntimeKeepFree= #RuntimeMaxFileSize= #MaxRetentionSec= #MaxFileSec=1米onth ForwardToSyslog=no #ForwardToKMsg=no #ForwardToConsole=no ForwardToWall=no #TTYPath=/dev/console #MaxLevelStore=debug #MaxLevelSyslog=debug #MaxLevelKMsg=notice #MaxLevelConsole=info #MaxLevelWall=emerg #LineMax=48K

对了,把ForwardToSyslog和ForwardToWall设置为no,因为默认是yes,会导致大家清除journal的日志文件,但是Syslog里的并没有消除,硬盘会逐渐被填满。

然后重新启动journald来恢复应用程序:systemCTLrestartsystemd-journald.service。

文章内容就这么多了。期待对大家的学习有所帮助,也期待大家的应用。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/774679.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-03
下一篇2022-05-03

发表评论

登录后才能评论

评论列表(0条)

    保存