主机升级rsyslog后服务异常分析,rsyslog服务重启报错

1:异常情况:

现有版本:rsyslog-8.24.0-34.el7.x86_64

升级到:rsyslog-8.24.0-38.el7.x86_64

升级后服务重启不了,服务状态如下:

systemd[1]: Failed to start System Logging Service.
systemd[1]: Unit rsyslog.service entered failed state.
systemd[1]: rsyslog.service failed.
systemd[1]: rsyslog.service holdoff time over, scheduling restart.
systemd[1]: Stopped System Logging Service.
systemd[1]: start request repeated too quickly for rsyslog.service
systemd[1]: Failed to start System Logging Service.
systemd[1]: Unit rsyslog.service entered failed state.
systemd[1]: rsyslog.service failed.

尝试:

       1:回退原来版本得RPM包,重启服务,任然还是这个状态(未解决)

       2:重启服务器,任然还是这个状态(未解决)

       3:删除rsyslog这rpm包,然后再重启,状态没了,再重新安装上包启动服务,这个状态再次显现(未解决)

       4:排查各种是否存在PID,以及该服务启动方式,启动流程,红帽官网寻找报错登皆排查完毕(未解决)

       5:修复.services在system里重复启动过快,vim /usr/lib/systemd/system/ rsyslog.service,增加StartLimitInterval=3换行StartLimitBurst=100,限制system重复启动rsyslog服务。修改后服务状态发生转变(有进展,但未解决)

状态变化:

2:最终解决方案

日志文件过多时,rsyslog 无法启动

1:计算日志文件的数量,默认不能超过1024,故障主机显示1027已经超过默认得1024,锁定该原因

       journalctl --header | grep -c 'File Path:'

2:编辑/etc/rsyslogd.conf以下语句并将其添加到该GLOBAL DIRECTIVES部分,增加日志文件数量限制。

        vim /etc/rsyslog.conf

增加一行:$MaxOpenFiles 4096

3:重启服务(成功)

总结

渊源:

该imjournal输入模块rsyslog上打开开始的所有日志文件(通过杂志API)。当日志文件数量过多时,可以达到最大打开文件描述符的默认限制 (1024)。在这种情况下rsyslogd,无法打开任何其他文件或套接字,并将以失败退出状态 1 终止。

参考官网红帽连接(需要账号):rsyslog fails to start when there are too many journal files - Red Hat Customer Portal

有两种解决方案:

       1:配置为允许打开更多的日志文件:

如上面,rsyslogd如果需要,您可以配置为允许更多打开的文件。最多可打开 4096 个文件。对于更多打开的文件,LimitNOFILE需要[Service]在rsyslog.service systemd单元文件部分调整限制。

       2:清理旧的日志文件:

使用journalctl移除旧日志文件。下面的示例删除超过两周的日志文件,根据需要调整时间:

       删除2周:# journalctl --vacuum-time='2 weeks'

       查看:# journalctl --header | grep -c 'File Path:'

       重启服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值