服务支持

系统更新

当前位置  >  首页  >  服务支持  >  系统更新

更新ID(KYBA-202201-1008

更新简述:
rsyslog满足日志切割规则后,rsyslog未释放已删除文件的资源。
影响操作系统版本:
银河麒麟高级服务器操作系统(飞腾版)V10(SP1)0518 银河麒麟高级服务器操作系统(鲲鹏版)V10(SP1)0518 银河麒麟高级服务器操作系统(兆芯版)V10(SP1)0518 银河麒麟高级服务器操作系统(海光版)V10(SP1)0518 银河麒麟高级服务器操作系统(龙芯版)V10(SP1)(mips64el)20201030 银河麒麟高级服务器操作系统(龙芯版)V10(SP1)(mips64el)20210809 银河麒麟高级服务器操作系统(龙芯版)V10(SP1)(loongarch64)2111
更新类型:
问题修复
发布时间:
2022-01-07
更新描述:

详细介绍

1.复现步骤 

1、删除 /etc/logrotate.d/rsyslog 文件中 /usr/bin/killall -HUP rsyslogd,避免messages日志对auth.log的影响

2、另一台机器 ssh 该系统,该行为会触发系统内auth.log的记录

3、执行命令进行手动日志轮转

logrotate -vf /etc/logrotate.conf

4、执行命令ps -elf | grep rsyslog; lsof -p {PID} | grep var,可见rsyslog一直在操作已删除的文件。


2.原因简述

该问题原因为 logrotate 操作轮转切割日志 /var/log/auth.log文件后,rsyslog 进程打开切割前日志文件 /var/log/auth.log没有被关闭,使用lsof 能够查看到 /var/log/auth.log (deleted)文件被占用状态,资源没有被释放。

解决该问题需要每次日志切割轮转后向 rsyslog.service发送HUP信号重新加载配置,命令为 /usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true,保证轮转切割日志后,可以及时释放资源,避免出现上述问题。


3.解决方案/修复/更新方法

升级rsyslog软件包至rsyslog-8.1907.0-5.p02.ky10以上版本

# yum update rsyslog

undefined

重新加载服务配置文件

# systemctl daemon-reload

确认服务状态正常

# systemctl status rsyslog

 

上一篇: KYBA-202201-1007 下一篇: KYBA-202201-1009

试用

服务

动态

联系