Windows Tips & News

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

おすすめされた: 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の問題を修正し、システムパフォーマンスを最適化するには、ここをクリックしてください
Windows 11 ビルド 22621.1020/22623.1020 (ベータ版) に Windows スポットライト テーマがついに登場

Windows 11 ビルド 22621.1020/22623.1020 (ベータ版) に Windows スポットライト テーマがついに登場

Microsoft は、Windows 11 (バージョン 22H2) 22621.1020 および 22623.1020 (KB5020035) の新しいプレビュー ビルドをベータ チャネルの...

続きを読む

Windows 11 22H2 は、バージョン 21H2 の上に強制的にインストールされるようになりました

Windows 11 22H2 は、バージョン 21H2 の上に強制的にインストールされるようになりました

本日より、Microsoft は Windows 11 の最初のバージョン (21H2) から現在の Windows 11 2022 Update (22H2) への強制更新を開始します。 更新...

続きを読む

Windows 11 Build 25284 (Dev) では、セットアップ プログラムで ReFS パーティションを作成できます

Windows 11 Build 25284 (Dev) では、セットアップ プログラムで ReFS パーティションを作成できます

最近、Windows 11 が Dev Channel ビルドで ReFS のインストールをサポートしていることが発見されました。 これは進行中の作業であるため、セットアップ プログラムは Re...

続きを読む