pfSense (FreeBSD 14.0) - Prometheus Node Exporter 给出日志错误 - 修复或抑制日志

pfSense (FreeBSD 14.0) - Prometheus Node Exporter 给出日志错误 - 修复或抑制日志

在 pfSense 上,我启用了 Prometheus Node Exporter,但它每 15 秒就会给出以下日志错误:

Feb 15 09:53:57 vault node_exporter[25559]: ts=2024-02-15T08:53:57.164Z caller=collector.go:169 level=error msg="collector failed" name=uname duration_seconds=1.9687e-05 err="cannot allocate memory"
Feb 15 09:53:57 vault node_exporter[25559]: ts=2024-02-15T08:53:57.164Z caller=collector.go:169 level=error msg="collector failed" name=zfs duration_seconds=1.6108e-05 err="couldn't get sysctl: no such file or directory"

这是我的节点导出器设置:

在此输入图像描述

我不确定哪个收集器给出了错误(再想一想,似乎是一些收集器未启用,但仍在尝试收集)。无论如何,如果我需要它,我可能无法禁用它,因此另一个选择是抑制日志中的错误消息。

我试过了:

  • 设置--log.level=none,但这显然不是有效的日志级别

  • 创建一个01-node-exporter.conf文件来抑制消息,如下所示:

    if $msg contains "collector failed" then {
        stop
    }
    

    并把它放进去/var/etc/syslog.d/。但这似乎也没有抑制这些消息(这在 Ubuntu 上对我有用)。

  • 我也尝试过这个建议,并将其放入01-node-exporter.conf文件中,但无济于事:

    :msg, contains, "collector failed" ~
    

此外,我还找到了node_exporter配置文件,该文件位于/usr/local/etc/rc.conf.d.该文件包含:

# This file is generated by the pfSense node_exporter package.
# Do not edit this file, it will be overwritten automatically.

node_exporter_enable="YES"
node_exporter_listen_address="10.10.1.1:9100"
node_exporter_args=" --collector.boottime --collector.cpu --collector.exec --collector.filesystem --collector.loadavg --collector.meminfo --collector.netdev --collector.textfile --collector.time --log.level=error"

我倾向于认为错误的日志消息是 FreeBSD 的 Node Exporter 中的一个错误(因为收集器uname甚至zfs似乎没有启用),因此短期解决方案是抑制日志消息。

答案1

我终于找到了解决办法。我无法让任何配置工作,但我设法像这样syslog编辑配置文件:node_exporter

# This file is generated by the pfSense node_exporter package.
# Do not edit this file, it will be overwritten automatically.

node_exporter_enable="YES"
node_exporter_listen_address="10.10.1.1:9100"
node_exporter_args=" --collector.boottime --collector.cpu --collector.exec --collector.filesystem --collector.loadavg --collector.meminfo --collector.netdev --collector.textfile --collector.time --log.level=error --no-collector.zfs --no-collector.uname" 

请注意,我将--no-collector.zfs和添加--no-collector.uname到了node_exporter_args.这会阻止这些收集器运行,从而错误消息消失。

我仍然想知道如何通过syslog配置直接抑制 FreeBSD 中的日志消息,但那是另一回事了。

相关内容