This discussion has been locked. The information referenced herein may be inaccurate due to age, software updates, or external references.
You can no longer post new replies to this discussion. If you have a similar question you can start a new discussion in this forum.

Need OID for APC battery disconnected condition

I have been monitoring the APC UPS's on my network.  I have an alarm that alerts me when the battery needs replacing.  However, I've noticed that there are APC's with bad batteries where I did not receive any alarms.  I discovered that I get alerts when the "battery needs to be replaced" alarm on the UPS is triggered, but not when the "battery disconnected" condition exists.  Does anyone know if there's an OID for this?  Thank you.

  • Here's my APC SmartUPS pollers:

    <?xml version="1.0" encoding="utf-8"?>

    <CustomPollers version="9.0">

      <CustomPoller UniqueName="upsBatteryRunTimeRemaining" Description="The UPS battery run time remaining before battery &#xD;&#xA; exhaustion." OID="1.3.6.1.4.1.318.1.1.1.2.2.3" MIB="PowerNet-MIB:upsAdvBatteryRunTimeRemaining" SNMPGetType="GetNext" NetObjectPrefix="N" GroupName="SmartUPS" PollerType="S" Parser="Time_Ticks" IncludeHistory="True" Unit="" TimeUnitId="0" TimeUnitQuantity="0" DefaultDisplayTimeUnitId="0" Formula="" LabelType="" LabelDetail="">

        <Enumerations />

      </CustomPoller>

      <CustomPoller UniqueName="upsBatteryRunTimeHr" Description="Run time in Hours" OID="" MIB="" SNMPGetType="GetNext" NetObjectPrefix="N" GroupName="SmartUPS" PollerType="F" Parser="None" IncludeHistory="True" Unit="" TimeUnitId="0" TimeUnitQuantity="0" DefaultDisplayTimeUnitId="0" Formula="{upsBatteryRunTimeRemaining}/360000" LabelType="" LabelDetail="">

        <Enumerations />

      </CustomPoller>

      <CustomPoller UniqueName="upsBasicOutputStatus" Description="The current state of the UPS. If the UPS is unable &#xD;&#xA; to determine the state of the UPS this variable is set &#xD;&#xA; to unknown(1)." OID="1.3.6.1.4.1.318.1.1.1.4.1.1" MIB="PowerNet-MIB:upsBasicOutputStatus" SNMPGetType="GetNext" NetObjectPrefix="N" GroupName="SmartUPS" PollerType="S" Parser="Enumeration" IncludeHistory="False" Unit="" TimeUnitId="0" TimeUnitQuantity="0" DefaultDisplayTimeUnitId="0" Formula="" LabelType="" LabelDetail="">

        <Enumerations>

          <Enumeration RawValue="1" TextValue="unknown" />

          <Enumeration RawValue="10" TextValue="hardwareFailureBypass" />

          <Enumeration RawValue="11" TextValue="sleepingUntilPowerReturn" />

          <Enumeration RawValue="12" TextValue="onSmartTrim" />

          <Enumeration RawValue="2" TextValue="onLine" />

          <Enumeration RawValue="3" TextValue="onBattery" />

          <Enumeration RawValue="4" TextValue="onSmartBoost" />

          <Enumeration RawValue="5" TextValue="timedSleeping" />

          <Enumeration RawValue="6" TextValue="softwareBypass" />

          <Enumeration RawValue="7" TextValue="off" />

          <Enumeration RawValue="8" TextValue="rebooting" />

          <Enumeration RawValue="9" TextValue="switchedBypass" />

        </Enumerations>

      </CustomPoller>

      <CustomPoller UniqueName="upsBasicIdentName" Description="An 8 byte ID string identifying the UPS. This object &#xD;&#xA; can be set by the administrator." OID="1.3.6.1.4.1.318.1.1.1.1.1.2" MIB="PowerNet-MIB:upsBasicIdentName" SNMPGetType="GetNext" NetObjectPrefix="N" GroupName="SmartUPS" PollerType="S" Parser="Text" IncludeHistory="False" Unit="" TimeUnitId="0" TimeUnitQuantity="0" DefaultDisplayTimeUnitId="0" Formula="" LabelType="" LabelDetail="">

        <Enumerations />

      </CustomPoller>

      <CustomPoller UniqueName="upsBasicIdentModel" Description="The UPS model name (e.g. 'APC Smart-UPS 600')." OID="1.3.6.1.4.1.318.1.1.1.1.1.1" MIB="PowerNet-MIB:upsBasicIdentModel" SNMPGetType="GetNext" NetObjectPrefix="N" GroupName="SmartUPS" PollerType="S" Parser="Text" IncludeHistory="False" Unit="" TimeUnitId="0" TimeUnitQuantity="0" DefaultDisplayTimeUnitId="0" Formula="" LabelType="" LabelDetail="">

        <Enumerations />

      </CustomPoller>

      <CustomPoller UniqueName="upsBasicBatteryTimeOnBattery" Description="The elapsed time since the UPS has switched to battery &#xD;&#xA; power." OID="1.3.6.1.4.1.318.1.1.1.2.1.2" MIB="PowerNet-MIB:upsBasicBatteryTimeOnBattery" SNMPGetType="GetNext" NetObjectPrefix="N" GroupName="SmartUPS" PollerType="S" Parser="Time_Ticks" IncludeHistory="False" Unit="" TimeUnitId="0" TimeUnitQuantity="0" DefaultDisplayTimeUnitId="0" Formula="" LabelType="" LabelDetail="">

        <Enumerations />

      </CustomPoller>

      <CustomPoller UniqueName="upsBasicBatteryStatus" Description="The status of the UPS batteries. A batteryLow(3) value indicates the UPS will be unable to sustain the current load, and its services will be lost if power is not restored. The amount of run time in reserve at the time of low battery can be configured by the upsAdvConfigLowBatteryRunTime." OID="1.3.6.1.4.1.318.1.1.1.2.1.1" MIB="PowerNet-MIB:upsBasicBatteryStatus" SNMPGetType="GetNext" NetObjectPrefix="N" GroupName="SmartUPS" PollerType="S" Parser="Enumeration" IncludeHistory="False" Unit="" TimeUnitId="0" TimeUnitQuantity="1" DefaultDisplayTimeUnitId="0" Formula="" LabelType="" LabelDetail="">

        <Enumerations>

          <Enumeration RawValue="1" TextValue="unknown(1)" />

          <Enumeration RawValue="2" TextValue="batteryNormal(2)" />

          <Enumeration RawValue="3" TextValue="batteryLow(3)" />

        </Enumerations>

      </CustomPoller>

      <CustomPoller UniqueName="upsBasicBatteryLastReplaceDate" Description="The date when the UPS system's batteries were last replaced &#xD;&#xA; in mm/dd/yy format. For Smart-UPS models , this value &#xD;&#xA; is originally set in the factory. When the UPS batteries &#xD;&#xA; are replaced , this value should be reset by the administrator." OID="1.3.6.1.4.1.318.1.1.1.2.1.3" MIB="PowerNet-MIB:upsBasicBatteryLastReplaceDate" SNMPGetType="Get" NetObjectPrefix="N" GroupName="SmartUPS" PollerType="S" Parser="Text" IncludeHistory="False" Unit="" TimeUnitId="0" TimeUnitQuantity="0" DefaultDisplayTimeUnitId="0" Formula="" LabelType="" LabelDetail="">

        <Enumerations />

      </CustomPoller>

      <CustomPoller UniqueName="upsAdvOutputLoad" Description="The current UPS load expressed in percent of rated capacity." OID="1.3.6.1.4.1.318.1.1.1.4.2.3" MIB="PowerNet-MIB:upsAdvOutputLoad" SNMPGetType="GetNext" NetObjectPrefix="N" GroupName="SmartUPS" PollerType="R" Parser="Gauge" IncludeHistory="True" Unit="%" TimeUnitId="0" TimeUnitQuantity="1" DefaultDisplayTimeUnitId="0" Formula="" LabelType="" LabelDetail="">

        <Enumerations />

      </CustomPoller>

      <CustomPoller UniqueName="upsAdvInputMinLineVoltage" Description="The minimum utility line voltage in VAC over the &#xD;&#xA; previous 1 minute period." OID="1.3.6.1.4.1.318.1.1.1.3.2.3" MIB="PowerNet-MIB:upsAdvInputMinLineVoltage" SNMPGetType="GetNext" NetObjectPrefix="N" GroupName="SmartUPS" PollerType="R" Parser="Gauge" IncludeHistory="True" Unit="VAC" TimeUnitId="0" TimeUnitQuantity="0" DefaultDisplayTimeUnitId="0" Formula="" LabelType="" LabelDetail="">

        <Enumerations />

      </CustomPoller>

      <CustomPoller UniqueName="upsAdvInputMaxLineVoltage" Description="The maximum utility line voltage in VAC over the &#xD;&#xA; previous 1 minute period." OID="1.3.6.1.4.1.318.1.1.1.3.2.2" MIB="PowerNet-MIB:upsAdvInputMaxLineVoltage" SNMPGetType="GetNext" NetObjectPrefix="N" GroupName="SmartUPS" PollerType="R" Parser="Gauge" IncludeHistory="True" Unit="VAC" TimeUnitId="0" TimeUnitQuantity="0" DefaultDisplayTimeUnitId="0" Formula="" LabelType="" LabelDetail="">

        <Enumerations />

      </CustomPoller>

      <CustomPoller UniqueName="upsAdvInputLineVoltage" Description="The current utility line voltage in VAC." OID="1.3.6.1.4.1.318.1.1.1.3.2.1" MIB="PowerNet-MIB:upsAdvInputLineVoltage" SNMPGetType="GetNext" NetObjectPrefix="N" GroupName="SmartUPS" PollerType="R" Parser="Gauge" IncludeHistory="True" Unit="VAC" TimeUnitId="0" TimeUnitQuantity="1" DefaultDisplayTimeUnitId="0" Formula="" LabelType="" LabelDetail="">

        <Enumerations />

      </CustomPoller>

      <CustomPoller UniqueName="upsAdvInputLineFailCause" Description="The reason for the occurrence of the last transfer to UPS &#xD;&#xA; battery power. The variable is set to: &#xD;&#xA; - noTransfer(1) -- if there is no transfer yet. &#xD;&#xA; - highLineVoltage(2) -- if the transfer to battery is caused &#xD;&#xA; by an over voltage greater than the high transfer voltage. &#xD;&#xA; - brownout(3) -- if the duration of the outage is greater than &#xD;&#xA; five seconds and the line voltage is between 40% of the &#xD;&#xA; rated output voltage and the low transfer voltage. &#xD;&#xA; - blackout(4) -- if the duration of the outage is greater than five &#xD;&#xA; seconds and the line voltage is between 40% of the rated &#xD;&#xA; output voltage and ground. &#xD;&#xA; - smallMomentarySag(5) -- if the duration of the outage is less &#xD;&#xA; than five seconds and the line voltage is between 40% of the &#xD;&#xA; rated output voltage and the low transfer voltage. &#xD;&#xA; - deepMomentarySag(6) -- if the duration of the outage is less &#xD;&#xA; than five seconds and the line voltage is between 40% of the &#xD;&#xA; rated output voltage and ground. The variable is set to &#xD;&#xA; - smal" OID="1.3.6.1.4.1.318.1.1.1.3.2.5" MIB="PowerNet-MIB:upsAdvInputLineFailCause" SNMPGetType="GetNext" NetObjectPrefix="N" GroupName="SmartUPS" PollerType="S" Parser="Enumeration" IncludeHistory="False" Unit="" TimeUnitId="0" TimeUnitQuantity="0" DefaultDisplayTimeUnitId="0" Formula="" LabelType="" LabelDetail="">

        <Enumerations>

          <Enumeration RawValue="1" TextValue="noTransfer" />

          <Enumeration RawValue="10" TextValue="rateOfVoltageChange" />

          <Enumeration RawValue="2" TextValue="highLineVoltage" />

          <Enumeration RawValue="3" TextValue="brownout" />

          <Enumeration RawValue="4" TextValue="blackout" />

          <Enumeration RawValue="5" TextValue="smallMomentarySag" />

          <Enumeration RawValue="6" TextValue="deepMomentarySag" />

          <Enumeration RawValue="7" TextValue="smallMomentarySpike" />

          <Enumeration RawValue="8" TextValue="largeMomentarySpike" />

          <Enumeration RawValue="9" TextValue="selfTest" />

        </Enumerations>

      </CustomPoller>

      <CustomPoller UniqueName="upsAdvIdentSerialNumber" Description="An 8-character string identifying the serial number of &#xD;&#xA; the UPS internal microprocessor. This number is set at &#xD;&#xA; the factory. NOTE: This number does NOT correspond to &#xD;&#xA; the serial number on the rear of the UPS." OID="1.3.6.1.4.1.318.1.1.1.1.2.3" MIB="PowerNet-MIB:upsAdvIdentSerialNumber" SNMPGetType="GetNext" NetObjectPrefix="N" GroupName="SmartUPS" PollerType="S" Parser="Text" IncludeHistory="False" Unit="" TimeUnitId="0" TimeUnitQuantity="0" DefaultDisplayTimeUnitId="0" Formula="" LabelType="" LabelDetail="">

        <Enumerations />

      </CustomPoller>

      <CustomPoller UniqueName="upsAdvIdentDateOfManufacture" Description="The date when the UPS was manufactured in mm/dd/yy format." OID="1.3.6.1.4.1.318.1.1.1.1.2.2" MIB="PowerNet-MIB:upsAdvIdentDateOfManufacture" SNMPGetType="GetNext" NetObjectPrefix="N" GroupName="SmartUPS" PollerType="S" Parser="Text" IncludeHistory="False" Unit="" TimeUnitId="0" TimeUnitQuantity="0" DefaultDisplayTimeUnitId="0" Formula="" LabelType="" LabelDetail="">

        <Enumerations />

      </CustomPoller>

      <CustomPoller UniqueName="upsAdvBatteryTempFahrenheit" Description="" OID="" MIB="" SNMPGetType="GetNext" NetObjectPrefix="N" GroupName="SmartUPS" PollerType="F" Parser="None" IncludeHistory="True" Unit="" TimeUnitId="0" TimeUnitQuantity="0" DefaultDisplayTimeUnitId="0" Formula="CtoF({upsAdvBatteryTemperature})" LabelType="" LabelDetail="">

        <Enumerations />

      </CustomPoller>

      <CustomPoller UniqueName="upsAdvBatteryTemperature" Description="The current internal UPS temperature expressed in &#xD;&#xA; Celsius." OID="1.3.6.1.4.1.318.1.1.1.2.2.2" MIB="PowerNet-MIB:upsAdvBatteryTemperature" SNMPGetType="GetNext" NetObjectPrefix="N" GroupName="SmartUPS" PollerType="R" Parser="Gauge" IncludeHistory="True" Unit="°C" TimeUnitId="0" TimeUnitQuantity="0" DefaultDisplayTimeUnitId="0" Formula="" LabelType="" LabelDetail="">

        <Enumerations />

      </CustomPoller>

      <CustomPoller UniqueName="upsAdvBatteryRunTimeRemaining" Description="The UPS battery run time remaining before battery &#xD;&#xA; exhaustion." OID="1.3.6.1.4.1.318.1.1.1.2.2.3" MIB="PowerNet-MIB:upsAdvBatteryRunTimeRemaining" SNMPGetType="GetNext" NetObjectPrefix="N" GroupName="SmartUPS" PollerType="S" Parser="Time_Ticks" IncludeHistory="False" Unit="" TimeUnitId="0" TimeUnitQuantity="0" DefaultDisplayTimeUnitId="0" Formula="" LabelType="" LabelDetail="">

        <Enumerations />

      </CustomPoller>

      <CustomPoller UniqueName="upsAdvBatteryCapacity" Description="The remaining battery capacity expressed in percent of full capacity." OID="1.3.6.1.4.1.318.1.1.1.2.2.1" MIB="PowerNet-MIB:upsAdvBatteryCapacity" SNMPGetType="GetNext" NetObjectPrefix="N" GroupName="SmartUPS" PollerType="R" Parser="Gauge" IncludeHistory="False" Unit="%" TimeUnitId="0" TimeUnitQuantity="1" DefaultDisplayTimeUnitId="0" Formula="" LabelType="" LabelDetail="">

        <Enumerations />

      </CustomPoller>

    </CustomPollers>

  • I use the Universal Device Poller Status resource for a quick way to see the polled values of these and other pollers.

    I also have my APCs send traps.  I use the following to trigger an email: SNMPv2TrapOID =  PowerNet-MIB:apc.0.17 for bad batteries.

    Battery not properly installed is PowerNet-MIB:apc.0.80

  • Note: Trap alerts cannot be exported. emoticons_sad.png

  • Here's a report I run to gather the info that my UnDP polls.

    Note, My UnDP is called "upsBasicBatteryStatus"

    SELECT

    Nodes.Caption AS NodeName, Nodes.IP_Address AS IP_Address, Nodes.Status AS Status, CustomNodePollers_CustomPollers.UniqueName AS Poller_Name, CustomNodePollerStatus_CustomPollerStatus.Rate AS Rate, Nodes.NodeID AS NodeID

    FROM

    ((Nodes INNER JOIN CustomPollerAssignment CustomNodePollerAssignment_CustomPollerAssignment ON (Nodes.NodeID = CustomNodePollerAssignment_CustomPollerAssignment.NodeID))  INNER JOIN CustomPollers CustomNodePollers_CustomPollers ON (CustomNodePollerAssignment_CustomPollerAssignment.CustomPollerID = CustomNodePollers_CustomPollers.CustomPollerID))  INNER JOIN CustomPollerStatus CustomNodePollerStatus_CustomPollerStatus ON (CustomNodePollerAssignment_CustomPollerAssignment.CustomPollerAssignmentID = CustomNodePollerStatus_CustomPollerStatus.CustomPollerAssignmentID)

    WHERE 

    (

      (Nodes.Vendor LIKE 'American Power%') AND

      (CustomNodePollers_CustomPollers.UniqueName = 'upsBasicBatteryStatus') AND

      (CustomNodePollerStatus_CustomPollerStatus.Rate &lt;&gt; 2) AND

      (Nodes.Caption LIKE '%UPS0%')

    )

    AND

    (

    (CustomNodePollerAssignment_CustomPollerAssignment.InterfaceID = 0)

    )

    ORDER BY 1 ASC

  • I took this portion, grabbed the OID I needed to create an alert for when a unit went onto battery power per customer request.  THANKS!!!!  Using the OID 1.3.6.1.4.1.318.1.1.1.4.1.1, I created the UNDP and then an alert that will trigger when the output is "3"

    Just wanted to say thanks smartd

    CustomPoller UniqueName="upsBasicOutputStatus" Description="The current state of the UPS. If the UPS is unable &#xD;&#xA; to determine the state of the UPS this variable is set &#xD;&#xA; to unknown(1)." OID="1.3.6.1.4.1.318.1.1.1.4.1.1" MIB="PowerNet-MIB:upsBasicOutputStatus" SNMPGetType="GetNext" NetObjectPrefix="N" GroupName="SmartUPS" PollerType="S" Parser="Enumeration" IncludeHistory="False" Unit="" TimeUnitId="0" TimeUnitQuantity="0" DefaultDisplayTimeUnitId="0" Formula="" LabelType="" LabelDetail="">

        <Enumerations>

          <Enumeration RawValue="1" TextValue="unknown" />

          <Enumeration RawValue="10" TextValue="hardwareFailureBypass" />

          <Enumeration RawValue="11" TextValue="sleepingUntilPowerReturn" />

          <Enumeration RawValue="12" TextValue="onSmartTrim" />

          <Enumeration RawValue="2" TextValue="onLine" />

          <Enumeration RawValue="3" TextValue="onBattery" />

          <Enumeration RawValue="4" TextValue="onSmartBoost" />

          <Enumeration RawValue="5" TextValue="timedSleeping" />

          <Enumeration RawValue="6" TextValue="softwareBypass" />

          <Enumeration RawValue="7" TextValue="off" />

          <Enumeration RawValue="8" TextValue="rebooting" />

          <Enumeration RawValue="9" TextValue="switchedBypass" />

        </Enumerations>

      </CustomPoller>

    turned it into an