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

关于此任务

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

在创建日志筛选器时,为由一个或多个与指定短语匹配的指定系统组件处理的日志消息设置最大日志条目数。要在 ESXi 主机上激活日志筛选器,必须启用日志筛选功能并重新加载 syslog 守护进程。

重要:

如果将限制设置为日志记录信息量,则您可能无法正确排除潜在系统故障。如果在达到最大日志条目数后发生日志轮换,则您可能会丢失已筛选消息的所有实例。

过程

  1. 以 root 身份登录 ESXi Shell。
  2. /etc/vmware/logfilters 文件中,添加下列条目以创建新的日志筛选器。
    numLogs | ident | logRegexp

    其中:

    • numLogs 为指定日志消息设置最大日志条目数。达到此数目之后,将会筛选并忽略指定日志消息。使用 0 筛选并忽略所有指定日志消息。

    • ident 指定一个或多个系统组件以将筛选器应用于这些组件生成的日志消息。有关生成日志消息的系统组件的信息,请参见 syslog 配置文件(位于 /etc/vmsyslog.conf.d 目录下)中的 idents 参数值。使用逗号分隔列表将筛选器应用于多个系统组件。使用 * 将筛选器应用于所有系统组件。

    • 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 守护进程并应用配置更改。