日志筛选功能可用于修改运行于 ESXi 主机上的 syslog 服务的日志记录策略。可以通过创建日志筛选器减少 ESXi 日志中的重复条目数并将特定日志事件全部列入拒绝列表。

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

创建日志筛选器时,为日志消息设置最大日志条目数。这些日志消息由一个或多个指定系统组件生成且与指定短语匹配。要在 ESXi 主机上激活日志筛选器,必须启用日志筛选功能并重新加载 syslog 守护进程。
重要说明: 如果设置日志记录信息量限制,则您可能无法正确地对潜在系统故障进行故障排除。如果在达到最大日志条目数后发生日志轮换,则您可能会丢失已筛选消息的所有实例。

过程

  1. 以 root 身份登录 ESXi Shell。
  2. /etc/vmware/logfilters 文件中,添加下列条目以创建日志筛选器。
    numLogs | ident | logRegexp
    其中:
    • numLogs 为指定日志消息设置最大日志条目数。达到此数目之后,将会筛选并忽略指定日志消息。使用 0 筛选并忽略所有指定日志消息。
    • ident 指定一个或多个系统组件以将筛选器应用于这些组件生成的日志消息。有关生成日志消息的系统组件的信息,请参见 syslog 配置文件中的 idents 参数的值。这些文件位于 /etc/vmsyslog.conf.d 目录中。使用逗号分隔列表将筛选器应用于多个系统组件。使用 * 将筛选器应用于所有系统组件。
    • logRegexp 使用 Python 正则表达式语法指定区分大小写的短语以按内容筛选日志消息。
    例如,对于包含 SOCKET connect failed, error 2: No such file or directory 短语和任意错误号的消息,要将来自 hostd 组件的最大日志条目设置为 2,请添加以下条目:
    2 | hostd | SOCKET connect failed, error .*: No such file or directory
    注:# 开头的行表示备注,该行的其余部分将被忽略。
  3. /etc/vmsyslog.conf 文件中,添加下列条目以启用日志筛选功能。
    enable_logfilters = true
  4. 运行 esxcli system syslog reload 命令重新加载 syslog 守护进程并应用配置更改。