एसएनएमपी के माध्यम से यूएसबी यूपीएस स्थिति की निगरानी कैसे करें
एसएनएमपी के माध्यम से यूएसबी यूपीएस स्थिति की निगरानी कैसे करें
यूएसबी से जुड़े यूपीएस के साथ कई कंप्यूटर हैं। सभी कंप्यूटर apcupsd प्रोग्राम का उपयोग करते हैं। मान लें कि आप एक ही स्थान पर प्रत्येक इकाई के लिए बिजली आपूर्ति की स्थिति के बारे में जानकारी एकत्र करना चाहते हैं। चूंकि वहां पहले से ही snmpd चल रहा है, इसलिए इसकी कार्यक्षमता का विस्तार करना तर्कसंगत होगा।
विज्ञापन
नीचे दिया गया समाधान, के सौजन्य से व्यवस्थापक का ब्लॉग, एक ही बार में सभी एसएनएमपीडी इकाइयों से डेटा एकत्र करेगा।
एसएनएमपी के माध्यम से यूएसबी यूपीएस स्थिति की निगरानी के लिए, हमें पहले एसएनएमपी डेमॉन कॉन्फ़िगरेशन को संशोधित करने की आवश्यकता है।
तैयारी
निम्नलिखित को snmpd.conf विन्यास में जोड़ता है।
# एपीसी यूपीएस
पास .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 || बाहर निकलें 0 PLACE=".1.3.6.1.4.1.1.318.1.1.1.1" REQ="$2" # अनुरोधित OID # # केवल असाइन किए गए मान को लॉग करके SET अनुरोधों को संसाधित करें। # ध्यान दें कि ऐसे "असाइनमेंट" स्थायी नहीं हैं, # न ही सिंटैक्स या अनुरोधित मान मान्य है। # अगर ["$1" = "-एस"]; फिर। इको $* >> /tmp/passtest.log। बाहर निकलें 0. फाई # # GETNEXT अनुरोध - अगला मान्य उदाहरण निर्धारित करें। # अगर ["$1" = "-एन"]; फिर। केस "$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.2.0*) RET=$PLACE.2.2.1.0;; $PLACE.2.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.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;; एसैक अन्यथा। # # अनुरोध प्राप्त करें - वैध उदाहरण के लिए जाँच करें। # केस "$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.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;; एसैक फाई # # "प्रक्रिया" प्राप्त करें * अनुरोध - हार्ड-कोडित मान लौटाएं। # गूंज "$ आरईटी" केस "$RET" में। $PLACE.1.1.1.0) इको "स्ट्रिंग"; apcaccess -u -p मॉडल; बाहर निकलें 0;; $PLACE.2.2.1.0) इको "गेज32"; apcaccess -u -p BCHARGE; बाहर निकलें 0;; $PLACE.2.2.2.0) इको "गेज32"; apcaccess -u -p ITEMP; बाहर निकलें 0;; $PLACE.2.2.3.0) इको "टाइमटिक्स"; इको $(($(LC_ALL=C printf "%.*f" 0 $(apcaccess -u -p TIMELEFT)) * 6000)); बाहर निकलें 0;; $PLACE.2.2.4.0) इको "स्ट्रिंग"; apcaccess -u -p BATTDATE; बाहर निकलें 0;; $PLACE.3.2.1.0) इको "गेज32"; apcaccess -u -p LINEV; बाहर निकलें 0;; $PLACE.3.2.4.0) इको "गेज32"; apcaccess -u -p LINEFREQ; बाहर निकलें 0;; $PLACE.3.2.5.0) इको "स्ट्रिंग"; एपीसीएक्सेस -यू -पी लास्टएक्सफर; बाहर निकलें 0;; $PLACE.4.2.1.0) इको "गेज32"; apcaccess -u -p OUTPUTV; बाहर निकलें 0;; $PLACE.4.2.2.0) इको "गेज32"; apcaccess -u -p LINEFREQ; बाहर निकलें 0;; $PLACE.4.2.3.0) इको "गेज32"; apcaccess -u -p LOADPCT; बाहर निकलें 0;; $PLACE.4.2.4.0) इको "गेज32"; apcaccess -u -p LOADPCT; बाहर निकलें 0;; $PLACE.7.2.3.0) इको "स्ट्रिंग"; apcaccess -u -p SELFTEST; बाहर निकलें 0;; $PLACE.7.2.4.0) गूंज "स्ट्रिंग"; apcaccess -u -p SELFTEST; बाहर निकलें 0;; $PLACE.8.1.0) इको "गेज32"; गूंज 1; बाहर निकलें 0;; *) गूंज "स्ट्रिंग"; गूंज "एक... $RET $REQ"; बाहर निकलें 0;; # नहीं होना चाहिए। एसैक
यदि आप ओआईडी के बारे में सोच रहे हैं, तो आप उन्हें ढूंढ सकते हैं यहां. ध्यान दें कि कुछ यूपीएस मॉडल सभी पैरामीटर या गलत प्रारूप में नहीं लौटाते हैं, इसलिए कोड में अशुद्धि और स्टब्स हो सकते हैं।
अब आप तैयार हैं।
एसएनएमपी के माध्यम से यूएसबी यूपीएस स्थिति की निगरानी कैसे करें
एसएनएमपी के माध्यम से यूएसबी यूपीएस स्थिति की निगरानी के लिए, निम्न आदेश चलाएँ: स्नैम्पवॉक -वी 1-सी पब्लिक 127.0.0.1 .1.3.6.1.4.1.318.1.1.1.1
. आउटपुट ऐसा होगा:
SNMPv2-SMI:: Enterprise.318.1.1.1.1.1.0 = STRING: "स्मार्ट-यूपीएस 750"
एसएनएमपीवी2-एसएमआई:: इंटरप्राइजेज.318.1.1.1.2.2.1.0 = गेज 32: 100
SNMPv2-SMI:: Enterprise.318.1.1.1.2.2.2.0 = गेज32: 36
SNMPv2-SMI:: Enterprise.318.1.1.1.2.2.3.0 = Timeticks: (432000) 1:12:00.00
SNMPv2-SMI:: Enterprise.318.1.1.1.2.2.4.0 = STRING: "2020-05-14"
SNMPv2-SMI:: Enterprise.318.1.1.1.3.2.2.1.0 = गेज32: 227
SNMPv2-SMI:: Enterprise.318.1.1.1.3.2.4.0 = गेज32: 50
SNMPv2-SMI:: Enterprise.318.1.1.1.3.2.5.0 = STRING: "स्वचालित या स्पष्ट आत्म परीक्षण"
SNMPv2-SMI:: Enterprise.318.1.1.1.4.2.2.1.0 = गेज32: 227
SNMPv2-SMI:: Enterprise.318.1.1.1.4.2.2.2.0 = गेज32: 50
SNMPv2-SMI:: Enterprise.318.1.1.1.4.2.3.0 = गेज32: 13
SNMPv2-SMI:: Enterprise.318.1.1.1.4.2.4.0 = गेज32: 13
SNMPv2-SMI:: Enterprise.318.1.1.1.7.2.3.0 = STRING: "नहीं"
SNMPv2-SMI:: Enterprise.318.1.1.1.7.2.4.0 = STRING: "नहीं"
SNMPv2-SMI:: Enterprise.318.1.1.1.8.1.0 = गेज32: 1
यदि आप निगरानी स्क्रिप्ट को और कॉन्फ़िगर करते हैं, तो आप ये निफ्टी ग्राफ प्राप्त कर सकते हैं: