Windows Tips & News

SNMPを介してUSBUPSステータスを監視する方法

click fraud protection
おすすめされた: Windowsの問題を修正し、システムパフォーマンスを最適化するには、ここをクリックしてください

SNMPを介してUSBUPSステータスを監視する方法

USB接続のUPSを搭載したコンピューターがいくつかあります。 すべてのコンピューターはapcupsdプログラムを使用します。 すべてのユニットの電源の状態に関する情報を1か所に集約するとします。 snmpdはすでにそこで実行されているので、その機能を拡張することは論理的です。

広告

以下の解決策は、 管理者のブログは、すべてのsnmpdユニットから一度にデータを収集します。

SNMPを介してUSBUPSステータスを監視するには、最初にsnmpデーモン構成を変更する必要があります。

コンテンツ隠れる
準備
SNMPを介してUSBUPSステータスを監視する方法

準備

以下を設定snmpd.confに追加します。

#APC UPS
パス.1.3.6.1.4.1.318.1.1.1 / bin / sh /etc/snmp/apcupsd.sh

/etc/snmp/apcupsd.shスクリプトの内容は次のとおりです。

#!/ bin / sh -f#apcupsdがオンラインであることを確認します。 apcaccess> / dev / null 2>&1 || exit 0 PLACE = ".1.3.6.1.4.1.318.1.1.1" REQ = "$ 2"#要求されたOID# #割り当てられた値をログに記録するだけでSET要求を処理します。 #このような「割り当て」は永続的ではなく、#構文や要求された値も検証されないことに注意してください。 # if ["$ 1" = "-s"]; それから。 エコー$ * >> / tmp / passtest.log。 0を終了します。 fi# #GETNEXTリクエスト-次の有効なインスタンスを決定します。 # if ["$ 1" = "-n"]; それから。 のケース「$ REQ」。 $ PLACE | \ $ PLACE.0 | \ $ PLACE.0。* | \ $ PLACE.1 | \ $ PLACE.1.1.0 *)RET = $ PLACE.1.1.1.0;; $ PLACE.1 * | \ $ PLACE.2.0 | \ $ PLACE.2.0。* | \ $ PLACE.2.1 | \ $ PLACE.2.2.0 *)RET = $ PLACE.2.2.1.0;; $ PLACE.2.2.1 *)RET = $ PLACE.2.2.2.0;; $ PLACE.2.2.2 *)RET = $ PLACE.2.2.3.0;; $ PLACE.2.2.3 *)RET = $ PLACE.2.2.4.0;; $ PLACE.2 * | \ $ PLACE.3.0 * | \ $ PLACE.3.1 * | \ $ PLACE.3.2.0 *)RET = $ PLACE.3.2.1.0;; $ PLACE.3.2.1 * | \ $ PLACE.3.2.2 * | \ $ PLACE.3.2.3 *)RET = $ PLACE.3.2.4.0;; $ PLACE.3.2.4 *)RET = $ PLACE.3.2.5.0;; $ PLACE.3.2 * | \ $ PLACE.4.0 * | \ $ PLACE.4.1 * | \ $ PLACE.4.2.0 *)RET = $ PLACE.4.2.1.0;; $ PLACE.4.2.1 *)RET = $ PLACE.4.2.2.0;; $ PLACE.4.2.2 *)RET = $ PLACE.4.2.3.0;; $ PLACE.4.2.3 *)RET = $ PLACE.4.2.4.0;; $ PLACE.4.2。* | \ $ PLACE.5 * | \ $ PLACE.6 * | \ $ PLACE.7.0 * | \ $ PLACE.7.1 * | \ $ PLACE.7.2.0 * | \ $ PLACE.7.2.1 * | \ $ PLACE.7.2.2 *)RET = $ PLACE.7.2.3.0;; $ PLACE.7.2.3 *)RET = $ PLACE.7.2.4.0;; $ PLACE.7 * | \ $ PLACE.8.0 *)RET = $ PLACE.8.1.0;; *)終了0;; esac。 そうしないと。 # #GETリクエスト-有効なインスタンスを確認します。 # のケース「$ REQ」。 $ PLACE.1.1.1.0 | \ $ PLACE.2.2.1.0 | \ $ PLACE.2.2.2.0 | \ $ PLACE.2.2.3.0 | \ $ PLACE.2.2.4.0 | \ $ PLACE.3.2.1.0 | \ $ PLACE.3.2.4.0 | \ $ PLACE.3.2.5.0 | \ $ PLACE.4.2.1.0 | \ $ PLACE.4.2.2.0 | \ $ PLACE.4.2.3.0 | \ $ PLACE.4.2.4.0 | \ $ PLACE.7.2.3.0 | \ $ PLACE.7.2.4.0 | \ $ PLACE.8.1.0)RET = $ REQ;; *)終了0;; esac。 fi# #「プロセス」GET *リクエスト-ハードコードされた値を返します。 # エコー「$ RET」 のケース「$ RET」。 $ PLACE.1.1.1.0)echo "string"; apcaccess -u-pモデル; 出口0;; $ PLACE.2.2.1.0)echo "Gauge32"; apcaccess -u -p BCHARGE; 出口0;; $ PLACE.2.2.2.0)echo "Gauge32"; apcaccess -u -p ITEMP; 出口0;; $ PLACE.2.2.3.0)echo "Timeticks"; echo $(($(LC_ALL = C printf "%。* f" 0 $(apcaccess -u -p TIMELEFT))* 6000)); 出口0;; $ PLACE.2.2.4.0)echo "string"; apcaccess -u -p BATTDATE; 出口0;; $ PLACE.3.2.1.0)echo "Gauge32"; apcaccess -u -p LINEV; 出口0;; $ PLACE.3.2.4.0)echo "Gauge32"; apcaccess -u -p LINEFREQ; 出口0;; $ PLACE.3.2.5.0)echo "string"; apcaccess -u -p LASTXFER; 出口0;; $ PLACE.4.2.1.0)echo "Gauge32"; apcaccess -u -p OUTPUTV; 出口0;; $ PLACE.4.2.2.0)echo "Gauge32"; apcaccess -u -p LINEFREQ; 出口0;; $ PLACE.4.2.3.0)echo "Gauge32"; apcaccess -u -p LOADPCT; 出口0;; $ PLACE.4.2.4.0)echo "Gauge32"; apcaccess -u -p LOADPCT; 出口0;; $ PLACE.7.2.3.0)echo "string"; apcaccess -u -p SELFTEST; 出口0;; $ PLACE.7.2.4.0)echo "string"; apcaccess -u -p SELFTEST; 出口0;; $ PLACE.8.1.0)echo "Gauge32"; エコー1; 出口0;; *)echo "string"; エコー "ack..。 $ RET $ REQ "; 出口0;; #起こらないはずです。 esac。

OIDについて疑問がある場合は、それらを見つけることができます ここ. 一部のUPSモデルは、すべてのパラメーターまたは間違った形式を返さないため、コードに不正確な部分やスタブが含まれている可能性があることに注意してください。

これで準備が整いました。

SNMPを介してUSBUPSステータスを監視する方法

SNMPを介してUSBUPSステータスを監視するには、次のコマンドを実行します。 snmpwalk -v 1 -c public 127.0.0.1 .1.3.6.1.4.1.318.1.1.1. 出力は次のようになります。

SNMPv2-SMI:: Enterprises.318.1.1.1.1.1.1.0 = STRING: "Smart-UPS 750"
SNMPv2-SMI:: Enterprises.318.1.1.1.2.2.1.0 = Gauge32:100
SNMPv2-SMI:: Enterprises.318.1.1.1.2.2.2.0 = Gauge32:36
SNMPv2-SMI:: Enterprises.318.1.1.1.2.2.3.0 =タイムティック:(432000)1:12:00.00
SNMPv2-SMI:: Enterprises.318.1.1.1.2.2.4.0 = STRING: "2020-05-14"
SNMPv2-SMI:: Enterprises.318.1.1.1.3.2.1.0 = Gauge32:227
SNMPv2-SMI:: Enterprises.318.1.1.1.3.2.4.0 = Gauge32:50
SNMPv2-SMI:: Enterprises.318.1.1.1.3.2.5.0 = STRING: "自動または明示的なセルフテスト"
SNMPv2-SMI:: Enterprises.318.1.1.1.4.2.1.0 = Gauge32:227
SNMPv2-SMI:: Enterprises.318.1.1.1.4.2.2.0 = Gauge32:50
SNMPv2-SMI:: Enterprises.318.1.1.1.4.2.3.0 = Gauge32:13
SNMPv2-SMI:: Enterprises.318.1.1.1.4.2.4.0 = Gauge32:13
SNMPv2-SMI:: Enterprises.318.1.1.1.7.2.3.0 =文字列: "いいえ"
SNMPv2-SMI:: Enterprises.318.1.1.1.7.2.4.0 = STRING: "NO"
SNMPv2-SMI:: Enterprises.318.1.1.1.8.1.0 = Gauge32:1

監視スクリプトをさらに構成すると、次の気の利いたグラフを取得できます。

アップロード電圧バッテリー温度ランタイム
おすすめされた: Windowsの問題を修正し、システムパフォーマンスを最適化するには、ここをクリックしてください
Microsoftは新しいMSIXパッケージ形式を導入しました

Microsoftは新しいMSIXパッケージ形式を導入しました

本日、Windows Developer Dayイベント中に、Microsoftは新しいアプリ形式を発表しました。 このフォーマットは「MSIXファイル」と呼ばれます。 これは、ストアアプリの機...

続きを読む

ファストリングのインサイダーにリリースされたWindows10ビルド17120

ファストリングのインサイダーにリリースされたWindows10ビルド17120

おすすめされた: Windowsの問題を修正し、システムパフォーマンスを最適化するには、ここをクリックしてくださいマイクロソフトは本日、Windows 10 Insider Preview Bu...

続きを読む

Windows 10 Build17115の公式ISOイメージをダウンロードする

Windows 10 Build17115の公式ISOイメージをダウンロードする

おすすめされた: Windowsの問題を修正し、システムパフォーマンスを最適化するには、ここをクリックしてくださいご存知かもしれませんが、Windows10ビルド17115は最近リリースされまし...

続きを読む