日志筛选功能可用于修改运行于 ESXi 主机上的 syslog 服务的日志记录策略。

从 vSphere 7.0 Update 2 开始,您可以使用 ESXCLI 添加日志筛选器并启用日志筛选。日志筛选器在建立后将一直保留在原位,直到被移除为止,即使在 ESXi 重新引导后也如此。

无论是记录到日志目录还是远程 syslog 服务器,日志筛选器将会影响由 ESXi 主机 vmsyslogd 服务处理的所有日志事件。

要在 ESXi 主机上激活日志筛选器,必须启用日志筛选功能并重新加载 syslog 守护进程。

用于配置日志筛选器的 ESXCLI 命令采用以下模式: esxcli system syslog config logfilter {cmd} [cmd options]

例如,要获取可用日志筛选器的列表,请运行以下命令:[root@xxx-xx-dhcp-xx-xx:~] esxcli system syslog config logfilter list

使用 set 命令可激活或停用日志筛选:[root@xxx-xx-dhcp-xx-xx:~] esxcli system syslog config logfilter set

使用 add 命令可添加日志筛选器,使用 remove 命令可移除日志筛选器。

使用 get 命令可确定是否已启用日志筛选。

日志筛选器由三个组成部分指定,并使用以下语法:numLogs | ident | logRegexp

参数 描述
numLogs 指定在开始筛选之前允许的 logRegexp Python 正则表达式的匹配数。
ident

ident 字符串是应用程序向 syslog 功能标识其自身的方式。logRegexp 筛选器必须与同一应用程序相关联。您可以通过检查 /var/run/log 中的日志文件来查找应用程序的 ident 字符串。每个日志文件的第三个字段以 ident 字符串开头,并以 [ 结尾。

logRegexp 用于标识要筛选出的消息的 Python 正则表达式。

例如,要筛选出来自 hostd 守护进程在出现第十次后包含“mark”一词的所有消息,请使用以下命令:esxcli system syslog config logfilter add --filter="10|Hostd|mark"

要移除日志筛选器,请使用 esxcli system syslog config logfilter remove --filter="10|Hostd|mark" 命令。

有关详细信息,请参见 ESXi Syslog 选项

前提条件

可以通过创建日志筛选器减少 ESXi 日志中的重复条目数并将特定日志事件全部列入拒绝列表。

安装 ESXCLI。请参见《ESXCLI 入门》。要进行故障排除,请在 ESXi Shell 中运行 esxcli 命令。