Uninterruptible Power Supply

UPS, czyli zasilacz awaryjny, którego zadaniem jest utrzymanie zasilania sprzętu komputerowego w przypadku krótkotrwałego zaniku lub nieprawidłowych parametrów zasilania sieciowego.

Komunikacja z UPS'em

Centralny UPS znajduje się w serwerowni. Można zarządzać nim za pomocą odpowiedniego oprogramowania komunikującego się protokołem SNMP (Simple Network Management Protocol). Przydatny może się okazać się skrypt check_snmp_ups.sh pobrany z tej strony.

  apt-get install snmp
  # Przykłady użycia skryptu:
  ./check_snmp_ups.sh -H 10.46.1.2 -C public -t charge
  ./check_snmp_ups.sh -H 10.46.1.2 -C public -t power
  # Więcej dowiesz się wołając:
  ./check_snmp_ups.sh -h

Ów skrypt korzysta z kodów UPS MIB do komunikacji po protokole SNMP za pomocą poleceń /usr/bin/snmpget i /usr/bin/snmpwalk (jest swego rodzaju skrótem). Bezpośrednie zapytanie może wyglądać następująco:

/usr/bin/snmpget -t 30 -r 2 -v 1 -c public -Ovq 10.46.1.2 1.3.6.1.2.1.33.1.4.4.1.4.0

Najbardziej przydatne kody to (w zapytaniu trzeba dodawać zero na końcu):

upsBatteryStatus                = '1.3.6.1.2.1.33.1.2.1'
upsSecondsOnBattery             = '1.3.6.1.2.1.33.1.2.2'
upsEstimatedMinutesRemaining    = '1.3.6.1.2.1.33.1.2.3'
upsEstimatedChargeRemaining     = '1.3.6.1.2.1.33.1.2.4'
upsBatteryVoltage               = '1.3.6.1.2.1.33.1.2.5'
upsBatteryCurrent               = '1.3.6.1.2.1.33.1.2.6'
upsBatteryTemperature           = '1.3.6.1.2.1.33.1.2.7'
 
def get_command(oid, ip='10.46.1.2'):
	return '/usr/bin/snmpget -t 2 -r 2 -v 1 -c public -Ovq {} {}.0'.format(ip, oid)

Rozwiązywanie problemów

Jeżeli występuje problem z połączeniem (np. timeout), sprawdź czy działa ping i czy otwarty jest domyślny port dla SNMP 161.

ping 192.128.1.10
nmap -p 161 192.128.1.10