Huawei.bmc.snmp.Monitor.SnmpTrapBBU

Huawei.RackServer.Huawei.bmc.snmp.Monitor.SnmpTrapBBU (UnitMonitor)

Description for the new unit monitor.

Element properties:

TargetHuawei.Bmc.Snmp.BBU
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateFalse
Alert Auto ResolveFalse
Monitor TypeHuawei.Server.PowershellScriptMonitorType.3StateScriptMonitorType
RemotableTrue
AccessibilityPublic
RunAsDefault

Source Code:

<UnitMonitor ID="Huawei.RackServer.Huawei.bmc.snmp.Monitor.SnmpTrapBBU" Accessibility="Public" Enabled="true" Target="Huawei.Bmc.Snmp.BBU" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Huawei.Server.PowershellScriptMonitorType.3StateScriptMonitorType" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
<OperationalState ID="Critical" MonitorTypeStateID="Critical" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IP>$Target/Host/Host/Property[Type="NetworkLibrary!System.NetworkManagement.Node"]/SNMPAddress$</IP>
<CommunityString>$RunAs[Name="NetworkLibrary!System.NetworkManagement.Snmp.MonitoringAccount"]/CommunityString$</CommunityString>
<Version>$Target/Host/Host/Property[Type="NetworkLibrary!System.NetworkManagement.Node"]/SNMPVersion$/</Version>
<!--<AllTraps>false</AllTraps>-->
<OIDProps>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.13.17</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.13.18</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.15.17</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.15.18</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.15.1793</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.15.1794</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.15.2305</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.15.2306</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.15.257</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.15.258</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.18.33</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.18.34</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.27.17</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.27.18</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.33.1</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.33.2</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.33.257</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.33.258</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.33.2305</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.33.2306</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.35.17</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.35.18</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.35.33</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.35.34</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.35.49</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.35.50</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.39.1</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.39.2</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.40.1</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.40.2</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.40.17</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.40.18</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.41.1</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.41.2</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.41.17</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.41.18</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.1052.17</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.1052.18</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.240.113</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.241.1</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.241.2</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.241.17</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.241.18</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.241.33</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.241.34</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.257.113</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.257.114</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.257.145</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.257.146</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.257.177</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.257.178</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.781.17</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.781.18</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.791.17</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.791.18</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.793.17</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.793.18</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.1042.17</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.1042.18</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.1047.17</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.1047.18</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.1813.33</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.258.33</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.258.34</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.258.145</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.258.146</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.258.177</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.258.178</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.786.17</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.786.18</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.13.33</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.13.34</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.15.3073</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.10.15.3074</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.11.7</OIDProp>
</OIDProps>
<ScriptName>BBUTrapEventMonitor.ps1</ScriptName>
<ScriptBody><Script>
param($prmDeviceID,$BBUNum,$community,$ipAddr,$port)

$nl = "`r`n"
$debugFlag = 0
$version = "2c"
$BBU_HealthOID = "1.3.6.1.4.1.2011.2.235.1.1.36.50.1.18.$BBUNum"

#*****************************************************************
# Function writeLog
#*****************************************************************
function writeLog($content){
if($debugFlag){
$content | Out-File -Append c:\scomLog\BBUTrapEventMonitortest.txt
}}

#*****************************************************************
# Function getOidResult
# query OID value through snmp interface.
#*****************************************************************
function getOidResult($Oid){
$cmd = "C:\""Program Files""\Huawei\snmp\snmpget.exe -v " + $version + " -c " + $community + " -r 2 -t 5 -O vq " + $ipAddr +":"+$port+" " + $Oid
$result = cmd /c $cmd
$result = $result.trim('"')
return $result
}


writeLog($BBUNum)
writeLog($ipAddr)
$BBU_Health1 = getOidResult($BBU_HealthOID)
writeLog($BBU_Health1)

if (($BBU_Health1 -band 32) -eq 32)
{ $BBU_Health =2 }

if (($BBU_Health1 -band 1) -eq 1)
{ $BBU_Health =3 }

if (($BBU_Health1 -band 2) -eq 2)
{ $BBU_Health =3 }

if (($BBU_Health1 -band 4) -eq 4)
{ $BBU_Health =3 }

if (($BBU_Health1 -band 16) -eq 16)
{$BBU_Health =3 }

if (($BBU_Health1 -band 64) -eq 64)
{$BBU_Health =3}


#bit0: 1 - voltage is low --- major--1
#bit1: 1 - need replace pack --- major--2
#bit2: 1 - learn cycle failed --- major--4
#bit3: 1 - learn cycle timeout ----unknow--8
#bit4: 1 - pack is about to fail --- major--16
#bit5: 1 - remaining capacity low --- minor--32
#bit6: 1 - no space for cache offload ---major--64


switch ($BBU_Health)
{
1 {$BBU_Health = "OK"}
2 {$BBU_Health = "Warning"}
3 {$BBU_Health = "Critical"}
4 {$BBU_Health = "Critical"}
5 {$BBU_Health = "OK"}
6 {$BBU_Health = "OK"}
7 {$BBU_Health = "OK"}
default {$BBU_Health = "OK"}
}

writeLog($BBU_Health )
$oAPI = new-object -comObject "MOM.ScriptAPI"
$pb = $oAPI.CreatePropertyBag()
$pb.AddValue("Status",$BBU_Health)

#$oAPI.Return($pb)
$pb
</Script></ScriptBody>
<Parameters>
<Parameter>
<Name>prmDeviceID</Name>
<Value>$MPElement$</Value>
</Parameter>
<Parameter>
<Name>BBUNum</Name>
<Value>$Target/Host/Property[Type="NetworkLibrary!System.NetworkManagement.LogicalDevice"]/Index$</Value>
</Parameter>
<Parameter>
<Name>community</Name>
<Value>$RunAs[Name="NetworkLibrary!System.NetworkManagement.Snmp.MonitoringAccount"]/CommunityString$</Value>
</Parameter>
<Parameter>
<Name>ipAddr</Name>
<Value>$Target/Host/Host/Property[Type="NetworkLibrary!System.NetworkManagement.Node"]/SNMPAddress$</Value>
</Parameter>
<Parameter>
<Name>port</Name>
<Value>$Target/Host/Host/Property[Type="NetworkLibrary!System.NetworkManagement.Node"]/PortNumber$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>600</TimeoutSeconds>
<SuccessExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='Status']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">OK</Value>
</ValueExpression>
</SimpleExpression>
</SuccessExpression>
<WarningExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='Status']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Warning</Value>
</ValueExpression>
</SimpleExpression>
</WarningExpression>
<CriticalExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='Status']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Critical</Value>
</ValueExpression>
</SimpleExpression>
</CriticalExpression>
</Configuration>
</UnitMonitor>