关闭内核错误或通过配置 Prometheus Node Exporter 避免它

关闭内核错误或通过配置 Prometheus Node Exporter 避免它

/var/log/syslog让我首先给出我在和 中看到的输出dmesg

[559151.898586] ACPI Error: SMBus/IPMI/GenericSerialBus write requires Buffer of length 66, found length 32 (20170831/exfield-427)
[559151.911578] No Local Variables are initialized for Method [_PMM]
[559151.911580] No Arguments are initialized for method [_PMM]
[559151.911584] ACPI Error: Method parse/execution failed \_SB.PMI0._PMM, AE_AML_BUFFER_LIMIT (20170831/psparse-550)
[559151.916648] ACPI Exception: AE_AML_BUFFER_LIMIT, Evaluating _PMM (20170831/power_meter-338)

显然普罗米修斯节点导出器触发错误,虽然它似乎不是原因对于记录的错误。

现在我想要实现的是 - 最好 - 告诉 Prometheus Node Exporter 停止查询它试图查询的任何信息。如果做不到这一点,我想使这些消息保持沉默,这样它们就不会向我的日志文件发送垃圾邮件。

我将如何选择这两个选项? ...或者也许还有其他我没有考虑过的选择...

这种情况发生在 Ubuntu 18.04 的打包版本上prometheus-node-exporter(0.16 和 0.17 版本也发生过这种prometheus-node-exporter情况,可以通过 - 是的,在 Ubuntu 上安装stretch-backports)。

答案1

acpi_power_meter显然,最好的方法是通过添加如下行来将指定的内核模块列入黑名单/etc/modprobe.d/blacklist.conf(或在同一文件夹中新创建的文件):

blacklist acpi_power_meter

在正在运行的系统上,还应该rmmod acpi_power_meter以超级用户身份运行才能卸载模块。我已经对其进行了测试,并且在我负责的所有 HP 服务器上都运行得非常好。据称,该错误的原因是所述 HP 硬件上的 BIOS 缺陷。

这似乎是唯一可行的方法,我通过以下方式找到了它这条评论关于普罗米修斯node_exporter项目。

答案2

我将这些[_PMM]类型的日志消息放在一个新openvz容器中(因此这些消息不在我的控制范围内)。

rsyslog您一起可以创建一个属性过滤器 in /etc/rsyslog.d/discard.conf(此目录中的文件是在应用所有其他配置之前获取的):

:msg, contains, "[_PMM]"    ~

对于syslog没有过滤器的(例如inetutils-syslogd) - 一个简单的修复是创建/etc/cron.hourly/pmmlog并使其可执行:

#!/bin/sh

# remove annoying logs
# Nov 29 12:55:29 vzbackup vmunix: [161167.516267] No Arguments are initialized for method [_PMM]
# Nov 29 12:56:29 vzbackup vmunix: [161227.527169] No Local Variables are initialized for Method [_PMM]

sed -i '/.*[_PMM]/d' /var/log/messages

相关内容