web-dev-qa-db-ja.com

NET-SNMPは、2TBを超えるパーティションの報告で問題が発生している可能性があります

最近、MYSQLマシンの1つを2.5TBのアレイにアップグレードしました。

そうした後、OpenNMSはmysqlデータパーティションに関する情報の報告を停止しました...

私がするとき:

snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.9

これは/ var/log/messagesで取得します

Aug  3 16:44:11 mysql6 snmpd[8789]: Connection from UDP: [127.0.0.1]:47333 
Aug  3 16:44:11 mysql6 snmpd[8789]: truncating signed value to 32 bits (10) 
Aug  3 16:44:11 mysql6 snmpd[8789]: truncating signed value to 32 bits (10) 

Snmpd.confからパーティションを削除しても、通知はありません...残りのリソースデータはOpenNMSに入力されます。

私のグーグルから、それは一般的な問題のように見えますが、私は解決策を見つけることができませんでした。

回避策を知っている人はいますか?

1
Nathan Milford

これは実際には答えではありませんが、コメントするには大きすぎます。

  • Linux 2.6.26-gentoo-r4#10 SMP Sat Jan 17 22:38:48 EST 2009 i686 Intel(R)Celeron(R)CPU E1200 @ 1.60GHz GenuineIntel GNU/Linux
  • NET-SNMPバージョン:5.4.2.1
  • 論理ボリュームサイズ:3.4TB

そして、私は問題ありません。 snmpdが64ビットとしてコンパイルされているかどうかはわかりませんが。ただし、(邪魔にならない)チェックを行っていただければ幸いです。

1
Tom Ritter

私は別のプラットフォームでこれに遭遇しました。私が見つけたのは、あなたのログがあなたに言ったことです、それは符号付き32ビット整数の最大値を超えた値を返していました。特定のSNMPデーモンが負の数を返していました。これが、署名付き/署名なしのIntの問題であると私が判断した方法です。私のスクリプトでは、符号付き整数を符号なし整数に変換する計算を行いました。これにより、この特定のボリュームを最大4TBまで監視できます。その時点で、私はほとんど運が悪いです。

回避策については...生の値を取得できるようには思えないため、特定のOID)のときに実行されるスクリプトを作成する必要がある場合があります。このスクリプトは、B値ではなく、ボリュームのKB値を返します。これにより、最大値に達する前に最大16TBになるはずです。

Snmpd.confファイルに、次のようなものを入力します(vmwareのメモから引用しているので、OID使用するものは別のものにする必要があります):

exec .1.3.6.1.4.1.6876.99999.2.0 sqlvolspace /usr/local/script/sqlvolspace /dev/mapper/volname

次に、そのOIDをクエリすると、32ビット整数内に収まる値が得られます。もちろん、そのスクリプトを作成する必要があります。単一の整数のみが返されるはずです。

3
sysadmin1138