问题现象

ECS实例在无任何操作的情况下会时不时出现自动关机的现象。当您重启实例后,过一段时间ECS实例会再次关机,通过查看系统日志(如/var/log/messages),可以看到类似的错误:
localhost auditd[607]: Audit daemon is low on disk space for logging 
localhost auditd[607]: The audit daemon is now halting the system

可能原因

CentOS、RHEL系统的ECS实例中默认开启了auditd服务进行审计。该服务会向/var/log/audit/目录中写入大量审计日志,随着其他服务和程序不断写入数据,可能会出现磁盘空间不足的情况。如果您将/etc/audit/auditd.conf配置文件中在磁盘空间不足时auditd的动作参数space_left_action、admin_space_left_action或disk_full_action的值修改为halt,会导致auditd服务在磁盘空间不足时自动触发系统关机,导致ECS实例被关闭。

解决方案

  1. 远程连接ECS实例。
    具体操作,请参见连接方式概述
  2. 执行如下命令,编辑auditd配置文件。
    vi /etc/audit/auditd.conf
  3. 修改在磁盘空间不足时auditd的动作参数space_left_action、admin_space_left_action或disk_full_action的值。
    推荐修改为SUSPEND,表示磁盘空间不足时auditd停止写入审计日志。
    space_left = 75
    space_left_action = SUSPEND
    admin_space_left = 50
    admin_space_left_action = SUSPEND
    disk_full_action = SUSPEND
  4. 重启auditd服务,使新的配置生效。
    systemctl restart auditd.service