一、问题描述

默认esxi主机安装系统后,运行一段时间,在vcenter的esxi主机摘要页面会经常报出:System logs are stored on non-persistent storage的告警提示;

ESXI snmp服务 esxi syslog_持久性

二、原因:

ESXI snmp服务 esxi syslog_ESXI snmp服务_02


这是因为如上图所示,默认esxi日志采用临时存储来存放日志,一般挂载在/tmp下或内存中的一块虚拟存储上,主机重启,日志就会丢失;如果未配置系统日志的位置,则系统默认使用暂存分区(scratch partition)。如果临时位置设置为非持久性存储(例如/ tmp),则会收到esx.problem.syslog.nonpersistent消息。

因额主机中的这些日志,多用于日常管理审计和故障诊断使用,将他们存储在一个可靠的持久性存储上,还是必要的。

三、处理

如上图中国Syslog.global.logDir指向到暂存分区,需创建专用于存放esxi主机日志的文件夹,并修改该参数指向该文件夹;

查看ScratchConfig.CurrentScratchLocation的值,确认其指向一个本地或持久性存储。

ESXI snmp服务 esxi syslog_数据存储_03


如果用作暂存位置的文件夹将由多个ESXi主机共享,则还应设置该字段Syslog.global.logDirUnique以避免对日志文件的争用。

ESXI snmp服务 esxi syslog_数据存储_04


要log指向到数据存储,则Syslog.global.logDir条目的格式应为[Datastorename]/foldername。若将log还指向设置的临时分区ScratchConfig.CurrentScratchLocation,格式为空或[]/foldername。

另外,对于ESXi 6.5、6.7和更高版本,更改将立即生效。对于之前的旧版本,需要重新启动主机才能使更改生效。

esxi主机上peiz

如看到工作主机的暂存位置信息采用UUID格式,如:/vmfs/volumes/xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxxxxxx/foldername,并想知道“友好”名称是什么,就像它将出现在vCenter或主机客户端视图中一样,ssh登录主机执行:

#esxcli storage filesystem list //查看,输入类似如下
 /vmfs/volumes/ad495351-37d00fe1-c498-a82a72e0c050 abc-lun3 ad495351-37d00fe1-c498-a82a72e0c050 
true VMFS-5 805037932544 400613703680

上例中,abc-lun3是在vCenter或主机客户端中找到的数据存储的友好名称,且Syslog.global.logDir条目应采用[abc-lun3]/foldername的格式配置

#esxcli system syslog config set --logdir=/vmfs/volumes/systemlog/esxi01-log/
 #esxcli system syslog reload
 esxcli system syslog mark --message “Syslog Test Message” //测试发送syslog