PowerFlex 机架:启用系统日志转发功能时的 /var/log 空间问题
Summary: 本文介绍了由于日志轮换发生频率不够高而导致的 /var/log 空间中的问题。
Symptoms
当前的 logrotate 配置每周轮换一次消息文件,但如果在 VxFlex Manager 中启用了系统日志转发,则轮换速度可能不够快。
事实:
- 系统日志转发功能在 VxFlex Manager 中已启用。
- /var/log 分区正在迅速填满。
- 这可能因系统而异
- 在 VxFlex 集成机架或设备系统中的设备上启用远程系统日志,并配置为将系统日志事件发送到 VxFlex Manager
Cause
当 /var/log 文件系统为 100% 时,所有资源的资源清点都将失败。
注意:如果空间太满而无法执行这些检查,或者空间填满得太快,下面列出的警告或严重警报可能不起作用。
- 如果 VxFlex Manager UI 为 75%,则 >显示警告:
如果 95%,VxFlex Manager UI 显示严重 > :
df -h 显示 /var/log 的已用容量非常高,并且正在快速增长。
Resolution
要在启用了系统日志转发的 VxFlex Manager 设备上修复日志轮换问题,您可以使用以下步骤配置 logrotate、压缩现有日志、更改 rsyslog 设置并降低调试日志级别:
步骤 1: 通过 ssh 连接到 VxFlex Manager 并成为 root 用户: sudo su -
步骤 2:通过确保以下文本存在于以下位置,编辑(vi 编辑器)系统日志 logrotate 规则: /etc/logrotate.d/syslog
/var/log/cron /var/log/maillog /var/log/messages /var/log/secure /var/log/spooler { size 100M nodateext rotate 5 compress missingok copytruncate postrotate /bin/killall -s SIGHUP -r rsyslog endscript }
步骤 3: 输入以下命令以验证新配置是否已正确保存:
cat /etc/logrotate.d/syslog
步骤 4: 根据 /var/log 空间填满的速度,选择以下选项之一:
对于不每天填满 /var/log,但需要比每周轮换更快的环境,请使用以下命令将 logrotate 从每周更改为每天:
cp /etc/cron.weekly/logrotate /etc/cron.daily/
对于填充 /var/log 的速度快于每日轮换所能容纳的环境,请使用以下命令将 logrotate 从每日更改为每小时:
cp /etc/cron.daily/logrotate /etc/cron.hourly/
步骤 5: 通过运行以下命令压缩现有文件并释放空间:
for log in `ls /var/log/messages-*`; do sudo gzip $log; done
提醒: 如果 /var/log/messages 文件太满,您无法将其压缩,请使用以下命令将其清除:
cat /dev/null > /var/log/messages
步骤 6: 要验证 logrotate 配置是否正常工作,请运行以下命令:
logrotate -f /etc/logrotate.d/syslog
步骤 7: 要停止将转发的系统日志事件记录到 VxFlex Manager 设备上的 /var/log/messages 文件,请执行以下作:
- 使用以下命令在 /etc/rsyslog.d/ 下创建 conf 文件:
vi 21-stop-remote-host-syslog-logging.conf - 将以下行添加到上面新创建的文件中:
if $fromhost-ip != '127.0.0.1' then ~ - 通过键入以下命令保存文件:
:wq! - 重新启动 rsyslog 服务:
systemctl restart rsyslog.service
提醒:21 是用于 rsyslog 的优先级编号。重新启动后,rsyslog 不会将传入的远程系统日志保存到 /var/log/messages。VxFlex Manager 的本地系统日志仍将保存到 /var/log/messages 中。
注意:即使在 VxFlex Manager 上未启用系统日志转发,也可以将主机指向 VxFlex Manager,这可能会向 /var/log/messages 文件发送垃圾邮件。如果消息文件被淹没,则配置步骤 7,无论 VxFlex Manager 系统日志是否打开。
步骤8: 通过执行以下步骤,在 VxFlex Manager 设备中更改 logstash 的 Debug日志记录级别:
- 使用以下命令编辑日志记录级别:
vi /etc/logstash/logstash.yml - 在文件中搜索调试设置
- 将日志级别从 info(默认)更改为 error

- 编辑以下文件: vi /etc/logstash/log4j2.properties
- 在默认配置中,有一行以 rootLogger.appenderRef.console 开头,使用 # 注释此行,如下所示:
-
通过运行以下命令重新启动 logstash 服务: systemctl restart logstash
步骤 8: 如果 /var/log 文件系统已满,请重新启动 VxFlex Manager 设备。这可确保所有服务都能正确启动备份。
注意: 发送测试警报,以确保在解决空间问题并重新启动设备后警报连接器正常工作。
Additional Information
- 正在为 VxFlex Manager 的未来版本提供停止将系统日志消息记录到 /var/log/messages 的修复。
- 这与具有系统日志转发功能的任何 VxFlex Manager 版本相关,直至版本 3.4.0.4271。