Huawei.bmc.snmp.Monitor.SnmpTarget

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

Description for the new unit monitor.

Element properties:

TargetHuawei.Bmc.Snmp.Target
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.SnmpTarget" Accessibility="Public" Enabled="true" Target="Huawei.Bmc.Snmp.Target" 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/Property[Type="NetworkLibrary!System.NetworkManagement.Node"]/SNMPAddress$</IP>
<CommunityString>$RunAs[Name="NetworkLibrary!System.NetworkManagement.Snmp.MonitoringAccount"]/CommunityString$</CommunityString>
<Version>$Target/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</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.235.1.1.500.11</OIDProp>
</OIDProps>
<ScriptName>TargetTrapEventMonitor.ps1</ScriptName>
<ScriptBody><Script>
param($prmDeviceID,$community,$ipAddr)

$nl = "`r`n"
$debugFlag = 0
$version = "2c"
$Target_HealthOID = "1.3.6.1.4.1.2011.2.235.1.1.1.1.0"

#*****************************************************************
# Function writeLog
#*****************************************************************
function writeLog($content){
if($debugFlag){
$content | Out-File -Append c:\scomLog\TargetTrapEventMonitortest.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($TargetNum)
writeLog($ipAddr)
$Target_Health = getOidResult($Target_HealthOID)
writeLog($Target_Health)
switch ($Target_Health)
{
1 {$Target_Health = "OK"}
2 {$Target_Health = "Warning"}
3 {$Target_Health = "Critical"}
4 {$Target_Health = "Critical"}
5 {$Target_Health = "OK"}
6 {$Target_Health = "OK"}
default {$Target_Health = "OK"}
}

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

#$oAPI.Return($pb)
$pb
</Script></ScriptBody>
<Parameters>
<Parameter>
<Name>prmDeviceID</Name>
<Value>$MPElement$</Value>
</Parameter>
<Parameter>
<Name>community</Name>
<Value>$RunAs[Name="NetworkLibrary!System.NetworkManagement.Snmp.MonitoringAccount"]/CommunityString$</Value>
</Parameter>
<Parameter>
<Name>ipAddr</Name>
<Value>$Target/Property[Type="NetworkLibrary!System.NetworkManagement.Node"]/SNMPAddress$</Value>
</Parameter>
<Parameter>
<Name>port</Name>
<Value>$Target/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>