カーネルエラーをオフにするか、Prometheusノードのエクスポートを設定して回避します。

カーネルエラーをオフにするか、Prometheusノードのエクスポートを設定して回避します。

/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ノードのエクスポートにクエリしたい情報が何でもクエリを停止するように指示することです。失敗した場合、私のログファイルがスパムにならないように、このメッセージを無音に設定したいと思います。

これら2つのオプションの中からどのように選択する必要がありますか? ...または私が考慮していない他のオプションがあるかもしれません...

これはUbuntu 18.04のパッケージバージョンで発生します( - yes、Ubuntuを介してインストールできるprometheus-node-exporter0.16および0.17バージョンでも発生します)。prometheus-node-exporterstretch-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

関連情報