Syslog 丢失部分日志是生产环境中较常见的问题,通常不是“被删除了”,而是在采集、传输或写入的某个环节被丢弃。下面按常见原因分类说明。
表现:
/var/log/messages 中缺一段时间相关配置(rsyslog):
$SystemLogRateLimitInterval 0
$SystemLogRateLimitBurst 0
或
module(load="imuxsock" SocketBacklog="65536")
rsyslog 默认会限制:
默认行为:
查看是否触发:
journalctl -u rsyslog | grep -i ratelimit
关闭限流:
$SystemLogRateLimitInterval 0
$SystemLogRateLimitBurst 0
UDP 514解决:
*.* @@logserver:514
或
*.* :omrelp:logserver:2514
建议配置本地队列:
*.* @@logserver:514
$ActionQueueType LinkedList
$ActionQueueFileName syslogqueue
$ActionResumeRetryCount -1
$ActionQueueSaveOnShutdown on
df -h
df -i
正确示例:
/var/log/messages {
rotate 7
daily
missingok
notifempty
postrotate
systemctl kill -s HUP rsyslog
endscript
}
stop例如:
:msg, contains, "debug" stop
local0,但配置只收 authdocker logs 里解决:
-v /dev/log:/dev/log
# 是否限流
journalctl -u rsyslog | grep -i rate
# 磁盘
df -h; df -i
# 队列
ps aux | grep rsyslog
# 配置检查
rsyslogd -N1
Syslog 丢日志,90% 是:限流 + UDP + 无队列 + 磁盘问题
如果你能告诉我:
我可以直接给你一份对应配置。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。